Famo.us: do we really need another Javascript framework?
inspire.nlI think another question following from this, that web developers should be asking themselves more, is "do we really always need a Javascript framework?" I know that "web applications" are all the rage right now, and there's this very very strong dependence on Javascript, but for a lot of purposes, a static page or form with some minor JS enhancements works really well and degrades gracefully, which can't be said of a lot of JS-only apps.
There is a trend that's present in other areas of computing too, but I notice it the most in web development --- the ever-increasing layers of abstraction, just to do something that doesn't need all that complexity. Certainly there have been good web apps that make great use of HTML, CSS, and JS, but most of the time it seems like we're finding more resource-consuming ways to provide none to little gain in functionality.
It's especially sad when people who for various reasons cannot or will not use the latest (mainstream) browsers with tons of features and resource consumption, or who do not have a high-bandwidth, low-latency connection, are essentially being locked out of easily using sites that have "upgraded", when they would've been able to use that site to do the same thing they could've done before (e.g. checking their bank account balance.) By all means use new technology to enhance, but don't use it to marginalise.
I think it is easy to confuse developers unfamiliar with 3D graphics into thinking Famo.us is doing something unique, special, or new. I like the idea, but the "amazing demos" I am seeing are just extremely basic 3D & 2D operations, not really successfully replacing the ease of use traditional DOM elements provide. This space will get a lot of players, now that the essential idea is seeded in a zillion developers minds.
The author of the rather awesome three.js demonstrated how to make Famo.us' periodic table visualisation with his library: http://mrdoob.github.io/three.js/examples/css3d_periodictabl...
They oversold it, for sure. The code is solid though, if still very much in progress.
What they call a 'render tree' is pretty much just a scene graph, and they are moving to that as well.
I knew it was only a matter of time before "flash.js" happened.
That was my over-riding thought while reading the linked article and looking around, smells like flash.
Its definitely framework we need, to get more performance out of web pages, especially with mobile in mind.
It has some really good ideas in terms of architecture and good modularized code. (I would prefer cjs over amd)
On the other side it is very young:
1. There are some serious issues to be fixed, f.e. https://github.com/Famous/famous/issues/111 or https://github.com/Famous/famous/issues/74
2. There are no open sourced tests, I even assume there no tests at all at the moment.
3. They open sourced code but the development itself is closed. Its a black box.
I really hope famo.us will change this stuff and will focus more on the core framework and being real opensource product.
Like the late stand of Steve Jobs, if it's slow and drains the battery life of my iPad it's evil.
So when was the last time you needed a 3D data visualisation?
When VR arrives the coming years, hardware accelerated stereoscopic in-browser javascript, html or webgl rendering of 3d infographics, highfidelity/opensim hypergrid clients projects like this will fulfill the promise of VRML and the endeavours of the Web3D consortium. Projects like these will be made to good use, but for now it seems like cool tech in search of an application.
That said, making yet another 3D or 4D version of Conway's life, lightweight minecraft clone or stereoscopic mp3 visualiser in Famo.us would be nice pet project. In the meantime I'll master Ember-Charts and D3.js for the fancy 2D stuff.
I'm actually quite fond of famo.us, although they definitely have a way to go. I would not evaluate it as a finished product, but a young open source project.
I mostly see Famo.us as a way to bypass the ever-increasing layers of abstraction involved in CSS layout/positioning.
To understand what famo.us is and what it does, you really should read this thread by malandrew, their employee #1.
I stopped reading when this happened: "It effectively skips the browsers rendering engine and instead uses its own more efficient rendering engine based on WebGL"
Good thing you stopped... as that is entirely inaccurate :D
fwiw I am a famo.us employee
Ah OK, so the author hasn't even tried it yet. Well thanks for sharing anyway.
Oh fuck off famo.us
I'm now a full stack web developer (by meteor). With Famo.us and Phongap I can now easily to build a cross-browser html5 app with native-like UI. In my opinion, it's the future of agile development, especially for startups.
I'm guessing this has to be satire.
I hope so. Poe's law, and all that
That's the idea right? Have you put it into practice?