Book #31 (September 19, 2010): Learn Objective-C on the Mac by Mark Dalrymple and Scott Knaster
Book #32 (September 28, 2010): Programming in Objective-C 2.0 by Stephen G. Kochan
Once upon a time, programming computers was fun. No, seriously; it really was. When I first started using microcomputers in the early 1980s, there were books and magazines on the market that told you how make your computer do clever, exciting things with the aid of programming languages like BASIC and Pascal, which weren’t that difficult to learn and which gave you nearly total control over what was then just about the most complex piece of technology that the human race had ever developed. For a decade or so I wrote my own computer programs just as a hobby, picking up money on the side by writing books explaining to young people how to have fun programming computers of their own. I learned a slew of different computer programming languages, of which my favorite was probably C, a language developed at Bell Laboratories back in the 1970s that was simple, elegant, and powerful as all hell. Programming in C was like driving a convertible sports car on the Autobahn with the top down and the accelerator pushed all the way to the floor. It was an exhilarating, if nerdy, experience.
In the early 1990s, after writing a couple of bestselling computer books about creating commercial quality video games in C, I drifted away from programming and concentrated on other things, like writing manuals for software publishers and articles for Web sites. But part of me still yearned to go back to writing computer programs and rediscover the fun I’d had in the 80s and early 90s. So when Amy suggested that maybe I’d like to try writing software for the iPhone/iPod Touch, I decided that it might be just the ticket for getting my programming mojo working again. After some quick research I learned that iPhone programming is done almost entirely on the Mac, of which Amy has two, an iMac and a Macbook. Apple gives away the SDK — software developers kit — for free as long as you don’t plan to run your programs on anything other than the iPhone emulator that comes with the SDK. (If you’d like to run them on an actual iPhone, or sell them via the App Store, you need to kick in $99 for a developer’s license.) Maybe, I thought, I should teach myself some iPhone programming and use Amy’s computers to see if I could develop some working code. So I downloaded the SDK from Apple’s Developers Site and started learning how to use it.
Then I got sidetracked into other things, most of them involving earning a living. But since I’m trying to turn this into my Year of Reading Voraciously, I thought I’d throw some books on iPhone programming into the mix. The language of choice for iPhone software development, as for Mac software development in general, is something called Objective-C, an extended version of the C language that I so dearly love. These two books are about Objective-C and after having spent several weeks poring over both of them I think I can make a rather definitive statement: Programming isn’t so much fun anymore.
Well, maybe it’s not really fair for me to say that. It may just be that I’m rusty and out of practice and expecting to get back into the swing of programming more rapidly than is really feasible. But compared to the lean, mean C of my youth, Objective-C seems big, clunky and a pain in the ass to use. It was, however, invented in 1982, so it’s been around since my early programming days. I just wasn’t programming back then on a Mac, which seems to be the only microcomputer platform that makes much use of it. (Actually, the first microcomputer that made extensive use of Objective-C was the NeXT, the computer that Steve Jobs developed when he and Apple were on the outs, and when he returned to Apple he brought the language along with him. He also brought along quite a bit of the NeXT’s operating system and programming interface.)
To be fair to Objective-C, it isn’t so much the language itself that’s clunky as it’s the Foundation Framework, the helpful and overly complicated toolkit of programming routines for performing tasks on the Mac. But I can’t really say this with authority yet, since I haven’t technically used the Foundation Framework (or it’s iPhone version) for actual programming. I’ve just read about it. Maybe when I move on to actual iPhone programming, a subject that’s barely touched on in these books, it’ll be more fun to use, especially when I learn the Cocoa Touch interface (Apple’s cute name for the set of program routines that give the programmer access to the iPhone’s touchscreen interface and specialized internal hardware).
Before that happens, though, I’ll need to read some books that go beyond the rudiments of Objective-C and talk specifically about iPhone programming. However, this isn’t going to happen quite yet. I need to give myself a break for a while, go back to reading fiction and nontechnically oriented nonfiction until my brain cools off and stops hurting quite so much. But expect to see reports in the months ahead about my experiments with creating a genuine iPhone app. It might even turn out to be fun.