HTML5 is a big specification, but the snapshot agreed upon this summer by the W3C offers a chance to assess the evolution until now. After five years of development as a specification, and various degrees of adoption from the browser makers, what do developers want from the still in-motion specification?
One area where work needs to be done is testing, said Jonas Jacobi, CEO of Kaazing. He added that this was one of the big problems for the W3C.
“This is one of the criticisms raised by the Facebook team in a recent post to the W3C’s public channel,” he said. “The lack of testing and good developer tools for the HTML5 feature set, including CSS3 and WebSocket, is an obstacle to rapidly create HTML5 applications. However, many companies are working to improve this experience.”
This is compounded by the fact that browser makers are implementing HTML5 on their own schedules, said Jacobi.
“Those browser implementations are the real problem point for developers,” he added. “One of the primary purposes of HTML5 is to improve browser compatibility in hope of reducing the burden of dealing with multiple different interpretations of HTML from browser to browser. We also have to remember that HTML5 specifications, plus standards that are closely associated with HTML5 such as CSS3 and WebSocket, are a substantial task to implement in their entirety. Browser vendors are currently racing to implement HTML5, but there are no rules about when to implement it; it is up to each vendor to decide. Until browsers have implemented a majority of the HTML5 features we are most likely to use, there will be gaps.”
And the term “browsers” doesn’t just mean desktop applications anymore. With mobile applications and Web access near ubiquitous in the modern development world, HTML5 has to shoulder a double presentation burden for both the large and small screen. And this has been another complaint from Facebook: HTML5 development for mobile applications, said Mark Zuckerberg, founder of Facebook, is inferior to native.
Outside of Facebook, however, PhoneGap is a popular solution for porting applications to HTML5. With Adobe now shepherding that framework, and the Apache Foundation holding the open-source core of the project as Project Cordova, many developers now rely on the framework.
Ben Forta, director of developer relations at Adobe, said that Adobe’s focus for PhoneGap is now on tooling. Instead of turning PhoneGap itself into a commercial product, Adobe has decided to build an ecosystem around it. This ecosystem will address pain points, such as build.
To that end, PhoneGap Build was launched in September, offering a cloud-based build service hosted by Adobe. Rather than install all the various SDKs for the different mobile platforms and keep them up to date, PhoneGap Build allows developers to build their applications in the cloud, using an always up-to-date set of SDKs and tools.
Indeed, Jacobi believed that PhoneGap is a great way to create mobile apps. “We have seen the trend swing back and forth multiple times already, and again, it comes down to your individual needs,” he said. “For the majority of companies looking to support mobile platforms, HTML5 will be more than enough. If you use technology such as Apache Cordova to build your HTML5 application, the user experience will be very close to an application developed completely in native code.”
Playing with the Web
Another major aspect of HTML5 is its new graphical rendering capabilities. From WebGL’s 3D rendering technology, to Canvas’ ability to place complex animations and scalable vector graphics onto Web pages, the opportunity to programmatically render graphical interfaces and games within the browser has grown tremendously with HTML5. One company that’s pushing the boundaries on what HTML5 can do is YoYo Games, the creator of the introductory yet powerful game development IDE, GameMaker.
Traditionally, GameMaker has been a Windows-only development environment, both for building games in the IDE and for deploying them to playable binaries. But after a recent purchase of the company and a reworking of the GameMaker platform, YoYo Games is now able to export GameMaker games into HTML5.
Mike Dailly, head of development at YoYo Games, said that the WebGL and WebAudio implementations that are in browsers now need a bit of work. He said their maturation is needed, but that the experience was pleasant overall.
“The HTML5 engine part is pretty straightforward,” said Dailly. “We do some clever bits to speed things up. Most of the smarts is in how we take GameMaker games and translate them into HTML5. From a development point of view, what you want from an engine is something that draws sprites to the screen, which HTML5 has.”
That’s not to say the specification had everything needed for this project. “We cheat an awful lot because HTML5 doesn’t give us everything we need,” said Dailly. “We dynamically make new images, cache them, and do every pixel by hand. Most of the core parts, like canvas and draw sprite, are static. There are bugs, but the actual core I/O elements are pretty steady. WebGL and WebAudio need to mature a bit. Joystick support is only in Chrome, but coming to Firefox. When it starts to spread, we’ll look to implement it. There’re a lot of bits people have thrown in for specific browsers. We tend not to support those.”