HTML5 was supposed to replace Flash by making Web pages work more like apps. But when its performance fell short, HTML5's stock with app developers fell.
Famo.us is a small company that rushed to fill the gap. It has developed its own framework that essentially sidesteps the poky elements of HTML5 in order to render both 2D and 3D effects quickly—potentially making it possible to develop fast, cross-platform apps that don't suffer from HTML5's lags and stutters.
The Promise Of HTML5
HTML5, of course, has plenty of room to improve on the display front. For now, though, it’s a serious disappointment to developers who expected it improve on Flash.
“Flash was perfect but for a few things,” said Newcomb. “It could render things very quickly and beautifully. But it required an install or a plugin to run. It wasn’t accepted by the browsers as a default way of doing things. That was its downfall.”
After Steve Jobs memorably announced that Apple’s mobile devices wouldn’t support Flash in April 2010, many developers pinned their hopes on HTML5. Unlike Flash, HTML5 would be compatible with every browser and every device. It didn’t require a plugin to work. Soon, Facebook publicized its plan to base all its apps on HTML5.
Unfortunately, the technology just wasn’t there yet. HTML5 was designed to work on top of the browser’s default rendering engine. Developers quickly realized that apps built in HTML5 were slow, shaky, and looked a decade out of style.
“The renderer in the browser was initially built to render a document with links—not apps,” Newcomb said. The solution? Circumvent the browser's rendering engine with one of his company's own creation.
An Engine For Everyone
When HTML5 didn’t live up to expectations, developers at Facebook and elsewhere turned back to native apps—that is, programs built specifically to run on a particular operating system like iOS or Android. Native apps, like much application software, are compiled into machine language for speed and compactness, which also ties them to particular hardware and software platforms.
In some ways, native apps are great. Not only are they fast, they can take advantage of specific OS and hardware functions in ways that device-independent apps often can't. But a native app developed for one platform can't run on others, which complicates development because apps for various platforms have to be developed—and maintained—in parallel.
Newcomb sees native apps as a temporary fix in other ways. “What made the Internet great was that anybody could right click on a Web page, view the source, and learn to code in HTML,” he said. “Native apps are a closed environment. You can’t right click on them and see source code.”
That's why Famo.us is working to combine the best of all worlds. Like Flash, it can be used to build games, apps, ads, animations, art, and interfaces. Like native apps, it works on mobile. And like HTML5, it works in the browser without a plugin.
To demonstrate, Newcomb showed me an interactive lightbox gallery built in Famo.us, which I could recode in real time:
The result: fast animations delivered with the speed of a native app that can run in any browser on any device. And like HTML5, anyone can right-click and see how it was built.
Case in point: Famo.us recently partnered with Hack Reactor, a 12 week coding bootcamp in San Francisco. For the beginning engineers’ final project, they were given private beta access to Famo.us and told to build their own versions of Twitter.
At its core, Famo.us is for professional developers. It already has 70,000 of them signed up for its private beta. But Newcomb hopes that the free, open source engine will also pave the way for the aspiring builders of the future.
“I’m not a traditionally trained engineer at all,” he said. “I was just a dude who learned how to code by right clicking and viewing the source. This deeply affected me in my career. I want to make it so people like me can build awesome stuff. I want to make it accessible.”