Aaron Hillegass of Big Nerd Ranch


Aaron’s image

I’ve always been impressed with the Unix community’s willingness to share code and to collaborate on projects. Do you think that Mac OS X will attract some of the Unix community to the Macintosh platform?

Isn’t that the oddest thing? In the Unix community if you write something useful, you give it away. When I started looking around the Mac community, I was shocked by the tiny applications that people were charging money for. The Unix people are coming, and you will see the community flooded with freeware.

I heard you worked at NeXT. What was it like?

Well, long ago, I wrote applications for NeXTSTEP on Wall Street. Then NeXT hired me. I wrote and taught courses on how to write applications for NeXTSTEP. Working at NeXT was amazing. The people who worked there were extremely talented, and we were all devoted to the idea that we could help programmers to be more effective. The resulting technologies include Cocoa and WebObjects. I would not describe either of these technologies as “easy to learn,” but once mastered, they are the most powerful tools available on any platform. The result was that NeXT’s customers were the sort of people who wrote many applications every year: investment banks, scientists, and intelligence agencies.

image

And then suddenly Apple came into your life?

Yes, I was there when Apple acquired us. NeXT had 300 employees while Apple had thousands. I was not excited about being part of Apple. Remember that this was before Steve took the helm. I gave notice and moved back East to be a freelance programmer.

You mentioned the difference in company size, and I assume there were also some corporate culture differences. How well did the NeXT engineers integrate into Apple? Or should I say, how well did the Apple engineers accept the NeXT engineers?

That was a weird time. First, Apple bought NeXT. Then Apple laid off hordes of people, but no one from NeXT. Then the NeXT people (including Steve) were rapidly promoted to positions of great power. There was a definite feeling that NeXT had taken over Apple instead of the other way around. The other part of the story was that both groups had been living in their own world. NeXT supplied tools to corporate America on modern operating systems like NeXTSTEP, Solaris, and NT. We were into open standards, virtual memory, relational databases, and consulting services. Apple people were selling to artists. They were into fonts, color profiles, and resource forks. Overall, the result could have been a disaster; instead, they merged to create the best of both worlds.

So what led you back to Apple?

In August 2000, Apple called and said, “We need someone to teach our engineers how to write Cocoa applications for our new operating system which is based on NeXTSTEP. Will you come for a week and teach the course that you wrote at NeXT?”

You were walking into a class and seeing what you would be teaching on for the first time?

At that point, Mac OS X hadn’t been released, so I showed up an hour before class to see how it worked. After that hour, I was sold. Apple had done everything right; the software was solid, the machines were elegant and speedy, and the user experience was awesome. That week, I bought a PowerBook.

The Ranch image

Let’s talk about your “Ranch.” Can you explain to our readers what it is all about?

In November 2000, I created the Big Nerd Ranch. I teach intensive five-day classes on Cocoa programming at the ranch. Using my experiences with the students there, I’ve written a book for Addison-Wesley which will be available on December 7th. I still do some contract programming—but only on Mac OS X.

What level is your book ‘Cocoa Programming for Mac OS X’ aimed at?

It is primarily a book that teaches concepts and techniques. Apple has created several great references that are completely unintelligible to most programmers. My book fills in the gap. There is some wisdom in the book that you will not get on the first reading, so I recommend that you keep it on your shelf after you’ve read it.

Do you feel that Cocoa is easy enough for a complete beginner, or would you recommend starting with something else?

Here is my belief: a beginning programmer should learn C. The C language is simple to learn and gives the student a good feel for how the computer actually works. After learning C, you will be ready for my book and Cocoa programming.

What type of materials will you cover that will be of special interest to Macintosh game developers?

The book covers several things that will be of interest to game programmers. Primarily:

  • Objective-C and common idioms from that language
  • Drawing
  • Events and the event loop
Will the book include a CD-ROM?

We’ve been working with Erik Barzeski at Techstra to develop a web-based supplement to the book. If you are having trouble with a topic in the book, you simply enter the page number you are on, and you are shown all the errata, solutions, resources, and examples that relate to pages near where you are. It also allows readers to put in comments. It is a very clever knowledge base and should grow rapidly once the book ships. We have only begun to populate it with information, but you can access it at our home page.

Will the book feature any Java?

There is a chapter on writing applications in Java with an example.

Do you have further plans for writing addition Macintosh titles?

I have a great editor at Addison-Wesley, and he would like to see a few more titles from me. I have lots of ideas, but a book is a labor of love. My wife would like to see a few more “labors of money” before I start another book.

