
There is something magical about Firefox OS - robhawkes
http://rawkes.com/articles/there-is-something-magical-about-firefox-os
======
zacharyvoase
> In short, Firefox OS is about taking the technologies behind the Web, like
> JavaScript, and using them to produce an entire mobile operating system.
> Just let that sink in for a moment — it's a mobile OS powered by JavaScript!

This kind of happened before: <http://en.wikipedia.org/wiki/HP_webOS>

What went wrong? Well, apparently[1] there were some big performance
issues—and IIUC Gecko has some of those already.

[1]: [http://www.slashgear.com/hp-ipad-2-webos-testing-double-
touc...](http://www.slashgear.com/hp-ipad-2-webos-testing-double-touchpad-
performance-says-insider-19172970/)

~~~
masklinn
> This kind of happened before: <http://en.wikipedia.org/wiki/HP_webOS>

Yeah, and I find the complete and utter lack of any mention of WebOS in TFA
troubling.

> What went wrong? Well, apparently[1] there were some big performance issues

Your link points to insufficient hardware though, not software issues.
Hardware which seems to have been the main recurring problem on all WebOS
machines (according to reports, there were also issues with the software being
shipped far too early for v1.0, against the wishes of the engineers working on
it)

~~~
klausa
Well, considering that the same chipset (APQ8060) was also used in some
variants of Galaxy S II, I really don't think so that Touchpad hardware was
that bad.

And the fact that after installing Android 4.0.4 on it, it feels like whole
new machine (speed-wise) - I really blame webOS here.

~~~
robhawkes
Fx OS on the SGS2 runs BLAZING fast compared to the device in the video. The
reason why we don't shout about that? Because we're not launching with that
device and it's not right to raise expectations in that way.

~~~
JackC
FWIW, I agree with masklinn that it's a little weird not to mention WebOS in
the article. In particular when you wrote "In short, Firefox OS is about
taking the technologies behind the Web, like JavaScript, and using them to
produce an entire mobile operating system. Just let that sink in for a moment
— it's a mobile OS powered by JavaScript!" I let that sink in back in 2009
when they announced WebOS. I was pretty excited about it. The way it crashed
and burned from internal wrangling, delays, buggy releases and odd marketing
was really sad. This is like you're showing up a year after the Hindenburg
crashed and saying "Just let this sink in -- we've invented a rigid lighter-
than-air flying machine!" That's not where we are in the conversation.

The rest of the article is really exciting, and I really hope you can launch
and get some traction. I agree that Mozilla is important in this space for
exactly the same reasons Firefox was important when it launched. I just think
it would be kind to tip your hat to WebOS along the way.

~~~
zabraxias
WebOS was targeted as an Android/iOS alternative on higher-end devices using
proprietary APIs. It was also being developed by a company with shareholders
who were purely focused on the bottom line.

I am not trying to criticize them but there are inherit differences between
the two projects. I am thinking Mozilla is also partly betting its reputation
of protecting user information while being developer friendly.

The free market will decide of course but at least initially that free market
won't be North America.

------
cs702
According to this blog post, Firefox OS is _already_ providing native-like
performance in a _standard_ JavaScript+HTML+CSS environment. (By "native-like"
I mean fast enough that the application will _feel_ native to users.) If this
is true, then I would agree Firefox OS is a game changer, because it means
that ALL modern web applications can run unmodified _at native-like speeds_ on
mobile devices. The number of apps available for the platform is already in
the many millions. Very exciting!

\--

Edits: changed "ALL existing web applications" to "ALL _modern_ web
applications," which better reflects what I intended to say; added a bit of
context in response to robhawkes's comment below.

~~~
omarqazi
Watch the video. That's not native performance. It will never be native
performance, because there will always be the layer of the rendering engine
between your application and device. The best they'll ever do is "close enough
to native that you don't notice", and they're certainly not there yet. And the
number of apps is already in the millions? Give me an example of one app out
there that's in the same ballpark of quality as the stuff you can find on iOS
or even Android.

~~~
aaronblohowiak
There is always a rendering engine unless you're writing pixels to the buffer
directly. The thing is that Cocoa/CocoaTouch's rendering and compositing is
much faster than Webkit's. Why that is, is left as an exercise for the reader.

~~~
omarqazi
Webkit uses iOS's rendering and compositing libraries to render information on
screen. That's why it will never be faster than those libraries.

------
h2s
You could set your watch by the HN response to a story like this. Pure doom,
gloom and naysaying.

Smartphones these days live and die by their app ecosystem. I would _love_ to
be working on mobile apps, but for the expense of buying an iPhone, an Android
phone and a Windows phone, plus licenses for software to develop for all
three. Not to mention the daunting prospect of dealing with Objective C, Java
and C# simultaneously. This is a ludicrous prospect for a lone developer.

Give me a platform that costs nothing to develop for and lets me use my
existing skills. If there's a website version of my application, let me share
components between the two versions instead of locking my mobile version up in
your platform's chosen systems programming language and development
environment. Firefox OS ticks all these boxes.

I just might be the most average developer out there these days: a web
developer. If you enable people like me to develop applications for your
device without any bullshit, then you automatically have a bigger set of
possible contributors than the competition.

That is why I am cautiously optimistic about Firefox OS. If you build it, we
will come.

~~~
PommeDeTerre
I'm confused by your statement about "the daunting prospect of dealing with
Objective C, Java and C# simultaneously. This is a ludicrous prospect for a
lone developer."

Perhaps that's true for a hobbyist. But any professional software developer
should already be familiar with at least one (if not all) of those languages,
and should be able to pick up the others with very little work.

