Learning Objective-C on the Macintosh

learn objective-cThere'll be one more programming book on the Macintosh aisle market in the next few weeks, by Mark Dalrymple and Scott Knaster: Learn Objective-C on the Macintosh.

If you've never heard of these guys, Mark often hangs out teaching at the Big Nerd Ranch, which is famous for (among other things) teaching Apple's software engineers to use Cocoa, and co-authored Core Mac OS X and Unix Programming and Advanced Mac OS X Programming with Aaron Hillegass, both of which I own but really only take off the shelf when I've been feeling too smart that day and need to drop it down a notch...

hacking os xScott Knaster has been all over the map, from working as an upper-up in the support levels at Apple, to a bunch of coding books for the Mac, to currently working at Google. I started stalking him after purchasing Hacking Mac OS X Tiger, which I primarily picked up because Rentzsch's mach_star was profiled towards the end. If you've been around awhile, you may have seen it in the sidebar for quite awhile.

It was such a deliciously weird book, which was just all over the map and in some cases didn't make a whole lot of sense, but not in a bad way -- it's just that there was such a juxtaposition between skill levels and content. We're talking starting on how to clone and screw around with Dashboard widgets or iPhoto and ending with mach_star insanity.

If someone knew how to mess around with mach_star, it wasn't as though they'd have a lot of problems glossing through the Apple docs and figuring out some of the other things themselves, but the right way to look at it was that someone picking up the book looking for little mini things to hack about in would then get this crash course that things like mach_star existed. I was charmed.

I want to be clear here so that people aren't getting the idea, because the reason why I started stalking Scott to pass on kudos wasn't really so much that there was this somewhat absurd juxtaposition in the content, but rather that it ended up working as a cohesive whole. I fail at this often enough that when I see someone else pull it off it snags my radar in a big way, as it's not like I track down everyone just to pass on a Thumbs Up™.

So you want to write a programming book for the Mac

I love Mac-specific books, even if I don't always like a lot of the specific tomes which seem to just get churned out around different applications. You could pick up any-old book of C, fire up XCode and get to town, but something up to date and Mac-specific can seriously alleviate a lot of headaches for a beginning programmer, the quickest examples coming to mind being how to actually use the IDE.

There are a decent amount of programming books out there for the Mac, but there aren't all that many. I'm told one of the major reasons for the death of the O'Reilly OS X conference was that they were disappointed that book sales for the platform weren't meeting internal expectations, but they still have a lot of good content out there even if they got off to a rough start (Let's just say their first Cocoa book didn't get 4 stars around the web), and other publishers have jumped in with cool tomes.

There wasn't always such a yummy selection from multiple publishers, and there are still cases publishers are deciding it's just not worth their while. There are some weird things about whipping up a programming book for the Mac, a few of which come immediately to mind:

  • The OS was such a moving target, with updates coming so frequently, that by the time your book was published, chances are a good chunk of it would be out of date. In many cases these things would be minor (like screenshots of the XCode looking out of date) and in many cases they'd be severely annoying or just plain wrong.

  • Windows is the great homogenization, and all other platforms skew. The userbase of the Mac and other alternative platforms skews depending upon where they excel, as to put it bluntly you don't buy a Mac if gaming is high on your priorities list, but you may well if other things are that the Mac handles aptly. While the number of technically-minded users has grown vastly since the OS9 days, the base still skews away from them.

  • Google can be such a bitch for a publisher trying to collate information and then getting you to pick it up within a paper medium. It doesn't entirely obsolete it, but being able to quickly google on a problem you're hitting or a technical detail is a nightmare for a technical tome.

They aren't necessarily exclusive to the Mac as a platform, and doesn't include the larger one coming to mind -- just plain numbers. As an example, say you want to write a programming book for the Macintosh, one of the first things you have to do is figure out where you are going to put the cut-off point and how your actual book will skew, as you have to decide what you are going to expect a user to already know.

If it's a Cocoa book, the publisher isn't going to really want you to teach someone how to program C, and then Objective-C, and then Cocoa, and then hit advanced topics -- they've run the numbers on how many copies they expect to be able to sell, that's just too many dead trees, and by the time you shipped it a sizable chunk of the content would need updating.

So you may decide you're going to assume they know nothing, and drop them into C and bring them up to a smattering of Cocoa, or you may decide you're going to assume they know C++ from other platforms and go light on the Obj-C syntax and focus primarily on how Cocoa's paradigms and APIs work, because syntax is only part of the equation.

Unfortunately, if the route you're taking makes any kind of sense, chances are competing publishers are taking an extremely similar tack, so what market there will be split several ways. E-books help one lower publishing costs to better carve out that niche, but this is rough on every platform and just exacerbated a bit on the Mac. Plus, you always have to factor in that publishing companies are fucking crazy.

Wrapping back around to the book

learn objective-cI really hate talking about a book I can't actually see and use and then really comment on because it hasn't actually shipped yet, but the above should give you an idea as to why I'm grooving that it will be shipping.

That said, I pinged Scott a bit to clarify a few tibits I was confused about:

  • You should expect to have some programming knowledge going into this book, as it won't be necessarily teaching you how to program C. I'm told they do quite a bit of hand-holding, so if you bought a book on C but only made it part-way through you should be fine. If you have spent any time in Java, you should be fine.

  • There's a superhero on the cover because the credits actually read: "Pencilled by Mark Dalrymple, Inked by Scott Knaster." The guy on the cover came about because Mark wrote the text and Scott polished and clarified it. Your superfluous trivia nugget of the day is that he's called "Bracket-Man."

If you're interested, you can sign up at the top right to be notified of when it's shipping, and they generally have a free chapter to download once it's released for purchase either as a tome or an e-book.

yummy alcohol posted button Posted by drunkenbatman
    January 20, 2006, at 10:19 AM


Comments (17)




Post a comment



Anonymous comments are allowed, but please enter something for a name.

And do endeavor to appear sane.









Remember personal info?