Mozilla frustrates me

Mozilla “retired” their iPhone app. Big deal, right?

It’s part of something that’s got me thinking about Firefox lately. I clearly am an incredibly uninformed outsider, so consider this to be one giant talking-out-ones-ass rant.

Mozilla deserves undying love for holding the line against Internet Explorer, but it seems like they have utterly lost the plot and it worries me. 

They put out one small app for the iPhone. Apple’s rather buttheaded App Store rules preclude Mozilla from shipping a version of Gecko on any platform so there’s not a huge amount of platform innovation available for them. Still; one app, iPhone only, that you just decide to give up on? Especially one that mates with your existing sync technology? I guess it’s no big deal, not many people have iPhones. And almost no one has an iPad so porting the app to be universal would be a waste of time. There’s no value in the sync technology, and thus no incentive to get people to use Firefox on the desktop. 

Then there’s the “Junior“, a WebKit-powered browser for the iPad. There’s probably a dozen or more browsers on the iPad; do we need another? The answer is really dependent on your personal politics, probably. I would love to see it. So much so that since that little tease a few months ago, I’ll sometimes dig around to see if I can find any news; and the Googles fail me, not to mention I can’t find it at either their Github or Mercurial repos. It’s very strange to me that they’d operate in secret like this.

And then there’s Boot2Gecko, Mozilla’s attempt at recreating the huge market success that was Palm’s WebOS. Look, I loved WebOS; I wanted WebOS to stomp a mudhole into iOS. I wanted to be able to build real applications with web tools. The UX was wonderfully fluid and natural. Ye gods how I wanted WebOS to win. It was my OTP, if you will. 

But it lost. It lost. There’s lots of complex reasons why it lost. One of them is simply that the web probably isn’t ready to compete with compiled code running on bare metal, especially on a platform tuned to that bare metal. Great industrial design mated to a bespoke software platform made amazing things happen for the iPhone and iPad. Palm, in my humble but correct opinion, was far ahead of every shit Android phone to come out (a few high-end models notwithstanding) but the web just can’t compete with native code in terms of performance. 

So what the hell is Mozilla trying to accomplish here that isn’t “This time, it’ll be different!”? Android went straight to compiled code. Windows Phone 8 apparently offers native support now (e.g., C++) and apparently always used C# (I’m not a Windows guy and their constantly-shifting terminology makes little sense to me). What does Mozilla know that everyone else doesn’t? How are they going to accomplish all the things everyone else says “screw it” and punts to C to accomplish? And worst of all, they’re banking on hardware makers being able to produce a phone that people love – because if the physical artifact isn’t beloved, let’s face it, no one will even make it to the software.

I get that Chrome made life far too interesting for Mozilla: Google wants Chrome to be #1, but needs at least one not-Webkit browser around to ensure the playing field appears level. So since Mozilla gets most of its revenue from Google searches, they (Mozilla) should look towards diversifying their income, and I guess somehow B2G fills that need. Not sure how, but otherwise why the heck are you doing it

Lastly, there’s Mozilla Labs. Once it had projects that seemed to make real sense: Prism (desktop Gecko apps, like Fluid does for WebKit) was my favorite. Today the first project listed is something about badges. People love badges, I guess. They don’t really care about the Web and having web applications seamlessly integrated with their desktop. Nope.

I just don’t get any of it. From an outsider’s perspective they seem to be all over the place, and in strange directions that make no sense. Badges? We don’t need no stinking badges. 

It’s like WebOS all over again

So a long time ago, Palm had a pretty neat idea: there’s web applications almost literally everywhere, so why can’t we start using them directly on hardware?

(Note that I have no idea if this was the actual question they asked, but for my purposes, it’s good enough.)

From this they created WebOS, which ran on their Pre phones.

WebOS was pretty freaking awesome. Everything on the hardware was exposed through a pretty nice JavaScript API; you could play music, access location, dial the phone, check email, contact instant messaging services, whatever. The UI was created entirely with HTML and CSS, and they shipped a pretty nice set of “widgets” (basically, CSS and JavaScript) to quickly add UI elements.

There were tons of features that were really, really genius on the Palm, that has yet to be copied to Android, iPhone, or WinPhone. If nothing else, I still believe that the Palm/WebOS touch-based interaction was so much farther ahead and just damn better than all the others.

Anyway, it wasn’t all sweetness and light. There were … problems:

  • They used a forked version of the otherwise wonderful WebKit, that never quite worked just like the iPhone or Android browsers, so you had to deal with yet another layout engine.
  • Their JavaScript engine was JavaScriptKit, which is a good engine but at the time it wasn’t as fast as, say, v8. Today the benchmarks war is often one of increments but at the time, it was provably slower.
  • At the time, people were raving over a bunch of games and apps (mostly on the iPhone) that simply aren’t possible with HTML5 today, much less 2009. Need proof? See this list. Show me HTML5 versions of those apps. Hell, show me Flash versions of those apps.
  • jwz detailed his difficulties in getting one of the first apps onto their app store, among other problems.

Palm eventually gave in and shipped a sort of “native” runtime, allowing developers to ship C/C++/whatever apps.

You could make small complaints about the hardware, as well: AAPL was really hitting their design stride in 2009, and the Pre was a noble but ultimately failed effort to make a device that really stands out. It was really good but only when placed against the not-an-iPhone pack.

(Daring Fireball has some thoughts from mid–2009 that are pretty spot-on.)

Ultimately I think had Palm been competing in a world without the iPhone, it would be the #1 device today. They just didn’t get a critical mass of developers to attact enough users, because everyone was gaga over the iPhone.

So what’s this got to do with anything? Well, there’s this: Boot2Gecko. The tl;dr is simple: “Take WebOS and s/WebKit/Gecko/g”. It’s the same story as WebOS.

Seriously. Watch this presentation and tell me, that’s not the same stuff Palm said 3 years ago.

I really wish someone from Mozilla would explain how their thing is going to be any different, other then they have experience making “web APIs”. They’re not even targeting a hardware platform, like Palm did; so they are already 1 step behind Palm, who at least had a reference platform and “total package” right out of the gate.

I’ve reverted to Firefox and Tbird lately, because Safari is going through yet another spurt of growing pains and Google can kiss my ass. It’s pretty amazing how Firefox has been able to turn the ship and go from crashy bloatware to speedy; just a year ago Firefox was basically unusuable for me (and if Chrome’s adoption is any indicator, a lot of people) but I’m actually pretty content these days. I imagine others would, too, but they’ve already leapt on board of Chrome and one browser switch per generation is enough for most people, especially if the story is simply “hey, it sucks less now”.

So I’d really like to know why I should bet the farm on Boot2Gecko; why I should tell my bosses, “No way, you guys, the future isn’t Android and iPhone, it’s gonna be this MozillaPhone thing”. I’d really like to know how they’re going to overcome all the problems that killed Palm.