Once you know C#, for instance, you'll quickly see that Java is essentially a
subset of it these days. Sure, there are differences, but they're quite minor.
The same goes for Objective-C, to some extent. The syntax is a bit different,
but most of the concepts are similar enough. Even the most commonly-used
libraries for each don't actually differ that much in practice.

In fact, many developers with experience in industry will have already had to
use multiple languages at the same time throughout their careers. They'll
already know how to work on several projects simultaneously, using several
languages, and many more libraries.

In fact, I'd suspect that most of these professionals would feel very
handicapped if they were forced to use JavaScript for all development.
JavaScript has proven time and time again to not be a good language for
anything but short scripts. Languages like C++, Java, C#, and Objective-C have
core features that make large-scale, distributed software development
possible. JavaScript lacks these, and anyone working on a large JavaScript
code base will know the pains that arise.

It won't be good for Firefox OS if only the most inept developers are
attracted to it. That's not the kind of ecosystem that produces useful
applications.

~~~
robhawkes
You'd be surprised at what JavaScript can do nowadays…
<https://developer.mozilla.org/en-US/demos/detail/bananabread>

~~~
pkolaczk
There is nothing surprising in it. 3D rendering is done mostly by hardware
(OpenGL), not JS. But try to code something more sophisticated computationally
for CPU, not a one function long microbenchmark where the JIT can guess all
the types because code is simple. Something like simulating a complex
mechanical or electrical system or some discrete optimisation stuff. Then it
quickly turns out carefully hand crafted JS even on Chrome is more than order
of magnitude slower than naive Java code.

~~~
bryanlarsen
The JIT should very easily be able to guess all the types in a complex
mechanical or electrical system, or in discrete optimization. Matrices are
fairly consistently typed.

I don't think that JS would do much worse than "naive C" in such a situation.
To do well on these sorts of problems, you need to pull in a library that
properly uses the CPU's vector unit or the GPU, no matter whether you're using
C or JS.

~~~
pkolaczk
If it did whole-program optimization, it _theoretically_ could. But it is
probably too costly. You don't have that much time and resources to optimize
JIT, as you have doing static compilation. That's why, contrary to common
beliefs on static vs dynamic compilation, still static compilers win in most
cases, compared to even very mature things like JVM or .NET CLR, even though
they have much easier task than JS.

------
lifeisstillgood
I apologise for writing a long post - I have not time to write a short one

There is a reason MBAs are taught market analysis. Its important to position
your product for maximum effect (usually maximum profit, but that may not be
the case here)

The arguments for FirefoxOS seem to be

1\. It's OSS 2\. It's Web-technologies only 3\. It's aimed at the "emerging"
markets' mobile users 4\. It runs on cheaper hardware better than the
competition

1 and 2 are great. And no-one but us cares, except in 20 years when no child
has even seen a line of code because OSS gets wiped out as all PCs are
replaced by mobile devices.

(This is the reason I want this to succeed, and I want laptops to be certified
FreeBSD compliant. It matters!)

Anyway this is about market positioning, not OSS. So.

Its a well-known truism that don't be in the middle of any market - you get
squeezed from both ends.

The emerging markets have adapted enormously well to only having SMS and no
smartphones (see anyone in Mumbai). That is not going to go away, so the true
bottom end of the market is SMS capable devices. They will probably just give
them away.

If Firefox OS says we are not as good as iOS then thay are squarely putting
themselves in the middle of the market.

Aim higher folks. The world is not segmented into feature phones and
smartphones. It is segmented into one market "I want to use a networked mobile
app to get laid or get cash." You will never be the bottom end - that belongs
to sending cash by SMS, or selling your harvest with a text.

So its the top of the market - what the cool kids have.

And so, 1 & 2 might just be our saviours. Apple made a great new product that
was catnip to the coolest kids in the West. Firefox OS is geeky cool - it
might just appeal to the coolest kids not in the West. And they will want to
buy the 'best' phone - aim high folks.

I hope you succeed.

~~~
robhawkes
Thanks for the comment, I really appreciate it!

To be clear, I'm not educated in business so my thoughts are my own
(potentially naive) conclusions.

However, there are some very sound business decisions behind us chosing to go
with Brazil first, and to go with cheaper, low-end devices. I'm sure they know
what they're doing more than I do!

As an aside, we do have versions of Fx OS running on high-end devices and it
runs _amazingly_ well. It's not our market though (for now) so it's merely a
cool "look what we could do with the power" moment.

I hope we succeed too.

~~~
jorangreef
You are right to start with low-end devices:

Get it running brilliantly on cheap hardware. Don't waste anything. Make the
OS efficient. Do things in the most direct way possible with a minimum of red
tape. Expose the bare metal to Javascript. Put the bare minimum features in
the OS and let open source grow around that.

~~~
jff
Addendum: Don't fall into the Linux trap. Don't start off being "great on old
hardware!" but eventually grow so huge as to need the same specs as modern
Windows (my i7 laptop with 4 GB of RAM runs like crap, thanks Debian). Do
things in a straightforward way, but in such a way that you can expand without
tacking on loads of extra code.

~~~
Evbn
Is Debian your problem, or GNOME?

My phone runs Linux, and it has 512MB RAM and a 1GHz ARM processor.

~~~
jff
It's not GNOME, I haven't run GNOME on a day-to-day basis in over 7 years.
Actually, I think it's probably Firefox that screws me as much as anything
else.

