Fri 03 Dec 2004
Category : Technology/OOPs.txt
I'm re-discovering a book I bought in 1987 - "Object-Oriented Programming - An Evolutionary Approach" by Brad J Cox.
In it is a description of a language called Objective-C and how it could be used to control code complexity and aid programmer productivity. I re-read it now and come to appreciate, again, how powerful good ideas can be - in this case, ideas that were absorbed into NeXTStep and what is now known as Cocoa.
I'm reading all the Cocoa material I can find, to try to develop a style that will help us build applications as quickly as we can. I believe that the way to do that is to understand the philosophy underlying Cocoa's design, and write code that works with it rather than against it.
And, yes, I think there is such a thing as a philosophy to programming. And that's the kind of thing missing from the Windows world that makes it such an arid place to be in.
Putting aside the religious wars concerning Mac vs PC, let's remember why we're using computers, at least in a business setting. That's to allow us to systematise as many of the business processes as we can, so that the business can function like a machine, and so that we, the owners (and those we hire to run our business) won't have to work like machines.
Computers compute results, store data, and do all the steps required in an automated process tirelessly, effortlessly, and accurately. If you wield them well, you can really kill your competition.
Businesses ought to choose their computing tools the way Samurais choose their swords. You've got to be able to appreciate craftsmanship. You're going into battle, and you need a philosophy, for living and for fighting. Choose your sword well.