Some developers have complained about the lack of documentation for the new OS, but on the other hand, recent activity by book publishers releasing or announcing book titles seems to say things are changing. How do you feel?

Good documentation takes a deep understanding of the technology and a lot of patience to get those ideas on paper. The Tech Docs team at Apple is very good, but they have a lot of technology to cover. In time, they will get it all on paper. In the meantime, there is a vacuum that people like me are trying to fill.

How supportive has Apple been to the project?

Apple wrote a book on Cocoa programming. It is a pretty weak book, but O’Reilly and Associates agreed to publish it. As part of the deal, Apple promised them some level of exclusivity. Many individuals at Apple recognized the importance of my book. These people wanted to help, but had their hands were tied by the O’Reilly deal. I’m still hoping that the book will be sold in the Apple stores.

There seems to be a strong interest by non-traditional Mac developers in our platform recently. In your opinion what role has Mac OS X and Cocoa played in this?

Tomorrow I will get on a plane. I’ll have my PowerBook with me. On that flight, I can write Cocoa apps, PHP-based websites, Tomcat web applications, AppleScripts or Perl scripts. I can use ProjectBuilder, Emacs, or vi. I’ll have my choice of MySQL or PostgreSQL to use as a back-end database. I’ll use Apache as my web server. And it is all free! If I’m willing to spend a little cash, I can also run Word or Photoshop. I may even watch a DVD on the flight. If there is a Windows or Linux developer on the plane next to me, he will envy me. Eventually, he will buy his own PowerBook. This has everything to do with Darwin and Cocoa. If you have a choice, why would you develop on anything but Mac OS X?

Many of today’s games are ported from the PC over to the Macintosh. Do you think Cocoa can help in this process or perhaps, someday, reverse the order—for example John Carmack making Quake 7 on a Mac?

I do believe that many applications will appear on the Mac first in the future. NeXTSTEP was always the operating system where innovative code appeared first. The first web browser and web server, for example, were written on NeXTSTEP. The example you gave is an excellent one. Here is what Carmack said in 1997:

“NeXTSTEP is my favorite environment. Windows NT and Linux both have advantages in some areas, but if they were on equal footing I would choose NeXTSTEP hands down. It has all the power of Unix (there are lots of things I miss in NT), the best UI (IMHO, of course), and it just makes sense on so many more levels than Windows. Yes, you can make Windows do anything you want to if you have enough time to beat on it, but you can come out of it feeling like you just walked through a sewer.”

How well do you think Cocoa will be adopted for major development efforts, since Cocoa apps can only be used on Mac OS X?

In my career, I’ve spoken to thousands of programmers. I’ve heard about hundreds of projects. Here is what I know:

  • The vast majority of programmers are not creating shrink-wrapped apps. They are creating apps that will be run by one team in one company. Everyone on that team uses the exact same machine.
  • Management pulls the plug on most projects before they run on even one platform. Most projects fail.
  • As a development tool becomes more platform-independent, it becomes more awkward and restrictive.
The market for “cross-platform development tools” is much, much smaller than most programmers imagine. Java is probably the best that has ever existed. How many of the apps that you ran today were written in Java?

If you need a powerful tool for creating an application that runs on one platform, it would be a mistake to use anything but Cocoa. I do think that the number of people writing Cocoa applications will explode in the coming months.

As a great example, look at a few applications written by teams of one or two Cocoa programmers that are better than products from huge teams:

  • Create by Stone Design is better than Adobe Illustrator
  • Mesa by P&L is better than Microsoft Excel
  • OmniWeb by Omni Group is better than Microsoft Internet Explorer
  • OmniGraffle by Omni Group is better than Microsoft Visio
What would you improve about Cocoa if you were the CEO of Apple?

There are brilliant people on the Cocoa team who have been working there for a decade. If I were the CEO, I would let them decide how it should be improved. And that is exactly what Steve has done. That’s not to say Cocoa is perfect, but rather that it is continuously evolving in a well-thought out manner.

Bio: Aaron Hillegass is the author of ‘Cocoa Programming for Mac OS X’.’ He worked at NeXT, and has been programming with NeXTSTEP/OPENSTEP/Cocoa for 10 over years.

aaron,hillegass,big,nerd,ranch

Recent Forum Threads

About iDevGames

Since 1998, iDevGames has been educating, supporting and enhancing the community of game developers that produce video games for the Apple Mac and iPhone platforms. Get the latest game development news by subscribing to our news feed.