------
mtgx
Mozilla, please don't allow carriers or manufacturers to modify your OS! You
need to set the right tone from the very beginning. Otherwise you'll never get
that kind of power back later on.

Sell it to them as an alternative to Android. That's all they need to know if
they want it or not. If they want more, you can go elsewhere.

~~~
podperson
If it's an alternative to Android that doesn't let Carriers "add value" then
it's an alternative _they won't use_. Open Source, in this case, becomes a
race to the bottom in _every_ respect.

We need carriers to be dumb pipes we buy data plans from; then this entire
class of problem goes away. Until then, any platform that doesn't let carriers
charge us different amounts for bits from different places is going to die on
the vine.

~~~
nathan_long
>> If it's an alternative to Android that doesn't let Carriers "add value"
then it's an alternative they won't use.

Ideally, they shouldn't "use" _any_ phone, because they are not the _user_. We
should buy whatever phone we please somewhere else, with financing if
necessary, and then buy service from the carriers. The whole "subsidizing"
thing is a scam unless you get cheaper service by bringing your own phone, or
after your phone is paid off.

Getting some popular third-party phone vendors in the US and making phone
subsidies a line item in your cell phone bill are the first steps toward
carriers as dumb pipes and towards true choice in phones.

~~~
wtracy
Here's the real problem: The major carriers charge the same rate regardless of
whether you got a free phone from them or not. The phone subsidy doesn't go
away even if you paid $500 out of pocket for a Nexus.

~~~
stcredzero
My solution: I bought a factory unlocked iPhone 4 from Canada on ebay. I run
it with a Straight Talk SIM for $45 a month, no contract, unlimited
everything.

------
akrymski
So it's an OS that requires apps to be written in JavaScript (an interpreted
language that was designed by Netscape for web scripting and nonprofessional
programmers) and HTML (a markup language designed to display static documents
in the browser). None of these technologies were designed to help developers
create software applications, so why is this magical?

Let's look at few possible reasons:

1\. JavaScript/HTML/CSS are better tools for developing software than anything
else out there. No.

2\. It's open source. So is WebOS, Android.

3\. It's more efficient - same software can run on cheaper hardware. No, Java
& Objective C are more processor-efficient. If Firefox OS runs on $100
hardware, than iOS can run on $50. The fact that nobody is making an ulta-
cheap smartphone is because there's little demand for one (it's like making a
shitty Porsche)

4\. Developers can package existing web applications as native mobile
applications. There's already a thing called PhoneGap for that.

5\. More teenagers know JavaScript than any other language

It seems like #5 is the only valid reason. A lot of kids don't know Objective
C or Java, so they must love Firefox OS if they just know the web stack. But
sometimes you've got to ask yourself - why rewrite an OS in a new cool
language? Just because you can? Look how far Apple has come with Obj-C, why
constantly replace the hammer? Having said that, the force of teenagers is not
to be underestimated.

~~~
kibwen
To be clear, the OS is not written in Javascript. It's simply Mozilla's Gecko
platform (the same engine used by Firefox, written in C++ since time
immemorial) running directly on top of Linux. Nothing was rewritten to get
this to work: Gecko was originally designed to be a portable application
platform rather than "just" a layout engine (and it was this concomitant
complexity that led Apple and Chrome to use Webkit (which is just a layout
engine) for their own browsers).

It's literally just a web browser running directly on a smartphone. Any web
apps that you're using right now will Just Work on Fx OS. No rewrites
required.

