When Apple announced the iPhone SDK, they launched the next bubble. […] There’s just one problem: there are no engineers to write these apps. There are maybe 3000 Cocoa engineers on the planet, and most of them work for Apple. Three years ago I wasn’t sure how I was going to feed a family writing Macintosh software. Now I turn down more money in a day than I’ve made in my entire career. People in the valley who are eyeballing the huge money cloud are coming to the resource pool and finding it dry. There simply are no engineers.
I’ve been half-assed-trying to learn Cocoa and Objective-C for a few years, but from the perspective of an outsider, it’s an ugly, verbose language and a massive, barely documented framework with no substantial guidance, examples, or community.
I recognize now that it’s better than it looked. But that’s how it looks from the outside, trust me. And the truth isn’t much better. There’s still only one book worth getting, and there’s still absolutely zero public community.
For those who were willing to look past the initial discouragements and actually learn Cocoa and Objective-C, their prospects were… writing only desktop software, only for the Mac, in the golden age of platform-agnostic web applications and the dusk of most desktop software. Not a very appealing prize.
And good luck ever getting a job with that skill. Most employers probably think Objective-C is a typo on your resume, and you meant to say something like “object-oriented C”.
“So, Mr. Arment, uh… does this mean you know C++? We’re looking for someone with 15 years of .NET experience.”
But iPhone development is incredibly attractive — for the first time, any smart person can get instant distribution to the hottest platform in the massive mobile phone industry, in which millions of people are willing to pay money for simple applications. (To a Web 2.0 programmer, this is novel.)
You keep 70% of the revenue, and you only need to pay Apple $100 for the right to sell your app. Once. Know what it takes to make an application for a Verizon phone?
The iPhone SDK was finally the motivation I needed to learn Cocoa and Objective-C — for real this time, with an actual, attainable project (or three) worth building.
Now, a few weeks later, I’m finally becoming fluent in the Objective-C syntax and some of the Cocoa conventions. I’m matching the standard naming and formatting styles. I’m not clear on autorelease yet, but I finally know when I’m supposed to retain and release. And I’m actually understanding all of the code now instead of just pasting example code blindly. I’m making progress.
And when I finally get good at this, I’ll have unintentionally qualified myself to develop Mac software as well. That’s a nice side benefit, but it wasn’t good enough by itself to overcome the learning curve.
The real attraction here is the iPhone. The hardware is amazing, the SDK enables a ton of functionality, and the app marketplace is going to reinvigorate the nearly-extinct independent developer.