The promise of Firefox OS

“But how is it going to beat Android or iOS?”

That’s the reaction many people have when I tell them that I am working on Firefox OS, the new mobile operating system from Mozilla. It is a logical reaction. After all, we live in times where every major software company and its mother is releasing a mobile platform, struggling to lure developers into their new proprietary environment, APIs, libraries, etc. And indeed, many of these companies barely make it or don’t make it at all.

But Firefox OS will not be directly battling against other mobile platforms. Its main objective is to change the way the world develops mobile apps, and even in the unlikely event that Firefox OS itself disappears in the process, if web-apps become mainstream, it will have succeeded.

The fact that any website is a potential app can’t be underestimated. By tapping into extremely popular and flexible technologies such as HTML5, CSS3 and JavaScript, Firefox OS instantly promoted millions of web and JavaScript developers into app developers. All they have to do is download a free simulator addon (and not even that is strictly necessary if your app is not going to use phone APIs). Developers already know the browser environment and the tools, and there’s no need to learn any new language or framework.

I hear some of you, already. Just when you were over with that mess that it is to manipulate the DOM and that sneaky JavaScript language. Just when you learned to love the highly architected Android classes and managers or iOS’s beautiful method naming, why would we be back to that mayhem that is writing web applications? Didn’t we agree that HTML was not, after all, good enough for making real and performing apps?

Well, that might have been true some time ago, but we live in a brave new world now. Several approaches exist for developers to develop solid and real-world web applications, in the form of high-quality frameworks. At Telenor/Comoyo, where I work, we are leaning towards using AngularJS for building our apps, but there are multiple well-thought, reliable frameworks that build on years of existing knowledge of modern application development. And if your problem is with JavaScript as a language, you can already use a myriad of languages that reliably compile to it. Do you come from a Java background? You’ll probably like [Dart] http://www.dartlang.org/), from Google. More of a functional kind of developer? Try ClojureScript, which is an impressive, well-maintained and well-performing implementation of Clojure on top of JavaScript. Coming from Ruby? You’ll be almost at home with CoffeeScript. You get the picture.*

While some other mobile vendors such as Blackberry also provide ways to develop apps for their systems using HTML5, Mozilla is going one step further by pushing hard to standardize the WebAPI through the W3C, guaranteeing that your app will work in any device that follows the WebAPI standard.

In my humble opinion, this puts some sense into the madness that developing for mobile devices has become, in which the developer has to know several languages, frameworks and APIs, not to mention pay a developer fee in order to build apps in some cases. It really feels like a step from the open web philosophy right back into the 90s, ridden with vendor lock-ins but without the good music.

Mozilla has a good track record of looking after the web, and it is a trusted company by its users. In the past they played a big role in freeing us from browser monopolies and pushing for better web standards, a movement that browsers like Chrome hooked onto, contributing to a better, faster and more accessible web for everybody. We should strive to do the same with our mobile environments. Fewer walled gardens, more standards and openness.

That is the promise of Firefox OS.

* Although hey, it wouldn’t hurt to learn a bit of JS to know what’s going on under the hood, after all, it is a powerful language that will only get better with the upcoming ES6 standard.