One last point: it seems intuitive that Java would be more processor-efficient
than Javascript, but SpiderMonkey is waaaaay more mature than Dalvik
(Android's Java VM). I'd like to see some hard performance numbers before
making that call.

------
dhx
Most of the discussion so far has focussed on the development environment
(APIs, languages, etc) and performance issues.

I would therefore like to raise the question “how will Firefox OS encourage a
consistent and usable experience across applications?” Gnome[1], iOS[2] and
Windows have comprehensive human interface guidelines and the systems tend to
be user-friendly as a result.

The latest WHATWG HTML standards do make an attempt to improve user interface
consistency by adding new, specific tags. While this will help to some extent,
I do not think it will solve the underlying problem. Web developers are
accustomed to creating whatever interfaces they like with little regard to
usability considerations including consistency with other websites. Different
colours, typography, borders, page structures, navigation styles, etc between
websites and applications produces a difficult user experience.

[1] <http://developer.gnome.org/hig-book/3.5/>

[2]
[https://developer.apple.com/library/ios/#documentation/usere...](https://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/)

~~~
mbrubeck
UX design guidelines are coming; the designer who is working on them gave a
talk at MozCampEU last week. (Only the slides are available for now, but a
more detailed write-up should be posted soon.)

[https://wiki.mozilla.org/MozCampEU2012/Design-Principles-
beh...](https://wiki.mozilla.org/MozCampEU2012/Design-Principles-behind-the-
Firefox-OS-UX)

~~~
dhx
Thanks for the link to the presentation.

As is the case with other mobile platforms I noticed a wide array of button
styles. Small symbolic buttons in applications such as the photo gallery and
messages screen, large glossy buttons for the radio and calculator, blue
rectangular buttons for the time and date selection screen and a long red
button for cancelling a call. Some applications are dark and 2D, others are
light, colourful and 3D.

I do like a lot of the work shown off in the presentation but still get the
feeling that applications/screens on the phone are not tightly integrated or
connected. This isn't criticism of Firefox OS. Rather it is an observation
that I have for all mobile platforms I have used.

I will look out for the detailed write-up to get the details of what is
planned.

------
lifeisstillgood
Mozilla seem almost apologetic about Firefox OS.

    
    
      "aiming at middle market"
      "performs well on low end hardware"
    

I think this is a mistake in positioning - this is still an expensive piece of
hardware for most of the world (50 USD is not low-end if minimum wage in
Brazil is 322 USD /mth)

Instead this has the potential to be "the best" phone in most emerging markets
- the most desireable OS, because it can appeal to the very same people who
iPhone appealed to - the cool and influential geeks and designers.

Shout from the rooftops guys, its high-end, high-value, cool. Let the network
providers sort out how to put 50 USD worth of hardware into the hands of boys
and girls in the favelas. Just make sure everyone wants one.

And that means not apologetically aiming for the middle market.

Aim higher.

* [http://en.wikipedia.org/wiki/List_of_minimum_wages_by_countr...](http://en.wikipedia.org/wiki/List_of_minimum_wages_by_country)

edit: this was an edit on my other post here, but it is so different in tone
it just was better reposting.

~~~
andrewcooke
it doesn't really work like that. emerging markets have people as rich as rich
americans and they know about, want, and own iphones.

(i live in s america and would love the kind of thing being described. but i
am pretty odd and currently use a dumbphone that cost $20 - i know plenty of
people with fancy phones here.

so i would like what you suggest to work, but in practice i think people would
perceive it as aimed at "second class citizens" - kind of condescending, in a
way. you have to remember that even though people have less money on average
(and higher prices for imported goods) they swim in a similar media context -
can access the same internet sites, see the same aspirational movies, etc)

~~~
lifeisstillgood
I think that getting my cool, trend-leading designer friends is _possible_ \-
apple is not undefeatable. And while google is not very evil, Mozilla is
nearly saint-like in comparison.

So, yes we do all live in the same global media village, but things will
change. It will be harder to knock Apple off top spot in the US or UK because
of the installed base. But the battle for hearts and minds is at the top of
the market - if you dont compare yourself to apple, no one else will.

------
benwerd
Yes. I was introduced to Firefox OS in detail at Mobile 2.0 the other day, and
I instantly fell in love. This is what the world needs: an open platform
designed for the people who don't already have an Internet connection, let
alone an iPhone. If they succeed in their mission, and current partnerships
with telcos like Telefonica suggest that they will, then they could quite
possibly change the world. I'm sold, and completely on board.

------
mhd
He mentions it being a "hackable dream for developers". I wonder if we're ever
going to get something that's hackable by users. Or in other words, bridges
the gap between the common user and the elite app-store backed developer…

With all its sensors and social and personal applications, there seems to be a
high potential for individual customizations and connections, probably more
than what your average PC-of-yore office suite would warrant. Yet there's
nothing like VBScript or (A)Rexx on mobile devices. (Some of you might
remember Apple's NewtonScript, from their superior mobile device they're still
trying to ignore)

Part of that is that it's all in the hand of the people financially
benefitting from it, i.e. us developers. You could easily make a new site/app
that connects social platform A and social platform B. Which is part of why
we've got that huge mess of redundant, barely interoperable cloud ad sellers
and allowance pinchers.

What if teens could trade JavaScripts to do the same? Script their calculator
app to better fit their teacher's views and their curriculum? Connect their
text messaging app with the hip new microblogging platform. Set up little JS
"cron jobs" whenever they enter a certain WLAN range (or GPS quadrant)…

Apart from security issues there's little technological reason to prevent
this. But it seems all over the place we've moved away from interoperation.
From what I see, end-user scripting is pretty low. Nobody's talking about
document-centric desktops anymore (ah, OS/2, how I miss thee). It's all about
apps and services, maximum hype, maximum profit.

~~~
maxerickson
Scripting layer for Android if fairly close to what you are talking about:

<http://code.google.com/p/android-scripting/>

It does not seem to be explosively popular. But it has to be sought out and
installed and all that stuff, so who knows.

~~~
mhd
Well, this allows scripting languages to access the Android runtime APIs,
something I'm picturing would require the _applications_ themselves to be
scriptable. This would require some integrated hooks, like Apple's AppleEvents
or Microsoft's COM.

Or just a standard class interface, if you're scripting in the main
application development language, which is why this would be an easy fit for a
JavaScript-based system.

------
pmelendez
This is actually a question for you guys... I realized that this can be very
revolutionary for us as developers (making our lives way easier).

What I can't see is how this would "going to change everything" from an user
perspective. I only can see this as increasing the amount of apps in stores
very quickly. But stores already feel very dense with numbers like 500k apps.

Can anyone tell me what I am missing? because I can't see this changing
everything.

------
kayoone
"Just let that sink in for a moment — it's a mobile OS powered by JavaScript!"

Scary thought ;)

~~~
cincinnatus
Web standards apps will always have to make bad compromises. We need browser
byte code.

~~~
mtrimpe
JavaScript _is_ browser byte code. Just like Java byte code it's not that
great for a lot of cases but, just like Java, eventually the JIT will get
pretty decent.

~~~
adestefan
The JIT in the JVM is not for Java, but for Java bytecode. That, along with
the easy integration into existing Java classes, is what makes the JVM such an
attractive target for things like Scala, Jython, and Clojure.

~~~
mtrimpe
Java bytecode is pretty close to Java "the language." You can try decompiling
some Java classes and see how close to the original you end up getting.

Because of that it's also a pretty awful assembly target, something which is
only now being addressed with things like invokedynamic, finally moving Java
byte code beyond Java 'the language.'

------
polshaw
>There are a few _intense games, like Biolab Disaster_ , that perform
stunningly on even the £50 low-end device that I'm testing on — we're talking
between 40 and 60FPS.

.

You have to be kidding me, my amiga 500 (released 1987, 7mhz) offers similar
games to that (but better graphics). That puts it literally 20 years behind
modern smartphones today, where the cutting edge games are in a similar
position vs xbox 360 games.

.

Firefox OS clearly isn't going to appeal to anyone looking for gaming on
release-- However, i do _not_ want to shit on it, unlike many..

I think it is a _great_ idea, could do wonders for openness as well as the
advancement of web technologies, and the web as a platform. I can certainly
see FFOS devices becoming a standard smartphone for 'regular folks'.. web
browsing and the kind of things that web-apps could easily do; media playback,
calendar and clock apps.. i'm sure this covers 80% of all smartphone apps
today anyway. As time goes on and performance (and web features) continues to
increase, with 3/4 smartphone platforms (plus 3/4 more 'desktop' platforms),
the appeal of developing once for all platforms is going to become an
overwhelming advantage.

It is very different to webOS, which suffered from limited, expensive devices,
constricting user base, which failed to inspire developers. Is it the most
computationally efficient way of doing most things? no. Does it offer other
advantages that could offset this? absolutely.

~~~
robhawkes
Thanks for the comment, I appreciate it.

If you start comparing these mobile HTML5 games with any device or platform
that was originally build to run games well then you'll always see issues –
though we are working on improving that. Games on the Web are probabably never
going to be quite the same, and nor should they be.

Still, things are improving each and every day and I think that's the most
important thing here. We know things aren't perfect and we also know that
we're no where near the limit of performance yet.

I'm really excited to see what those advantages you mention turn into in the
future. There is a lot of potential here, way beyond performance and how
things compare to other devices.

------
ink_
The mozilla project has really pulled it's socks up of late, some of the stuff
from the labs: _Very awesome_ Shumway - <https://github.com/mozilla/shumway>
_Very awesome_ PDF.js - <https://mozillalabs.com/en-US/pdfjs/> IHeartCode -
<https://mozillalabs.com/en-US/iheartcode/> Prospector Experiments -
<https://mozillalabs.com/en-US/prospector/> Gladius -
<https://mozillalabs.com/en-US/gladius/> EntropyWave -
<https://mozillalabs.com/en-US/entropywave/>

And by all accounts FF itself has had some serious work done to sort close the
performance gap between it and Chrome.

I love Chrome, it's a top notch browsers, only the omnibox (addressbar) seems
be deliberately designed to inflict pain and suffering on the user. You could
be forgiven for thinking that it's been deliberatly in some kind of bizarre
social experiment. Does anybody here prefer it to the Firefox Awesomebar?

I'm seriously considering switching back to FF. God.

------
gnuvince
Can we please stop putting JavaScript everywhere? It's not a good language and
people have a tendency to produce frailer code with it than they would
otherwise.

~~~
JackC
This kind of request strikes me as kind of similar to the movements to
standardize English spelling. There are groups out there who, for at least a
hundred years, have been saying "can we please stop spelling the same sounds
in five different ways? It's not a good approach to language and people waste
a lot of time that they wouldn't otherwise." It's true, but at the same time,
there are reasons they're not making any progress.

JavaScript shows up in new places because everyone already knows it, because
it's relatively easy to write a JS app and deploy it to every single platform,
because anyone who wants to learn it can probably jump into a REPL from
Facebook by hitting cmd-shift-J, because there's a huge amount of code already
written in it, because there's intense competitive pressure to optimize the
interpreters, etc. etc. etc. The same kind of reasons that English is hard to
replace. If you want to improve the situation, you can't just point out the
flaws, you have to offer a smooth transition from here to a better language.

But actually, that's already happening. JS is actively, incrementally
improving. (As one random snapshot: <https://brendaneich.com/2011/05/my-
jsconf-us-presentation/>) So the answer is, no, we cannot stop putting it
everywhere. That is not going to happen. But we can make it better.

------
naitbit
Are web technologies on the phone really the best way to empower users? Sure
Firefox and Linux are open source(and I love them for that), but what about
online apps? User does not have any control over the web page. If web page
changes or disappears he can do nothing(and it can happen with no warning).
Storing local copy of webpage may not be possible(because huge part of app may
be on server side). Even proprietary desktop apps are better[1] because they
do not change on each startup and you could always try to reverse engineer
them. Web app also can store user data on server giving him no way to recover
and it gives more spoofing opportunities. Sure we can try to teach users about
to choose open source web pages, or pages that can work in offline mode, but
unfortunately most web pages does not fit these categories.

I'm impressed by what Firefox OS managed to achieve using web technologies,
but I posted this as a warning that users may chain themselves to some
proprietary webapp even stronger than to native one. Hopefully Firefox Os will
force more webapps to provide offline mode.

[1] Of course DRM tries to take away this advantage from desktop apps.

------
zobzu
I think the only major advantage of Firefox OS is that it helps you run full
HTML5 apps.

The apps are cached, auto-updated, and easy to code. They run on the phone and
on the desktop alike. That's it. The only OS that really compares, is actually
Chrome OS, except Chrome OS has not been ported or made to run on phone
hardware.

If it's not fast enough, it will not work. If it is, it has a small chance of
making a difference.

~~~
robhawkes
Let's just hope that it's fast enough then!

To be fair, I think there is much more too it than just HTML5 apps. Think
beyond the single mobile phone device… it's more about how concepts will
change if many different types of devices run apps and can communicate via the
same languages (JavaScript, for example).

The other advantage is that it's free, and open for others to take and turn
into whatever they want it to be. That's kinda cool.

------
posabsolute
Yea well there is something not magical about it too which is normal users do
not care what you write your apps in.

We already have 3 good options for OS, We have the cool iOS, the ios copy,
android, and the alternative from microsoft.

What we have here is a glorified Android that you can write apps in js, yay,
100 bucks it will never take off.

------
needle0
I saw a talk on FxOS (then B2G) earlier this year, and asked a question about
how FxOS will handle native SDKs, considering practically every single mobile
OS that used VMs to run apps had eventually capitulated and provided native
SDKs for speed and codebase compatibility. The Mozilla guy who responded was
very adamant on keeping HTML/CSS/JS the one and only dev environment for the
OS.

Perhaps JS optimization has come far enough that speed is not a problem, but
how is FxOS going to handle codebase compatibility for bringing large
preexisting native-code projects (eg. games) into it? Compiling the entirety
of Unreal Engine 3 in Emscripten, for instance, seems a bit far-fetched.

------
hermanhermitage
Terrific stuff.

I still think there is a use case for a static C like language (with explicit
memory management) for some kernels.

The same way that WebGL has HLSL, it would be nice if there was a WebCPU API
with C as the 'shader' language.

(Alternative is LLJS approach - but that has other issues).

~~~
udp
I couldn't agree more. It's all good being purist JavaScript for most
applications, but having some kind of native code support is really important
when it comes to things like games.

------
Robby2012
I'm really in love with Boot2Gecko, it's the future

------
kgabis
This looks like a terrible idea for a mobile OS, where every cycle should
count. What about battery life? I think that for now, and foreseeable future,
the only reasonable choice for mobile devices are native code based apps and
system.

~~~
robhawkes
Battery life is very, very good. I can leave this thing on for days and it's
still running. Now obviously that's not running too much in the background but
there is no reason why a JavaScript phone would have a detrimental effect on
battery life.

You should try it out sometime, it's really not 'terrible' when you get hands
on. But your opinion is one I see a lot and we're hoping to change it in the
future, slowly ;)

~~~
newman314
Have you made any actual power measurements using say powertop etc?

webOS can be left on for days and days _IF_ you turn all the radios off,
underclock, undervolt...

Given that most smartphones last for at most a day with actual usage (not
sitting there in sleep mode), I would like to see more quantification as to
what the usage pattern is that enables you to leave it for days and days.

~~~
robhawkes
The short answer is no, I haven't used anything scientific to measure this…
just my eyes.

I'll make sure that we release test results as they are performed, probably on
the Mozilla Hacks blog or likewise.

------
se85
Javascript performing well on mobile is NOT magic, its just good engineering.

The big problem I see with Firefox OS is that it is not going to take much to
make the entire "App Store" full of app's that perform horribly, and in return
that will make Firefox OS look bad as a result.

Abstracting away all the complexities of making JavaScript/HTML/CSS perform
well on mobile into a set of API's that anyone can use regardless of skill
doesn't seem feasible to me but I could be wrong and If they have actually
pulled this off, great! But it's still not magic.

------
confluence
I hope Firefox pulls this off - native app programming is a complete pain in
the ass (especially with multiple platforms). You'd have thought us
programmers would've figured this out years ago - seeing as all languages are
turing complete and in turn should all run everywhere, all the time, at
equivalent speeds (it's all assembly/machine code in the end).

Can anyone try out:

<http://anirudhjoshi.github.com/fluid_table_tennis/> on the Firefox OS and
tell me its performance?

------
rsync
I want this, but for UNIX.

I want a standalone operating system that runs on android hardware that gives
me low level access, via unix commands and stdio, to phone functions.

So I don't want the javascript dialer, I want /usr/bin/dialer ... I don't want
the javascript sms client, I want to run:

/usr/bin/sms --retries=4 --number 800-555-1212 > Hi Joe, I can't make it to
the meeting^D ... sent.

So yeah. This article reminded me how much I want something very much like
ffox OS, but for unix core principles, like stdio, and not for open web apps
(nice as they are).

------
wprater
Sounds a lot like webOS; huge amounts of potential, only to be plagued by
'being ahead of the game'. Probably still 5 years out, sadly. I really like
the idea of a JavaScript OS.

Why was webOS not mentioned in the article? They have a very nice linux stack,
telephony, and radio interfaces as well. Not to mention it's been open sourced
(both OS and framework)

<https://github.com/openwebos> <http://enyojs.com>

------
ilaksh
Can you Mozilla guys focus on making it so that HTML5 apps can install from
web pages with an Install button and then show up on the home screen like a
normal app? Please. So that HTML5 developers don't have to rely on people
creating bookmarks or typing web addresses and can give users a similar
experience as native.

~~~
fzzzy
This already works.

~~~
ilaksh
How do you do it? And on Android as well as iOS? And its the same installation
and launch process?

That wasn't working last I checked.

~~~
fzzzy
Sorry, I should have said that this already works on Firefox OS. It may also
work on Firefox for Android, but Apple would have to add support for Open Web
Apps to Safari on iOS for it to work there (and the same with Google and the
standard Android browser or Chrome)

[https://developer.mozilla.org/en-
US/docs/Apps/Getting_Starte...](https://developer.mozilla.org/en-
US/docs/Apps/Getting_Started)

It's being proposed as a standard, so hopefully Apple and Google adopt the
API, but these things take time and politics.

------
j_col
Giving how shockingly similar Firefox OS is to webOS (now also open source), I
would have much rather that they support that OS instead of reinventing the
wheel.

Some strange strategic decisions coming out of Mozilla inc. these days, I
would much rather see them focus on their browser instead (and Thunderbird!).

~~~
nnethercote
Yes, it's a shame Mozilla has completely halted desktop Firefox development in
order to develop Firefox OS instead.

(Wait, what's that? A company/community can work on more than one thing at a
time?)

~~~
j_col
> (Wait, what's that? A company/community can work on more than one thing at a
> time?)

But that's the whole point: they're not, at least not in the case of
Thunderbird. Firefox OS clearly has a higher priority for them than
Thunderbird.

~~~
mike-cardwell
As far as "total users", Firefox OS has the potential to overtake Thunderbird
in a matter of weeks after launch.

I use Thunderbird and have done for many years. I would like to see them
continue developing it. But Firefox OS is much, much more important. The World
needs a free alternative to Android based on open standards.

~~~
j_col
The World already has it: <http://www.openwebosproject.org/>

~~~
mike-cardwell
WebOS had its chance and failed. Firefox OS has a much better chance of
succeeding, simply because it's backed by Mozilla.

------
rglover
Really excited to play with this. Also excited to see the people working on it
are really geeked. It's going to get really interesting as a web developer
over the next couple of years. If you can use HTML, CSS, and JavaScript to
manipulate an OS, then wow. Can't wait to see where this goes.

------
Apocryphon
A really minor point- why is it that the phone icon nowadays has defaulted to
a handset turned to that angle, with green as the color? That looks similar to
the phone icon in some of the Samsung phones that look more like iOS.

Is green and at 2 o'clock simply how we think of calling someone now?

~~~
jere
I came to post this. Seriously, why is this necessary? Are they trying to
provoke a lawsuit?

I get that green is usually associated with starting a call and red ending a
call, but why? Why not blue or purple or orange or yellow or black?

Good point on the angle. But why even use the same handset icon? You could use
a candlestick phone, a wall phone, a rotary phone.... for fuck's sake, you
could use an icon representing the phone itself.

------
timparker
I just wish Firefox wasn't coping iOS. Slide open, 4 x 4 grid with a dock,
swipe between panes. It's just sad that companies think this is the 'standard'
for any phone os and stick to it. Metro gets some respect from me for taking a
fresh approach, this, unfortunately doesn't.

~~~
bryanlarsen
Why don't you criticize Toyota for using a circular steering wheel and similar
feeling clutches, brake pedals and gas padels while you're at it?

Slide open: given a large touch screen, what's the easiest interaction that
has a low likelihood of being accidental?

panes: there are basically two possible metaphors that work well: paged or
infinite scrolling. Is it copying if random chance would have a 50% chance of
choosing the same answer?

swipe between panes: given a paged screen, what gesture but the same one used
for turning pages in a book makes any sense at all?

4x4 grid: given a 3-4" screen and given an icon the size of a human thumb, how
many icons fit?

dock: given a paged, gridded metaphor and a need to have the most commonly
used functions always available, does anything make any sense but to keep a
set of icons pinned and visually distinct? Sure, they could have moved them to
the top or to the side or to the middle or something, but that's just change
for the sake of change.

------
macavity23
It's an interesting project, and I'm all for competition, but honestly I don't
see the value proposition for an OEM to put this on a phone instead of
Android. Rendering JavaScript faster is great, but does that really outweigh
all the benefits of the Android ecosystem?

~~~
scriptproof
"Android has a cost" (Steve Ballmer). And it could increase (Apple)...

~~~
pjmlp
Who assures you that this JavaScript OS is safe from litigation?

------
chj
Is there any bridge between JS and native code?

Yes, I know it is hard to support development and debugging of a hybrid of
script and native code, but regarding battery life and computation intensive
apps, JS is not an option. Unless this OS is for really low end phones.

~~~
ralfn
You seem to assume an existential difference between "native" and "not-native"
that does not actually exist.

Is Objective C native? Not yet. Is the ARM executable native? Yes. Is
javascript native? No. Is the executable code generated by the jit native?
Yes.

------
colig
I enjoyed reading this. I mostly know Java and not so much Javascript, but
there's something delightful in the idea the writer lays out. As much as I
like Android, it isn't really 'hackable' by the average user, and Firefox OS
seems capable for that.

------
the_expert
Can it run in a virtual machine? Some folks might not want to give up their
current super fast and reliable OS for one that runs only one complex, often
insecure and sometimes error-prone application. In a VM I think this could be
very useful.

------
anuraj
Yes. Probably the only platform that will run HTML5 apps proper. Web
developers should wholheartedly lap it up. But the issue is - consumer
adoption.

------
antidaily
Looks pretty but painfully slow in that demo video.

~~~
robhawkes
We have plenty of challenges to overcome but it's nothing that can't be fixed.
We're fully aware of some of the frame-rate issues on the _really_ low-end
devices (like in the video) and are actively working on improving that (it's a
main priority to get 60FPS).

~~~
coffeeaddicted
_Constant_ framerate is the thing that matters most to games. 60 fps or just
30 fps doesn't matter as much as that it's constant. You can even play a racer
for example at 15 fps, but you fly out the curve the moment a 60 FPS game has
a 250ms freeze at the wrong moment.

Just mentioning this as it's something a lot of people not doing games are
missing (and maybe one of the main reasons why c/c++ still are dominant in
game programming - I mean what's the point of coding in Java when the only way
to get a constant FPS is to work throughout with static variables for
example?). So if you want games - makes sure you have realtime guarantees.

~~~
robhawkes
Yup, you're completely right… it's the constant frame-rate of a game that's
important. And even if it's not truly 'constant', it should always stay above
30FPS. You probably shouldn't code a game to be tied to the frame-rate though.

This is exactly what my job is at the moment, testing games and monitoring FPS
across these games on various devices and platforms. I'm confident that
JavaScript is more than capable to have games running fast on mobile, we just
need to work with the game developers more (to optimise) as well as improve
the platform.

~~~
coffeeaddicted
Hm, yeah - my point is that FPS isn't as important as the longest frame. You
can have 100 FPS when 99 of them are really fast while the last one is stuck
for nearly a second :-) Or said otherwise - for a game measuring average over
a second is already a too long time-frame. It's nice as a simple feedback
number for users, but it's not sufficient for smooth gameplay.

------
repoman
This is another attempt to solve the glory cloud os? another browser-based OS?
stop making the whole world dancing. It's a lame concept.

------
carloslopes
Rob, could you put on the article which devices we already can build the OS?

I want to buy one but i don't know what is already supported :)

~~~
abrowne
Take a look at the list here: [https://developer.mozilla.org/en-
US/docs/Mozilla/Boot_to_Gec...](https://developer.mozilla.org/en-
US/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites)

------
dmpk2k
What's the £50 device? I'm not going to buy a Galaxy variant to play with
Firefox OS, but £50 is a different story.

~~~
robhawkes
It's a ZTE Kis. You can't use it yet because it's a development version but
we're working on getting devices available to developers before we launch
properly.

The Kis is merely a test device for now.

~~~
dochtman
I really want a cheap test device so I can start hacking on B2G. Sure, I guess
I could get a second-hand SGS2, but those are still pretty expensive to use a
test device.

------
peterwwillis
_Firefox OS is the start of something huge. It's a revolution in waiting. A
breath of fresh air. A culmination of bleeding-edge technology. It's magical
and it's going to change everything._

I'm glad you didn't use any hyperbole.

 _it's a mobile OS powered by JavaScript!_

And you thought a Java-powered operating system was crappy...

 _So you might be thinking, "This sounds great, but why use JavaScript to
build a phone?" And you'd be right, that's a really important question to ask.
The good news is that there are plenty of reasons why this is a good idea,
besides making Web developers weak at the knees._

I'm pretty sure this is the _only_ reason to do this. Nobody but web
developers are going to give a shit. Grandma doesn't care what OS her iPad
runs on. It just needs to work really well. I am wondering how you're going to
get real-time priority on threads for the phone app over your slow HTML5 game
threads if they're run by the same interpreted scripting engine.

 _Why the huge performance improvements over browsers in Android on identical
devices? It's because of the lack of stuff going on between Gecko and the
hardware, meaning things like JavaScript can run at full pelt. So much for
JavaScript being slow!_

What lack of stuff ? What's going on in this "JavaScript OS" that is different
than in a Java OS? What calls are not happening? What memory is not being
allocated? What graphics are not being displayed? What the hell are you
talking about?

 _What Firefox OS aims to do here is to use the native everywhere-ness of the
Web to provide a platform that allows applications to be enjoyed on a mobile
device, a desktop computer, a tablet, or anywhere else that has access to a
browser. Wouldn't you want to be able to pick up your Angry Birds game on the
desktop where where you left it on your phone? I certainly would!_

I think you actually missed the point of the quote right before that
paragraph. It's an incredibly powerful idea to make a mobile platform that's
as free-to-use as a web browser. A security nightmare, yes. A competing-open-
product-that-implements-unsupported-features nightmare, yes. But it could
change things, for better or worse.

 _Because Firefox OS is constructed using HTML, JavaScript and CSS it means
you only need basic Web development skills to reach in and completely change
the device experience. You could literally change one line of CSS and
completely change the way the icons on the homescreen look, or re-write some
core JavaScript files that handle phone-calls._

I could have sworn I heard of something like this before... Web Oh Ess or
something?

Has the whole world gone nuts? What the hell was wrong with just having a web
browser and native apps side by side? You could use your web apps for a
universal free experience, and for apps which need a lot of performance _like
games_ you would write a fast, minimal native app. Now we're reinventing a
reinvention of the wheel, poorly.

Have you people even used S60? That shit was easily skinnable, had tons of
developer resources, a free marketplace (once you signed your app), it was
fast, stable, cheap. Now it's dead of course (thanks Android) and all we have
to fill the space is bloated incompatible buggy crap.

------
Fando
Cool, well done Mozilla! Is this similar to WebOS?

------
anil_mamede
Looks nice but it's not fluid.

~~~
robhawkes
It will be, we're actively working on performance now. We have no reasons to
believe that we can't get it 'fluid'.

------
drivebyacct2
I wish they would add softkey support and toro support for the Galaxy Nexus.
I'd love to try a build out.

~~~
CrazedGeek
Are you sure it doesn't already work? The build prerequisites page[1] makes it
sound like all variants should work. I've run it on maguro, but it's
definitely the most well-supported of the variants. The lack of softkeys made
it astoundingly painful; I ended up using a USB OTG keyboard just to navigate.

[1] [https://developer.mozilla.org/en-
US/docs/Mozilla/Boot_to_Gec...](https://developer.mozilla.org/en-
US/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites)

------
goggles99
The magic is that it will disappear before ever gaining any kind of
recognition or prominence. Why would I choose this over the Open Sourced
WebOS?

