I started programming when I was 12, that’s 6 years ago, before the whole smartphone revolution took off. Yes, the iPhone was already launched by then, and if I remember well Android was on its way, but they had a very small amount of traction and most developers didn’t started doing mobile programming.
My father taught me some basic web programming and I also started learning C++ and Qt by myself. I enjoyed the blank canvas the web was, in which I could code everything I wanted because of the freedom the platform gave me. But the web wasn’t capable of doing a lot of stuff that I could do with C++, so I started enjoying native programming more. Until HTML5 arrived.
I remember my first smartphone was a HTC Magic, that was the world’s second Android smartphone (kudos to my parents for buying it for me), and it was pretty amazing. I also had the opportunity to start developing for Android and create well-known apps, since I was in the first batch of early adopters. But I didn’t. Why? Simple, I didn’t like the platform. And I still don’t.
I was thinking like, c’mon guys, why Java? Why your own SDK? Why not the web as the development platform? I continued telling myself that HTML5 was still in heavy development, but anyways there was no way to convince myself to start coding for Android.
Now HTML5 is ready, and we have Firefox OS that despite being in an early stage, I think provides a better development experience than Android or any other mobile platform. Yeah, that’s a bold argument. Let me break down my ideas:
- Firefox OS doesn’t have a SDK: The web is the SDK. First of all, there is no need to learn a new programming environment. You just code for a multiplatform, open and standard-based programming environment that is the web. You can continue using your own IDE, text editor or whatever you are using, there is no need to switch over to Eclipse or Xcode.
- No one tells you what you are allowed to: Welcome to the web! It is a blank canvas and you can build whatever you want. No need to be restricted by technical decisions made by big companies for their own benefit.
- You own your app: In the other mobile platform you don’t own your app, you share your ownership with Google, Apple or whatever is the company behind the platform. Let me explain this. With Firefox OS, you can distribute your app in many different ways, without having to give Mozilla or Telefónica a penny if you don’t want to. That’s because of the install API. But also you can create your own Firefox OS marketplace if you want to.
- Debugging couldn’t be easier: Web apps are no compiled in any way, so debugging doesn’t require any additional tools apart from the traditional web inspector you have used before for your webpages. Also there is a clear separation between the markup code (HTML), styling code (CSS) and the logic (JS) that is not that clear in other platforms where you have the styling code kinda mixed with the markup code, for example.
If you are an Android or iOS developer you may be thinking “WTF r u sayin? This web thing is a toy!”. And I agree with you that Firefox OS was a long way to go, but I invite you to give it time.
HTML5 is ready for prime time, so give Firefox OS a year and you will see how much it matures. Don’t only see its current state, but also all the possibilities it has and all the doors it will open towards a more open, web-based world.