Is HTML5 good for application developers?
HTML5 will make the Web browser into an application runtime environment similar to how Java and .NET work, but will use a mishmash of old technologies to achieve this. Is this good for application developers? Is this a good way to develop applications for the next 20 years or is this a big step backwards in application development?
What is an application runtime environment?
An application runtime environment is an application that hosts the execution of other applications. The application runtime environment is written for a specific operating system, but the hosted applications are written in languages specifically for the application runtime environment, which makes these hosted applications platform independent. Java Runtime Environment and .NET Common Language Runtime are examples of application runtime environments.
What's wrong with making the Web browser into an application runtime environment?
Having the Web browser become an application runtime environment is in principle a good thing. However, using HTML as a Graphical User Interface (GUI) language, JavaScript as a programming language and Cascading Style Sheets (CSS) as a layout language is architecturally unsound. It will lead to spaghetti code applications, and will take HTML5 applications longer to develop and cost more money to build than comparable desktop applications.
Building applications in HTML5 is architecturally unsound
HTML5 is a kitchen sink of technologies - a mishmash of functionality built on top of past design mistakes or shortcomings in old technology.
HTML was designed to be a document structure language. It lacks the most basic features of a GUI language such as the ability to create real dialog windows. Most usage of HTML to create GUIs involves kludges, such as using floating DIV elements instead of real windows. Not only does this create user interfaces that do not comply with standards for the given operating system, but also they are not accessible.
JavaScript was designed to be a lightweight and simple language to give a more interactive user experience. It was a language for non-programmers. JavaScript in HTML5 lacks the rich class libraries found in Java and .NET. Class libraries contain reusable functions for features such as advanced drawing, encoding, encryption, network communication, etc. Also, the way JavaScript is implemented with HTML makes the browser vulnerable to security breaches.
CSS lacks the necessary features for doing layout for Web pages and certainly does not have the necessary features to do layout for applications.
HTML5 applications are likely to become spaghetti code
Because HTML5 applications will be built from loosely coupled technologies, often by non-traditional programmers, the result will inevitably be spaghetti code - code that is complex, tangled and full of workarounds for browser versions/bugs or shortcomings in the technology.
HTML5 applications will take longer to build and cost more money
Most of the time (and therefore most of the money) spent in developing applications is consumed by debugging. Because of the loosely coupled technologies that make up HTML5, it is not possible to create an Integrated Development Environment (IDE) on par with Visual Studio or Xcode. This makes debugging HTML5 applications far more difficult than comparable desktop applications. Also, JavaScript is an interpreted and loosely-typed language which also increases the complexity of debugging. This means that the development of sophisticated applications will require larger development teams, more time, and more money.
Did anyone ask what we developers want?
Hey browser vendors - you're making the browser into an application runtime environment for us developers - right? Before you started, did you ever think to ask us developers if we want to continue using kitchen sink technology for the next 20 years?
Comments are closed for this article.