More specifically the question would be why it is now technologically possible.
Firefox OS is an operating system for smart mobile phones, also called smartphones. Its main distinguishing feature is that it allows you to create applications using the same technology as that used to make web pages. It has been possible due to the technological development in recent years of both terminals and web browsers until reaching a development such that they are already capable of providing outstanding user experiences. Let’s see how we got here.
The first mobile web browsers to become popular, like Opera, had very limited features. The hardware of that time was so limited that many browsers had to resort to solutions such as intermediate servers doing part of the task. They did their job decently in most cases but they were far from what one would expect.
A substantial change occurred with the arrival of the iPhone. With a terminal with much-improved capacity and a much larger screen than usual at that time, a user experience was significantly better than the existing one.
For complex applications, Apple introduced a web application development kit at the time. The idea was that applications could be developed that were downloaded from the network and ran in the web browser with the same appearance of the native applications of the phone. What happened is that this type of application never fully succeeded. The reasons were various. One important, that technological limitations made the experience not what users wanted.
The next step comes when Apple introduces its native app development kit. By then, the terminal’s processing capacity had improved over the first models. In addition, implicitly or explicitly, Apple took the technological option of substituting an “interpreted” language for a “compiled” one for the creation of applications.
“Compiled” means that the translation from the language that programmers speak to the language that machines speak is done when an application is created. “Interpreted” means that the translation is performed at the moment the mobile executes the application. This is why “interpreted” applications are slower.
Thanks to the change, new Apple applications could run faster. In other words, Apple had made decisions that solved the weak point that was the processing capacity of the terminals of that time.
A little later, Google presented its environment for creating applications on the Android operating system. In it, applications are created using the Java programming language. This language is halfway between the “interpreted” and the “compiled” languages, so it has intermediate performance between the two. Technically what you do is compile a code (this makes it fast) and then run it in a virtual machine (this makes it slow). In other words, the improvement in the capacity of the terminals made solutions other than the totally optimal ones beginning to be possible.
What remained to be done, and this is what Mozilla and Telefónica Digital have done , is to create an environment that allows a web application to access the basic capabilities of the phone. How to make calls, send messages, create connections to send data or access the calendar.