Apple is not evil. iPhone developers are stupid.

In his “Apple’s mistake” essay Paul Graham makes an unwarranted assumption; an assumption everybody who’s currently involved in the Great App Store Debate seems to be making.

The fundamental problem on the iPhone is not Apple’s App Store approval policies, but the iPhone developers’ arrogant disdain for Web technologies.

It was only last Friday I told a roomful of Web developers that Apple is evil, and a spontaneous applause erupted. Since then, however, I have changed my mind completely. The Web developers and I were wrong.

Apple is not evil. iPhone developers are stupid. Their problems with the App Store approval process are entirely their own fault and they deserve no commiseration.

I hope the App Store approval process sticks around for a loooooooong time.

Update: I was wrong about Web apps being able to replace native apps right now. I was wrong about the iPhone developers’ mindset. They aren’t stupid. Read my follow-up post.

Apple’s mistake

Graham’s argument runs as follows:

Developers want to develop stuff they themselves want to use on the platform they’re using. Developers have embraced the iPhone with a passion. Therefore developers want to develop stuff for the iPhone. This is to Apple’s advantage, since it’s developers that can make or break a platform. Apple, however, is pissing off developers royally by its insane App Store policies. Therefore it is losing some good iPhone application developers. Even worse, Apple is becoming an Evil Company that developers won’t want to work for, either as third-party app creators or directly as employees.

The unwarranted assumption here is that if developers want to develop for the iPhone platform they love they must go to the App Store for distribution.

That’s not true. They have another option. In order to solve the App Store problem they just have to stop wilfully ignoring it.

Stupidity

In order to release an iPhone application without having to submit it to Apple’s insane App Store process, developers could just use Web technologies and create Web apps instead of native apps.

The iPhone’s Safari browser is one of the best mobile browsers available, and recent improvements in hardware acceleration have made it an excellent graphics platform that can handle serious 3D-animations written entirely in CSS.

It also supports JavaScript geolocation, which is (I hope) only the first step towards true device APIs that will give JavaScript developers access to phone functionality such as the camera, text messaging, the address book, and more. I’m assuming Apple is working on all that because it’s the next logical step.

Safari’s support of appcache makes it possible to store the Web app’s core files on the iPhone itself, so that it only has to download the data. Thus mobile connection problems can be avoided.

The user can place the Web app’s icon on his desktop, thus creating an app-like way of starting the Web application. When will users do that? When they think your app is cool. Instant meritocracy.

Best of all, if you want to update a Web app, you just put the updates on your Web server. There’s no need to wait for Apple’s broken approval process.

iPhone developers are stupid because they’re wilfully ignoring all this.

More stupidity

I reviewed the apps I have on my iPhone, and most can be released as a Web app right now. The exceptions are complex games that are both graphically and programmatically intensive, and apps that depend on device functions such as the accelerometer or GPS.

As I said, Safari supports geolocation, and maybe Apple is working on other device APIs. That would solve all problems for the second category. Complex games will remain very hard to release as a Web app in the near future.

Still, the graphically simple games such as sudoku and chess, the interactive shopping lists, the dictionaries and bible citation apps, the beer appreciation apps, the firmware Yahoo weather app, and most importantly all social network clients could have been written as a Web app without any loss of quality whatsoever. (Most have fairly little quality to lose in any case.)

In addition to avoiding the App Store and its insane policies, such Web apps would (mostly) work in any modern browser, whether desktop or mobile, and users of other phones or even of old-fashioned desktop computers could have used them, too.

Developers like their stuff to reach as many people as possible, right? That makes sense from both a business and an ego perspective, right?

Then why do iPhone developers jump through burning hoops as nasty as the App Store approval process just to make sure that their stuff can only be used on one single platform instead of many?

That’s stupid.

The Web

Apple’s original plan for iPhone development was to use Web technologies. This plan caught both Mac developers and Web developers by surprise because it was totally unexpected.

The plan failed. Jobs Himself ordered His developers to create Web applications with Web standards, but a deafening silence ensued. Then He hurriedly thought up the App Store. Too hurriedly, as it now turns out.

I remember the ecstatic reaction to the announcement, because it was the very first time a major industry leader mentioned Web standards in a major presentation.

Still, we Web developers didn’t really believe our favourite technology could deliver all that Apple wanted. Maybe we still don’t.

Besides, Apple does not reach out to Web developers at all, and Web developers respond by not bothering with Apple beyond making sure their Web sites work in Safari.

I believe that Apple is working towards its own heavily CSS-centric Web OS, certainly for mobile, possibly also for the desktop, and that this evolution has been slowed down by the energy devoted to the App Store as well as the complete lack of outreach.

(This lack of outreach, by the way, is the main problem with every single mobile player that has opted for Web technologies in the past two years or so. Everybody wants Web technologies. Nobody cares about Web developers. Stupidity is not restricted to iPhone developers.)

Arrogance

The fundamental problem on the iPhone is not Apple’s App Store approval policies, but the iPhone developers’ arrogant disdain for Web technologies.

That’s nothing new. Most X developers (for any non-Web value of X) live in mortal fear of the browser as a development platform.

As a long-time browser researcher I can confirm that their fears are not entirely unfounded, although the situation is not nearly as bad as it’s made out to be, especially not if you only want to target the iPhone.

But the so-called “real” developers aren’t confronting their fear. They’re covering it up with arrogance.

They dismiss Web technologies as toys for children. JavaScript is just this little language that cannot possibly compare to real technologies such as the one they’re using. HTML is too simple. Real programmers don’t do that stuff. As to Web developers, they are just glorified pixel-pushers that should in no circumstance be taken seriously.

After ten years I am fucking tired of the “Web development is not real programming” bullshit that the arrogant bastards in “real programming” are spouting because they’re too frightened to learn something new.

Fuck those condescending, ignorant, self-important, stupid, blind, fearful pricks. Fuck them real hard. Where it hurts.

And fucking them real hard where it hurts is exactly what Apple is doing right now.

That’s why I changed my mind. That’s why I’m cheering Apple on. I hope the App Store approval process sticks around for a loooooooong time.

The myth

The poor, oppressed iPhone developer suffering under Apple’s heavy App Store hand is a myth invented by these developers themselves because they’re too fearful to look beyond their “native” fetish.

The Web is patiently waiting in the wings like a spurned bride, quietly promising to solve all of their problems for them if they’d only look at her.

But instead, iPhone developers are eagerly bending over begging Apple for more because of their myopic obsession with bad APIs, the twin geekgasms of both objecty stuff and C, bloated SDKs, impossible layout mechanisms, and all the rest of the archaic nonsense we’re going to have to rid the mobile Web of in the next few years.

All that stuff is native and therefore “real” and important. Web development isn’t.

Well, you know what, iPhone developer? You’re wrong. Stupid, stupid you.

In order to create an app for the iPhone platform you know and love, an app that Apple’s policies can never touch and that works on other platforms, too, you need an iPhone, a text editor, graphics software, a Web server, and a good Web development reference.

None of these are particularly hard to find. You already found the reference.

Jobs showed His chosen people the straight and narrow path to enlightenment, but they ignored His word. Therefore He unleashed the scourge of the App Store upon them. Good for Him. He should do stuff like that more often.

iPhone developers deserve no commiseration. If we encounter yet another post about Apple’s lack of love for the author’s iPhone app, we should tell the pathetic whiner it’s his own fucking fault. He should have used Web technologies instead.

Update: I was wrong about Web apps being able to replace native apps right now. I was wrong about the iPhone developers’ mindset. They aren’t stupid. Read my follow-up post.

Comments are closed.