I’m : a programmer, writer, podcaster, geek, and coffee enthusiast.

It must have been a slow news day at ZDNet

A few select answers to Jason Perlow’s glorious trainwreck:

Let’s start with the developer environment itself. It only runs on a Mac. WHY? If Google can release Mac, Windows and Linux versions of their Android Developer Kit, why the heck can’t you make an emulator and compiler stack with XCode and Interface Builder that runs on PCs?

For one, the iPhone simulator (not emulator — big difference, technically) depend on a lot of underlying shared OS X functionality, so porting it to other platforms is a major undertaking.

The Android Developer Kit is nowhere near this level of sophistication. Its Java-based emulator is barely usable even on a Mac Pro, and its tools are much more buggy and unintuitive than Apple’s. (And Xcode has its share of bugs and unintuitive functionality, so that’s saying a lot.)

But the biggest reason why there’s no iPhone SDK on Windows or Linux is that it doesn’t need to exist. The iPhone is the premier platform where the most money is being made. Developers will come to Apple — Apple doesn’t need to come to developers. (Google does, as the underdog.) It’s the same reason why there’s no OS X or Linux port of Microsoft Visual Studio, and you don’t see a lot of Mac owners yelling at Microsoft for not porting its sophisticated development environment to their chosen operating system.

And it’s not like anyone is stopping you from buying a Mac.

It’s bad enough that they have to learn Objective-C, which is a completely unique programming language to your products.

So? If I want to program for Android or BlackBerry, I need to learn Java — and each platform, presumably, has very different interface libraries even within the same language. If I want to program for Microsoft’s platforms, I need to learn the .NET Framework and C# or ASP.NET. In all of these cases, I haven’t yet needed to use these languages in my professional life, so I’d need to learn them.

Google came to the race late. Why are they making me learn Java? Why don’t they let me write my Android apps in PHP, the language I know best?

Right. It’s a ridiculous argument.

Every major platform is going to require a vastly different library, and probably a different language, from what many programmers have already used. That’s why we have the ability to learn new languages, a process that many of us find enjoyable and enlightening.

… So now some of these developers have gone ahead and invested in a Mac to write iPhone and iPad apps, which were accepted through your process. Then months later, you then yank 5000 applications off the App Store because they are “Overtly Sexual”. … A lot of people spent time and energy and resources into writing these apps, “Overtly Sexual” or not. And then you go ahead and rip out all the wireless discovery apps that use undocumented APIs, or those that have “Minimal Functionality”. Can we have some sort of codified Halakha for this? Like the Talmud of iTablets? So we can stop wasting everybody’s time?

No undocumented APIs: Stated very clearly in the developer agreement since the beginning.

No porn or adult-themed apps: Right there in the keynote, plus in the developer agreement.

“Minimal functionality”: To the best of my knowledge, this has only ever been used to prohibit apps that do absolutely nothing except show a static image or color, or something similarly useless, that could be constructed with less than 10 minutes of work.

But keep writing your angry rants instead of competing with the rest of us in this massive, booming software market.

The state of iPhone development, briefly

iPhone developers have complained a lot (myself included), but that’s because we’re highly motivated to make iPhone software and there have been a lot of rough edges.

But the problems keep getting fixed, and there’s very little left to complain about. Even Apple’s app-review process has dramatically improved over the last few months to be much faster and offer more detailed feedback for rejections, which eliminates or trivializes most1 of the problems with app review.

Meanwhile, the biggest problem with other platforms is insurmountable: Not nearly enough people want to use them. That’s not a problem that we’ve ever had over here.

  1. Not all, of course. But the only way to do that would be to eliminate app review altogether, which introduces other problems that I’m not sure are worth the tradeoff. See: Android Marketplace. ↩︎