Java != JavaScript
Since when has JavaScript meant Java?
Facebook has ruled out a return to platform-neutral HTML5 for mobile, dedicating itself to a future of React Native – its own JavaScript framework. The social networking giant told journalists in London this week that it won’t be writing future mobile apps in HTML and vanilla JS. Asked about whether it might reexamine HTML5, …
I guess I should of stoped reading, because the article explains how Java fits in.
Anyways, why even fuck about with Java if speed is important? Whatever happened to ASM and C? At least in C you can do all the Java b.s. like "system.out.print.OMG!". If there was only 1 or 2 Java API's I'd get it, but there is like 50,000 of them now. Java seems to mean "proprietary bootstrap loader"...or something similar, and you don't need Java to make one of those.
Also a look through their new offering, it seems like "React" is their JS framework similar to BackBone/Knockout - with a similar feature set to AirBnB's "Holy Grail" (using JS to generate HTML on the server as well as the client).
The Native part looks interesting though and would appear to be similar to FireFox OS's approach (JS talking to Native APIs).
Does raise the question - why complain about HTML 5 and lost years of development then release a framework using the same languages? After a few years of development I'd expect that libraries are created to make programmers more efficient and this just looks to be a library aiding HTML 5 development and exposing Native APIs to it...
I would really like to sit in at the meetings where these decisions are being made, because they don't seem to make any technical sense.
First, Facebook is a freaking website, not a CAD program or nuclear simulator, so how is it possible that modern phones with Gigahertz processors and GPUs do not provide enough power to render their UI, which consists of low res photos, text, and some elements that change color periodically? There are no real-time requirements, no 3D graphics, and no computation to speak of.
Second, their obsession with fast iteration - they have what, 5000 programmers working on this thing continuously? What exactly are they iterating - I'm no longer a FB user but from what I can tell, nothing much has iterated in the last 3 years, other than I heard they're introducing animated GIFs.
That whole HipHop thing is whack too - an entire VM and translation layer just to allow hackers to use PHP instead of taking a few months to learn a scalable language, engineering a solution, and implementing it - done deal. This isn't rocket science, eventually you should have a stable product that doesn't require armies of hackers to keep from falling over.
" I'm no longer a FB user but from what I can tell, nothing much has iterated in the last 3 years"
I screen scrape Facebook pages' content through the browser DOM. Nearly every week the HTML nodes change in some apparently abrupt way. The overall node structure changes, the tag types change, the node names change - sometimes drastically, sometimes subtly. Each time a variable number of the pages trawled have transitioned to the new format.
However - the visible rendering always appears unchanged.
I shudder to think of what abomination can come from the collective hands of 5000 programmers.
Can you imagine the levels of indirection, proxies, factories, proxy factories, indirected proxies and indirected proxy factories there must be in the Facebook codebase. No wonder they have to run it on quantum hyper-cubes. Probably.
"...just to allow hackers to use PHP instead of taking a few months to learn a scalable language, engineering a solution, and implementing it - done deal..."
That leaves you with a poorly documented codebase of $x*1E6 lines (or, if you're a javascript programmer, `${x*1E9} lines`) which has got to be ported.
Secondly, programming PHP is easy; any jerk can do it. Programming a "scalable language" requires more expertise. So I suspect many of Facebook's existing "brogrammers" wouldn't be up to it and they'd have to buy in more expensive programmers. And, at that skill-level, programmers tend to be more interested in doing meta programming than writing productive code. (*cough* guilty *cough*)
Doing some screen scraping of Facebook Events pages on a desktop it has become evident that FB are rolling out a new page structure. Most of the HTML data specific to the page owner has disappeared from the DOM nodes view. It has apparently been superseded by a lot of script statements. In diagnostic mode it can be seen that the owner's actual data that appears on the rendered page is now enclosed in <!-- comment delimiters.
Internet is a means to an end (exploiting users to make money out of them). They don't want people navigating away from their site.
I expect them to make a non-mobile application for Linux, Windows and OSX..
Eventually they will just have apps, not HTML except to suck Browser users into their ecosystem.
Javascript rather than HTML5 the better to steal your information ...
It appears to mean this:
1) learn
2) write for Galaxy S3
3) won't work on S4 or iPhone4
4) write for Galaxy S4
5) write for iPhone4
6) won't work on S5 or iPhone5
7) write for Galaxy S5
8)write for iPhone5
9) won't work on iPhone5s
10) write for iPhone5s
11) won't work on iPhone5c
11) write for iPhone5c
You get the picture.
This is to be expected from a guy whose previous experience is .NET.
Once we are near every developer's dream - write once, deploy everywhere, we get FB using their own interpretation of a "universal" system.
Sounds a lot like Microsoft's Windows' 10 strategy of universal apps. Which will never work as expected, of course..