The famo.us controversy
blog.siliconpublishing.com
blog.siliconpublishing.com
WebGL is the best way to talk directly to the GPU not through CSS3 transforms. Any experienced developer would be pretty insane to try to supplant a 20 year old community effort (OpenGL) for efficient GPU communication, especially one that has involved deeply all the GPU vendors.
NOTE: My company has bet big on WebGL and Three.JS so I am biased in this regards: http://clara.io
This project takes a good step in that direction, in the same vein that Bootstrap and others have.
Lots of programming and design hours are wasted because the DOM is intended for Documents and not user interfaces.
Or perhaps just skip that step and come up with something nicer for specific use cases.
Why aren't we leaving all of this float/clear stuff behind us?
Of course we can. :) But writing full UIs are tons of work.
Why are there no OpenGL UI libraries in wide use on desktops? The same argument should apply to a degree? Or is it just that HTML5 is way less efficient that GUI+, Swing, etc.
The main reason why we haven't seen more is because OpenGL up until now has been largely in the sphere of gaming, where standardized UIs aren't a priority.
That being said, even in gaming there are a large number of libraries available that help you implement UIs.
The OpenGL UI libraries I've seen on Windows are pretty horrible/limited.
Those in games are usually based on Scaleform and are also relatively limited in terms of built-in functionality, although it has wide freedom of design:
https://blog.mozilla.org/tilt/
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRende...
Unfortunately it is not yet available for web content (browser extensions only).
I smell fear here, whether it is investor fear or team fear of losing IP and control when(if) they open source the project.
Whatever the issues they are harming the credibility of the platform. I was an evangelist to begin with - a library built in JS that can silence the compiled crowd is a sure feat.
Now I am more of a skeptic. If this is how long it takes to release the codebase, imagine what updates will be like. I know in the newsletter Steve has been trying to appease, but all that it sounds like now to me is a flash of arrogance over owning a toy that no one else can play with, in an "i know you need this, but hang on" kind of way. I know it is not meant in that way, that would be silly.
WebGl is maturing and if they don't push what they have then they will lose the traction they have for sure.
Hopefully they will just release what they have soon and be done with it.
Here's a number: $ 5 × (100.000 × ¼) = $ 125.000 in Free Capital
What that means for their customers (Early Adaptors) is this: $ 5 + EULA + (Freemium of sorts in the future, for loyalty) = WIN
TBH: I thought the same, I mean the decision to lock-out so many potential developers willingly is very bad, or just ignorant. Personally I value their startup high as a replacement of <Enter-Mobile-Framework-Here>, but time is not everything, sometimes you can loose a lot of customers, because of the bad first impression you have made in the beginning.
$5.1m invested dollars in from big VCs already http://www.crunchbase.com/company/famo-us
VCs were betting on the longshot that famo.us delivers and actually works as a layer/graphics engine for non-native apps (a $100m+ play for sure). We all saw those bets and the founder certainty as a guarantee this technology would actually live up to the hype where I think we should look at this one more like the VCs did. A 1 in 20 shot and changes everything if it happens vs. expecting it to happen and factoring it in our plans.
Hate to say all this because I'm building a browser limit pushing project myself that could have used famo.us...
We attended their last two SF "meetups" in December 2013 where they promised they would release the code right then (or the day after).
Still no release, and no further mailings. This is effectively vaporware in my view, and they can't indefinitely dangle this carrot in front of developers before we get fed up.
Are they cutting corners because they can ignore the DOM and associated events? Or is there something else going on?
The question is what subset do you choose to implement. And it will necessary not be correct for all cases. Thus what would happen is that this will be one of many specialized / simplified pure JavaScript DOMs.
But the above is just speculation.
I'd like to see what assumptions famo.us has made and whether they could have just been addressed at the CSS level. An example of that would be things like overlapping elements with rounded corners and drop shadows, which are very expensive for the rendering engine. So perhaps it was a lack of understanding of CSS jank factors that led them to decide a total circumvention was in order? We'd really need to see a side-by-side of the two and understand where the conventional solution was bogging down.
Unless they are purely talking about websites, then I don't see why would they even bring app native/hybrid apps...
I've profiled a lot of web pages/apps and this hasn't usually been true in my experience. Occasionally JavaScript is the culprit but that is more often to be due to really bad O(n-squared) algorithms and script that forces layout. In contrast, the rendering engine combined with complex CSS is often the cause of "janky" page behavior. Do you have some profiler runs that show a JavaScript bottleneck on a webview that doesn't exist when using Nitro or some other browser?
Ok, it may not be ENTIRELY the JS engine's fault, but it's definitely the biggest part of the problem...
Mainly hyping their vaporware product, as far as I can tell. Ok, they've made a 3D-ish periodic table with questionable UX? Great, anything actually useful?
WebGL... you can't even do fonts.
And DOM is more accessible by creative designers.
They use JavaScript instead and get great results, but that's hardly fixing the problems of HTML5 like the article made it out to be. HTML remains slow, they are just putting forward the idea that JAVASCRIPT apps may be as fast as native apps.
Approaches to updating the DOM seem to be getting a lot smarter - tools like ractive.js are smart enough to make the smallest (fastest) changes to the DOM rather than the traditional deleting and recreating large chunks of the tree.
Edit: React also has a virtual/shadow DOM for high performance updates.