Aaron Hillegass has been teaching software developers about Mac OS X, and its forerunner at NeXT, for as long as anyone can remember. Recognizable by his enormous cowboy hat, Aaron has written several books, including one on Cocoa development that has become legendary, and runs the Big Nerd Ranch, an enterprise he began after leaving NeXT, which has some of the best courses around for learning Cocoa and other Mac OS X technologies. Recently, Aaron was kind enough to answer some questions for us, and explain how Big Nerd Ranch can help scientific developers on the Mac.
[MR] Let’s start off with something easy: What’s with the hat?
You have something against hats? Indiana Jones wore a hat. Maybe I like to wear a hat.
Actually, the hat is shameless self-promotion. One of the bad things about having a small business is that you have little or no advertising budget, so you end up doing silly things like wearing a cowboy hat to any event where a dozen or more potential customers might be.
I actually have a new hat. My old hat never really fit that well, so I found this amazing hat maker, Roy Jackson, and commissioned a new hat. Roy sends you a fitting rig that you put on your head. When you mail the rig back, he makes you a hat.
[MR] Your book Cocoa Programming for Mac OS X has become the quintessential beginners guide to developing on Mac OS X, but your involvement with the platform actually goes back much further than that, to NeXT. Can you tell us a little about the NeXT days, and what your role was?
I was one of the developer trainers, and I was in charge of developing the courses we used.
So, you know how the mother bird regurgitates food her baby birds? Well, I was the mother bird, the food is knowledge, and the baby birds are developers. Only, I didn’t actually puke knowledge of OpenStep and WebObjects in their mouths; I would learn the new technologies from the engineers who were inventing them and then distill those ideas into a form that made learning them easier.
[MR] I heard a rumor recently on the Late Night Cocoa podcast that you were busy working on not just one new Cocoa book, but two. Is there any truth to the rumor, and is there anything you can tell us at this point in time?
The third edition Cocoa Programming for Mac OS X will address Objective-C 2, Xcode 3, and Core Data. I’m working on it now, but don’t expect it to reach bookstores until autumn.
After that, I’m going to write another book, but I haven’t decided what that book will be about. It could be the prequel to the Cocoa book or it could be the sequel. Or perhaps it is time for me to write the self-help book that will bring me fame and fortune.
[MR] Mac OS X ushered in a new era for NeXT developers. What was your feeling about the transition to Apple? Were you enthusiastic, or worried at the time?
I was spoiled. I worked for a company where I got to work on cutting-edge technologies with 350 amazing people. When they said, “You are now part of 9,000 person company.” I panicked and ran.
The cultures clashed a bit, but we ended up with a Unix box that your grandmother would love — something that required the talents at both NeXT and Apple.
[MR] There is no doubt that Apple’s purchase of NeXT presented a lot of opportunities for people loyal to the platform, and you certainly took full advantage of the move by starting up Big Nerd Ranch. For those that don’t know about Big Nerd Ranch, can you give us a quick history?
Big Nerd Ranch, Inc. is taking technical training to the next level.
First, we fixed the things that are obviously wrong with most technical courses: inexperienced instructors and irrelevant materials. Our instructors are the absolute best on the planet, and our materials have been stripped of things that were more sales or novelties than essential techniques.
Second, we took inspiration from monastic retreats. When you come to the Big Nerd Ranch, we eliminate the distractions. It is quiet and your room and food are included. There is nothing to do but learn.
[MR] Big Nerd Ranch began as a Cocoa ‘school’, and you are a prominent member of the Cocoa Developer scene. I remember a few years back a ruckus arising on the cocoa-dev list when you came out hard against the then new Cocoa Bindings. You later retracted much of the criticism, but what is your take on the current state of Cocoa, and where it is headed? Are you enthusiastic about Core Data, for example? Core Animation?
While bindings and Core Data are nice, I think they both could have been better.
In the past, Apple would implement a new technology and use them in their own apps. Once their own engineers had tested and improved the technology, it would be made a public API. These days, Apple uses WWDC to push technologies that they have never actually used in their own applications.
PDFView is an example of a nearly flawless technology. Why? Because it was used in Preview before it was made public.
NSTreeController, on the other hand, is crap, and should have been identified as crap before it was dumped upon the adoring developer community.
For a decade, Apple/NeXT has claimed that one could write a word processor by subclassing
NSTextView. Then Pages comes along and doesn’t use
NSTextView at all. Why would Apple pass up such a great opportunity to test and improve
I am delighted with the state of Cocoa, and it gets better with every release. Think how wonderful Cocoa would be if Apple took every opportunity to eat its own dog food.
[MR] Some of our readers will be interested in Cocoa, but I suspect many more would be interested in some of the other courses run by Big Nerd Ranch. A quick look at the web site shows courses ranging from Core Mac OS X to OpenGL and even Python. Can you discuss a few of the courses that might be of particular interest to scientific developers on the Mac?
Any scientific developer would love our OpenGL class. While still useful to a game programmer, the class focuses on issues related to data visualization. Rocco Bowling, who used to do data visualization work for one of the intelligence agencies, teaches the class. Rocco also wrote Big Bang Chess. His knowledge of the subject is amazing. That class will be offered in Atlanta from April 30 through May 4.
The Core Mac OS X Bootcamp teaches programmers how to take advantage of the plumbing that makes OS X work. It covers topics like multi-threading, network communications, distributed objects, the keychain, and directory services. We also take a long look at tools: gcc, gdb, the linker, subversion, and the performance tools. That class will be offered in Frankfurt, Germany April 16 – 20. It is taught by Mark Dalrymple, the author of Advanced Mac OS X Programming.
[MR] I also see that Big Nerd Ranch is now intercontinental. Where do you run your courses?
In North America, we teach our classes near Atlanta, Georgia. Atlanta is a great location because it is home to the busiest airport in the world.
In Europe, our classes are taught in a monastery/vineyard near Frankfurt, Germany. Frankfurt is a major hub for all of Europe, and it would be difficult to find a place that better expressed the ideas behind Big Nerd Ranch.
[MR] Finally, what can people who go to a Big Nerd Ranch course expect?
A Buddhist monk should be kind and patient. Can you teach someone to be kind and patient? I don’t think so. So, to train Buddist monks, they create an environment where the students can find kindness and patience themselves.
I can’t make you a great Cocoa programmer, but I can create an environment where you can find the great Cocoa programmer inside yourself.