Introducing node-firefox
hacks.mozilla.org
hacks.mozilla.org
Reading the name of this project got my hopes up, thinking I was going to have the option of using Firefox instead of Webkit as my rendering engine. Oh well.
Only if it followed exactly the same naming logic down to a t.
But it didn't have to, node-firefox would also be a perfectly apt name for something like node-webkit based on gecko too -- and not suitable at all for what it actually is now.
You are right though, I also expected to see a similar project to NW.js but coming from Mozilla. Another shot at packaging offline web apps would have been interesting, especially since I don't know of good alternatives to NW.js.
As things stand, it's difficult to get excited about anything FirefoxOS since it has such a small number of users.
I was thinking I'd like to try and get my web app in Steam but don't really want to mess around with building Chromium ect ect.
Edit: just read this and I think it answered my questions. http://strongloop.com/strongblog/creating-desktop-applicatio...
The reason I really want something like node-firefox is the build process for firefox is so much easier than webkit, and if I make a desktop app that I want people to be able to build from source node-webkit is such a huge beast to compile. I'm basically stuck with the binary versions, which is not the way to go for software that does crypto.
Does anyone know how hard it would be to make a real node-firefox (as in, FF version of node-webkit)? Why is chrome the go-to for all the web-app-as-desktop-app frameworks?
If you wanted node-gecko you'd either need to fuse V8 to gecko or reimplement or create a wrapper around spidermonkey emulating the V8 API. That's a lot of work.
This might be some sort of bias on my part but I seem to see this more and more often. Programmers are known to be bad at naming but these days it seems they don't even try. How about just following a simple rule: pick a word that doesn't exist in the dictionary or on the web at all. Just make up a combination of letters. Please.
Still want something like that though.
This is sort of a "lazy web" request, but does anyone know why node.js needs v8 specifically? Would it really be that hard to support node.js on spidermonkey?
I believe it fizzled out partly due to lack of contributor time and partly because the mainstream Node maintainers were wary of fragmenting the Node.js ecosystem/community.
AFAIK, though, V8 is so tightly integrated into Node core that a third-party library, NaN ("Native Abstractions for Node.js"), was created to improve API compatibility for Node binary addons:
I love the concept and philosophy of Firefox OS, but none of that matters if its too slow to use.
If performance is actually acceptable on these devices, then what tricks are they using to make it faster than on higher end android devices?
I am no expert, but the FirefoxOS stack is really lean and simple compared to the Android stack. Some would say that Android is an huge undocumented bloat with all the layers added during its lifetime (just check the AOSP build system to understand this opinion).
As I see it, FirefoxOS, by being ten years younger and less used, is doing million things less than Android (from the system point of view), and that's how things can get reasonably fast and responsive (that, and the blazing fast SpiderMonkey vm).
On low end devices fxos runs reasonably well but with noticeable lag, we have put in huge amounts of effort on the low end to make that possible. On high end devices the 'native' fxos application are incredibly snappy and there has been very little done to improve performance on high end devices.
Most of the stuff we have done is common sense, some you will see a lot of people doing, some almost no people do.
1. Shorten the path to rendering first screen, dont block on reading some data, load all scripts async etc.
2. Never animate top / left, use CSS transitions for everything.
3. We use 'will-change' to ensure that the graphics are properly layered for when they do animate (https://developer.mozilla.org/en-US/docs/Web/CSS/will-change)
4. Offline assets, in fxos we use packaged apps for various reasons, however one of the benefits is that reading from the filesystem is faster than reading over the network.
If I had one performance tip for web developers, look into how far you can use appcache to store resources offline (or if your feeling fancy, service workers). Offline capable web apps have a night and day difference.
Maybe this question isn't specific to firefox OS, but... what is the benefit of using appcache -- doesn't the browser already cache assets that it has loaded?
I mean try it against 2 fairly comparable static sites - http://backbonejs.org/ + http://pouchdb.com/, keep on refreshing them, that case is gonna give you the highest cache hit rate you can get and its still noticeable.
The OS feels snappy, comparable to Android on a decent device. Applications vary and obviously you won't run most of the things you run on Android anyway - they just don't exist. Some things are still rough atm, but there seems to be a very recent announcement [1] about upcoming and freshly landed improvements similar to Project Butter on Android.
The performance feels really good enough in the 2.2 builds I'm running.
That said: The _general_ user experience isn't there yet. I carry the Flame with me most of the time, but I won't replace my 'Android for mails and IM' less-then-smart-phone setup just yet. Keyboard, copy&paste, basic applications like a mail client - all of that still requires quite some compromises.
I want to ditch Android for FxOS, but so far the drop in productivity isn't worth it. For me.
When I first purchased the Keon, running FirefoxOS v1.1 (I think, it was a very early version anyway), the experiment only lasted a couple of months before I returned to Android. The phone crashed a lot. Subsequently, I've upgraded for FFOS v2.1 on the Keon and it's a much, much nicer experience. Everything feels smoother and the phone/applications crash very infrequently.
A few months ago I decided I wanted a big fat screen, so purchased the Geeksphone Revolution. In all honesty, I'm running Cyanogenmod 11 on it, and waiting for Geeksphone to make a FFOS v2.x available, as there's no way I'm going to run v1.3 again.
Even with the 2.x versions of FirefoxOS, I'm still held back by lack of SIP client. I know there are some WebRTC apps, but as far as I know none of these allow calls to landlines or mobile phones. With CM11, I have it set to ask me every time I make a phone call whether I want to use the mobile network or the Internet (WiFi or mobile data, depending on how I'm connected). I make a lot of overseas phone calls for business and personally. I only have a cheap pay-as-you-go calling plan in the country I'm living in at the moment, because I don't know how long I will be here and I didn't want to be locked into a 24 month contract. I don't even need a dedicated SIP app with CM11 on the Revolution. Simply enter my SIP account details in the Settings and I'm prompted each call I make. I make cheap calls, over data networks, very easily.
I also use Telegram for 90% of my messaging requirements. It's reached the point now where I'm quite annoyed replying to an SMS, as it costs me money!
When FirefoxOS supports SIP calling, or there's a WebRTC client which allows me to call actual telephone numbers, then I'm ready to switch permanently. The FFOS user experience is really quite good. I'm not a big app user - email, Telegram, OSMaps and a few GPS tracking apps is about all. FirefoxOS is just missing that one killer feature for me.
Firefox with Servo looks fantastic, though, and from their roadmap it seems Servo will be coming to mobile first, this year. I'm really hoping for a multi-process highly parallel completely rewritten in Rust Firefox within the next two years.
This is brilliant.
https://marketplace.firefox.com/app/ns-times?src=search
https://github.com/gitaarik/nsapp
As it's just a webapp and it doesn't use any phone specific API's you can also run it in any browser. Here I just hosted is as a website so you can try it out if you don't have a Firefox OS phone:
http://nsapp.televisionsmostpopularartinstructors.com/
Of course it's meant for phones so the design doesn't really work out for desktop browsers, but you get the idea.
For instance, I built Reeddit [1] for The Web, and with just a couple of config files here and icons there, it's on the Firefox Marketplace [2].
Now, a "stricter" FFOS App would be one that uses FFOS' APIs for more specific stuff, I guess.
[1] http://reedditapp.com [2] https://marketplace.firefox.com/app/reeddit
As far as I understand, Servo will come with a WebKit embedding API, so the possibilities are pretty much endless.
And that doesn't help that the people who started node-spidermonkey left Mozilla and afaik can't contribute to open source projects that are not explicitly vetted by their current employer.
I realize you have to start somewhere, but for a foundation which claims to value freedom first, it seems like first targeting a fully open platform like Linux with a cross-platform toolkit like Gtk or Qt would make more sense.
TLDR: Not going to spend $1000+ to get a new machine which runs a lesser free Unix just to run Mozilla-tools.