Too Many iPhone “Developers”
Yesterday, I came across this gem on Daring Fireball where John Gruber discusses the change in the rules for developers:
My reading of this new language is that cross-compilers, such as theFlash-to-iPhone compiler in Adobe’s upcoming Flash Professional CS5 release, are prohibited. This also bans apps compiled using MonoTouch — a tool that compiles C# and .NET apps to the iPhone. It’s unclear what this means for tools like Titanium and PhoneGap, which let developers write JavaScript code that runs in WebKit inside a native iPhone app wrapper. They might be OK. This tweet from the PhoneGap Twitter accountsuggests they’re not worried. The folks at Appcelerator realize, though, that they might be out of bounds with Titanium. Ansca’s Corona SDK, which lets you write iPhone apps using Lua, strikes me as out of bounds.
Now, anyone who knows me is probably thinking I'm loving this because I'm some sort of mindless Apple fanboi. If you're one of these people, I'm sorry to disappoint you. This makes me happy because this rights a wrong.
With the advent of the iPhone, you all of a sudden had a great deal of people, even those who don't own a Mac adopting this hand-held computer from Apple. This is a good thing. Competition is good. No one company should own any market, whether it's RIM, Google, Microsoft, or Apple.
Where it went right and wrong at the same time was the massive influx of developers and "developers." Having 180,000 applications is a good thing for a platform. However, with the good comes the bad and you don't even have to look far to find the tripe. Just look at all the fart and flashlight apps that landed in the App Store.
Now, when I put developers in quotes, I'm calling out the script-kiddie equivalents in the developer community that have no skills and/or are unwilling to obtain the required skills to develop quality applications. To see these "developers" and their rage in their full "glory," check out this fine example from TechCrunch.
Developers have nothing to lose from the recent changes to Apple's Developer License Agreement. It's the "developers" that have everything to lose. Sadly, though, it appears as though many "developers" are still safe...for now. Under the new rules, you have a few options for developing your iPhone OS apps: Objective-C, C, and C++. As I understand it, even if you're developing for the latter two, there's no avoiding Objective-C if you utilize iPhone OS UI elements. If you try to "develop" an iPhone app using Flash CS5, MonoTouch, or some of the other frameworks that allow a "developer" to create an app without using the iPhone SDK, you're out of luck.
The people most affected by this are those Microsoft-centric developers who are upset that they need a Mac to develop for the iPhone. No complaints, however, about needing Windows to develop for Windows. If you don't test your app in the operating environment on which it would run, you're not a developer. You're a hack. Some may still cry for the iPhone/iPad emulator for Windows, but consider this: the Mac runs OS X. The iPhone OS is OS X. If a "developer" still doesn't understand this important point, then they need to give up their dream of being an honest to goodness developer.
Now, the loophole that lets some "developers" stay in the game is that it still allows "JavaScript as executed by the iPhone OS WebKit engine." That's too general. What this does is allow drek like PhoneGap to produce "apps." The people who use this tool are lazy "developers" who don't want to put the time and effort into building great applications for the mobile platforms, those with no sense whatsoever about user experience, and just generally dishonest people.
What PhoneGap does is basically wraps a web application in WebKit and packages it as though it's a native application. First of all, this is completely and utterly dishonest. When people download an app, they are expecting an app that was built FOR their device and not some repackaged web site. It's fundamentally dishonest, no matter how the "developer" tortures logic or the English language to justify their deceit. These "developers" are merely hacks and haters seeking to reap the rewards from the gold mine without doing any of the mining themselves while bragging to anyone who would listen about how great a miner they are.
PhoneGap and tools like it let "developers" (again, the white-hat equivalent of script-kiddies) who know nothing more than basic web technologies to pretend they can develop "desktop" applications. John Gruber hinted indirectly at the danger this poses to not just Apple, but in my opinion the "developers" and iPhone consumers as well.
I don’t think Apple even dreams of a Windows-like share of the mobile market. Microsoft’s mantra was (and remains) “Windows everywhere”. Apple doesn’t want everywhere, they just want everywhere good. The idea though, is to establish the Cocoa Touch APIs and the App Store as a de facto standard for mobile apps — huge share of both developers and users.
So what Apple does not want is for some other company to establish a de facto standard software platform on top of Cocoa Touch. Not Adobe’s Flash. Not .NET (through MonoTouch). If that were to happen, there’s no lock-in advantage. If, say, a mobile Flash software platform — which encompassed multiple lower-level platforms, running on iPhone, Android, Windows Phone 7, and BlackBerry — were established, that app market would not give people a reason to prefer the iPhone.
And, obviously, such a meta-platform would be out of Apple’s control. Consider a world where some other company’s cross-platform toolkit proved wildly popular. Then Apple releases major new features to iPhone OS, and that other company’s toolkit is slow to adopt them. At that point, it’s the other company that controls when third-party apps can make use of these features.
So from Apple’s perspective, changing the iPhone Developer Program License Agreement to prohibit the use of things like Flash CS5 and MonoTouch to create iPhone apps makes complete sense. I’m not saying you have to like this. I’m not arguing that it’s anything other than ruthless competitiveness. I’m not arguing (up to this point) that it benefits anyone other than Apple itself. I’m just arguing that it makes sense from Apple’s perspective — and it was Apple’s decision to make.
There's the rub, basically. If a "developer" uses a tool like PhoneGap and Apple updates the OS, adding or tweaking APIs, there's no guarantee whether or when that "developer" can make use of these changes in their "app." This hurts not only the "developers," but also the consumers who miss out on using an app that takes advantage of these features. If you take short cuts to try to cheat the system, you or your customers will get burned. Dishonesty and laziness, in the end, does not pay.
Finally, the "developers" who use any of these tools to avoid learning Objective C or any of the other permitted languages are arguably the reason why the applications on Windows tend to be rubbish from a design and user experience point of view. The reason why there appears to be an utter lack of UI standards on Windows is that there's no enforcement. Even Microsoft rarely plays by its own rules. On the Mac side of the fence, even though Apple doesn't enforce the UI guidelines on third-party applications, the Macintosh developer community has been very good at policing itself. The userbase has also been quite effective at rewarding developers that create products that are "Mac-like." Care is put into the user experience to ensure that the user is using an application that looks, feels, and behaves like it belongs on that computer.
It's this culture of do whatever the damn hell you want and screw the UI guidelines that threatens the iPhone OS platform with this huge influx of "developers." It's also why these "developers" are so frustrated. Apple cares. They give a damn about the user experience. They know that people pay what they pay for Apple products because of the user experience. People are buying the iPad because of what it offers in the way of user experience. They're not targeting the crowd that shops based on a laundry list of tech specs. They're targeting people who care about ease of use and fit & finish and are willing to pay a small premium for it. To quote John Gruber, "Apple doesn’t want everywhere, they just want everywhere good."




