Firefox OS

In December 2015, Mozilla announced that its ambitious new operating system would not be appearing on any new phones, but the project may still live on as a platform for smart TVs and IoT devices.

The mobile device space is dominated by two platforms: Apple's iOS and Google's Android. Is there space for another platform? If you asked Mozilla a year ago, the answer would have been an emphatic yes. Inspired by Chrome OS, Mozilla imagined a platform where apps were essentially Web sites. That dream became a reality in Firefox OS.

Firefox OS is a very lightweight system. At the heart of the stack lies the Linux kernel. At the top, there's a modified version of Gecko (Firefox's rendering engine) and the JavaScript runtime.

The advantage of building an app as a Web site is that it allows you to leverage existing technology. HTML, JavaScript and CSS are mature technologies. There are many open-source libraries that developers can use to boost the development process, and it would be easy for Web developers to change gears and start working on the new platform.

The idea isn't new. Cordova is an open-source project that uses Web technologies to build cross-platform apps. The same code base can be deployed to Android devices, iPhones and even Windows PCs. The main difference is that Firefox OS offers native support for HTML5 Web apps. This makes the development and deployment process simpler, and it provides a rich device API for developers to use.

There's no doubt that Firefox OS's lightweight Web-centric design makes it an appealing platform for developers. The browser-based stack makes it easy to develop new applications rapidly, reusing code from existing projects and third-party libraries.

But, pleasing developers is only one part of the puzzle. To succeed in the competitive mobile platform space, Mozilla would need to convince handset manufacturers to support its product. It also would need to demonstrate that the new platform offered benefits that aren't available in Android. And, Mozilla would need to convince users as well.

Although HTML5 app development is possible on Android and iOS, most developers use the native frameworks instead. Those frameworks are more complex and less portable than HTML5. So, why is the native framework the preferred choice? The main reason is performance. The native frameworks offer greater performance by hooking into low-level libraries. These libraries are optimized for performance on mobile hardware, offering a fast and responsive user experience.

The root of the problem is the browser itself. Web browsers are built to accommodate a wide range of different types of content and layouts. That flexibility comes at a cost. In the case of Web browsers, that cost comes in the form of the DOM.

The DOM is the "Document Object Model", a data structure that represents the structure of the page. The DOM is expensive--it's memory-heavy. Rendering the DOM (turning it into an image) is computationally expensive as well. Web applications work by manipulating the DOM. Each small change requires a number of recalculations and layout changes. Each of those changes chews up processor power, so HTML5 apps seem less responsive because their runtime engine has to work harder to process changes to the display.

In the end, it's this performance bottleneck that keeps HTML5 from replacing native frameworks. Developers rely on the native frameworks instead.

On Firefox OS, there is no other framework. HTML5 apps are the only option. As a result, even simple Firefox apps struggle to match the performance of apps on Android devices.

Selling Firefox OS to mobile handset manufacturers has been a slow and painful process, and Mozilla is calling it a day, but it isn't quite giving up on its baby yet.

Firefox OS has demonstrated that it's a very flexible platform. It has the potential to run on a wide range of devices, such as TVs and IoT gadgets. As long as Mozilla can find some persuasive use cases for manufacturers, it has a good chance of making an impact in these emerging fields.