How do you write a Web App?
Tuesday, 02 November 2010
Article Index
How do you write a Web App?
Silverlight and GWT
Java Applets and JavaFX


So how should we create web applications?











The big problem with the HTML5 approach to web apps is that it lacks tools. For example, a Flash or Silverlight designer has access to interactive design tools like CS5 or  Expression blend which allows them to create animations and graphic designs without the need for code. Programmers also have their own tools in the form of Flash Builder and Visual Studio which have drag-and-drop designers for the user interface. It is, of course true that tools for HTML5-based development of the same sort could follow but there just isn't the same level of integration between HTML and Javascript as there is between say XAML and C#. For example, how can you extend HTML to include new user controls? It is possible but its not easy, obvious or part of the specification.

The big advantage of the HTML5 approach, and for many this advantage is enough to make it the number one choice, is that it is standards-based and, in theory, available on every platform. If the user can't display an HTML5 page then it's the user's system at fault not the developer. At the moment this advantage isn't realised as HTML5 isn't finalised and browsers are still working towards an implementation. It probably won't be realised in the near future either as you have to cope with users who have older browsers. Its range of application includes building applications for mobile devices and phones without having to worry about specific implementations - but mobile web apps generally need help in the form of non-standard libraries to access the native facilities of the device.

Even so there is the promise of a day in the future when HTML5 will be the norm and so backing it early might make sense.


Flash is a plug-in, available for most browsers in use, and Flex is its SDK for building web applications. The Flash plug in supports the ActionScript language, which is a derivative of Javascript. It was originally introduced to allow control of Flash animations. Although the language has been expanded in each version, notably to include a more traditional form of object orientation, it is still best regarded as a scripting language and lacks sophisticated features. User interfaces are designed using MXML which plays the role of HTML in Flex applications. 

Developers can use Flash Builder as their development environment and this comes with a drag-and-drop interface designer. The Flex 3 SDK is issued under the Mozilla Public License and so is open source - however most programmer still view it as a proprietary technology. 

Although it runs using a browser plug-in most browsers are supported and most users have Flash installed simply because it is used to display videos on many popular sites. The capabilities of Flex depend on the version of the player installed and targeted. The latest version is just getting around to supporting 3D graphics.

Most of the problems of using Flex and its desktop extension AIR is that it has grown from the design and animation end of the problem.  Flash was introduced primarily as a platform for special effects and multimedia, not as a general purpose applications environment. It has been slowly developing towards this over time but it is still clear that this is web multimedia technology extended to applications development and then on the desktop.

Clearly Flash/Flex is a reasonable choice for general application development for the web, desktop and mobile devices. Its credibility has been damaged, however, by its exclusion from the iPhone with Apple maintaining that it is buggy and unsafe. Even without the iPhone it still covers a good range of platforms, but it lacks native support on mobile phones.


Last Updated ( Friday, 31 December 2010 )

RSS feed of all content
I Programmer - full contents
Copyright © 2015 All Rights Reserved.