Live data from Hacker News

The Promise of Firefox OS

sergimansilla.com

21–30 of 147 posts

Re: The Promise of Firefox OS

#21

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, 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 Coff…

How does this differ from debugging any other VM? Except in Javascript you're almost guaranteed your 'crash' will come as an exception with a stack trace – guaranteeably raised by the only executing single thread that could contribute state to the crash.

Debugging a Java or a C crash is infinitely worse, since instead of comparatively pretty symbols and a verifiably correct trace, you have a vector of bytes where your stack is supposed to be, and any number of threads running third party libs that could have written all over your frame pointers, and instead of semi-structured code you have a few thousand flattened basic blocks, devoid of any type information, absolutely swamped in gotos and boilerplate prologues/epilogues.

I'd much rather debug a JS exception than the subtle mental math required to statically analyse the stack operations of some assembly.

Re: The Promise of Firefox OS

#22

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, 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 Coff…

How does this differ from debugging any other VM? Except in Javascript you're almost guaranteed your 'crash' will come as an exception with a stack trace – guaranteeably raised by the only executing single thread that could contribute state to the crash. Debugging a Java or a C crash is infinitely worse, since instead of comparatively pretty symbols and a verifiably correct trace, you have a vector of bytes where you…

To be pedantic - you can't put Java and C crashes together unless you mean JVM crash. If I dare say - Java stack trace information is much better than JS stack traces.

Re: The Promise of Firefox OS

#23
So... it's 2013, and I'm sitting here with my blazingly fast nexus 4, and the web sites I visit are... slow. terrible. broken. spammy.

Half of them have 'popups' that try to banner at the bottom of the screen, but end up flailing wilding and either taking up the entire screen, or just helpfully sitting exactly over the middle of the page. A lot of them try repeatedly to direct me to a specific page, or a native app when ever I flick between pages.

The links are tiny and impossible to click on without zooming in.

It's just a terrible, terrible experience.

How do we get from this broken UX experience story of right now, into the magical compelling 'mobile web app' future that OP talks about?

I just don't see a roadmap for it. :(

Re: The Promise of Firefox OS

#24

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, 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 Coff…

Exactly! I think the .NET or Java approach is the good one. Low level bytecode, multiple languages.

Re: The Promise of Firefox OS

#25
post #22

Earlier quoted context omitted.

How does this differ from debugging any other VM? Except in Javascript you're almost guaranteed your 'crash' will come as an exception with a stack trace – guaranteeably raised by the only executing single thread that could contribute state to the crash. Debugging a Java or a C crash is infinitely worse, since instead of comparatively pretty symbols and a verifiably correct trace, you have a vector of bytes where you…

To be pedantic - you can't put Java and C crashes together unless you mean JVM crash. If I dare say - Java stack trace information is much better than JS stack traces.

Sorry, I'm conflating my own crash experiences. :) You're totally right, a JVM and a JSVM can crash in horrendous ways, but 99% of the time you'll get a nice stack trace.

Re: The Promise of Firefox OS

#26

Good article. The main reason for FFOS is not to take over the world but rather disrupt the closed ecosystems that Google, Apple and Microsoft are creating; the same way that Firefox broke Microsofts monopoly on the browser market.

Except Android is no more or less closed than Firefox OS. Both open source, allow sideloading and have curated app stores.

Android itself isn't, but the ecosystem that they're building is. The market is controlled by Google and the apps will only run on Android phones. Not the OS is important, the ecosystem is. That's why Apple and Google and everyone are trying to keep everyone inside.

Re: The Promise of Firefox OS

#27

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, 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 Coff…

"How about we work on platforms that support more that one language as first class citizens. Is that really such a crazy idea in 2013?"

That was the nice things about the BBC Micro computer, you could code in Assembly and BASIC right out of the box. Since then the trend has been towards ever higher layers of abstraction. Even in python you sometimes still get indecipherable OS level error messages, but most of the time the tools work well.

It would be nice to have other languages in the browser, but at this point it seems as likely as python built into the processor. At least something compiled to JavaScript is unlikely to be any less secure than JavaScript on its own.

Re: The Promise of Firefox OS

#28
post #20

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, 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 Coff…

Ok so is the solution a standard bytecode for browsers ? Or is is NaCl ? Or PNaCl ? Or something like Hypercard ? Or do we tear down the monoliths that browsers are in small Unix-style components ?

JavaScript is the standard bytecode.

Re: The Promise of Firefox OS

#29

Glad to see this coming out - I think the technical chutzpah of FirefoxOS is fantastic, now let's see Mozilla Market it in the same clear vision and spirit. I mean I simply did not know there was an emulator ( https://hacks.mozilla.org/2012/12/firefox-os-simulator-1-0-i... ) until this post, and honestly I looked. Edit: oh and can someone tell me if persona is taking off or not - are there stats from login.persona.or…

Hi lifeisstillgood, I am one of the core Persona developers. Persona is a pretty awesome project with very ambitious goals. We obviously want to see growth explode and are working hard to make Persona great for both users and site operators. Persona's growth has been steady, primarily driven by newly developed sites. We hope that as the user base grows and support for the BrowserID protocol is natively built into the…

Thank you - I have just joined the group.

I agree - Persona is an awesome project - and I like anything that is going to take the pain of managing passwords away from me.

I am most interested in python / wsgi integration - if any of your collegues are working on this I will be very happy to contribute.

Re: The Promise of Firefox OS

#30

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, 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 Coff…

How does this differ from debugging any other VM? Except in Javascript you're almost guaranteed your 'crash' will come as an exception with a stack trace – guaranteeably raised by the only executing single thread that could contribute state to the crash. Debugging a Java or a C crash is infinitely worse, since instead of comparatively pretty symbols and a verifiably correct trace, you have a vector of bytes where you…

>Debugging a Java or a C crash in infinitely worse, since instead of comparatively pretty symbols and a verifiably correct stack trace, you have a vector of bytes where your stack is supposed to be, and any number of threads running third party libs that could have written all over your frame pointers

My experience of crashes in C is that the OS typically provides a decent backtrace including function names, not just a 'vector of bytes'. Your millage may vary, I expect it depends what kind of C you are writing on what platform, if you strip symbols etc. Sure your memory could get totally trashed beyond recognition but that has not been very common in my experience. I'd like to point out that I was not advocating writing C. I've not used Java but I always assumed it gave you decent stack traces.

>instead of semi-structured code you have a few thousand flattened basic blocks, devoid of any type information, absolutely swamped in gotos and boilerplate prologues/epilogues.

I've honestly no idea what you are talking about here. Java code swamped in gotos?

>I for one would much rather debug an exception in JS than the mental math required in statically analysing the stack operations done by a chunk of assembly.

If I'm writing Python I want a Python exception. If I'm writing Ruby I want a Ruby exception. Not an exception from JS code that I did not write. I have no idea what 'mental math' has got to do with this.

Post reply on HN