The computer press have been running articles regarding the use of Flash or HTML5 in highly-interactive Web sites such as video sites.
It has started off with Apple wanting to move iPhone and iPad towards HTML5 / H264 video by proscribing Flash runtime engines from these platforms and forcing developers to move to the HTML5 / H264 platform. This caused Google to write YouTube client-side apps for these platforms and develop an HTML5 site. Then Microsoft and others worked towards implementing HTML5 in their next browser issue, with some browsers being equipped with HTML5 interpreters.
The debate about HTML5 vs Flash has been more “video-centric” because Adobe Flash was mainly used by YouTube to display the many videos hosted on that site.
It is worth noting that the FLV files used in YouTube and similar Flash applications are container files with the video and audio encoded using the H.263 video codec. The HTML5-based video applications will use FLV, MOV or AVI container files with H.264 video codecs which are becoming the standard for high-resolution video.
Applications beyond video
Adobe Flash has been used for applications beyond video. Primarily it has been used for high-interactivity applications like games such as Farmville on Facebook or the casual games on MiniClip because it offers a quick-response user interface and easy development that these applications needed. Here, it has offered a “write-once run-anywhere” platform for these Web-centric applications with plenty of “rapid-application-development” tools.
It is also worth knowing that most of these games refer to back-end databases and / or “client-local” cookie files to persistently store game-state and other user-generated data. These programs will then have to work with the different data stores as they are used.
Web-based runtime environments for partially-linked programs
HTML5 has a variety of inherent elements that allow for vector-graphics and interactivity for highly-interactive applications. It also may be of benefit to open-source software developers and Linux advocates/
But there are some developers, most notably games developers, who want to keep their source-code closed in order to control reuse of that code. These developers also want to provide programs in a manner where the target machine doesn’t have to interpret or compile code before it is of use, which will benefit high-interactivity applications where quick response is desired.
These developers typically want to provide these programs as either an executable file or a “p-code” (partially-linked) program file which is run by an interpreter or just-in-time compiler program, known as a runtime module, that works with these files on the target platform. At the moment, there isn’t a mechanism for delivering a compiled HTML5 file in a “write once, run anywhere” manner.
An interactive-applications developer could work with the latest version of Java to develop these kind of applications in a “write-once run-anywhere” platform. This platform is natively supported by the Blu-Ray Disc system as part of providing interactive video from discs and/or the Internet through that system. It could then lead to someone writing a games disc that runs classic games types on any old Blu-Ray Disc player without the player being a games console.
The main issue with this is that not all platforms, especially tablet and handheld platforms, support Java natively. As well, desktop support for Java may require the Java runtime software to be downloaded separately from Sun.
As well, Microsoft is wanting to advance their Silverlight runtime platform for client-executed Web applications but this platform has not yet been ported for anything outside general-purpose computers running the Windows operating-system family. Again, this is another platform for Web-based highly-interactive content that requires the client machine to work with a “runtime module”.
Apple’s control over what runs on their platforms
One of the main cornerstones in this debate is what Apple wants out of the iPhone, iPad and iPod Touch platforms. They want to maintain control over programs and highly-interactive content that runs on this platform and preserve the requirement that all such content is obtained through the iTunes App Store. The practice of supplying a “runtime module” for pre-compiled “p-code” software available elsewhere, such as what happens with Java and Flash, works against this ideal because Apple can’t see the program’s code before it runs on an iPod or iPhone. Therefore Apple have proscribed the creation of such modules for this platform.
Some Apple skeptics may also have a fear that Apple may change their desktop platform away from the Macintosh (MacOS X) platform where their is a “free-for-all” for software development towards a platform not dissimilar to the iPhone or iPad platform with a controlled development environment. This is like how they retired the Apple II platform in the early 90s in order to focus on the Macintosh platform.
The open question
Therefore, there is an “open question” concerning Web-based software development. It is whether the likes of Farmville or Bejewelled should be developed using HTML5 and in a vulnerably-open manner or whether they should be packaged as “p-code” and delivered to a runtime environment? It also includes whether Apple should expect developers to create a separate client-side app for their iPhone / iPod / iPad devices for each game or highly-interactive site that they work on.