Remember the happy days of the first version of Java, almost 13 years ago (1995)? Java was hot. All of a sudden, you had the power to write attractive little web applications (Java Applets) that would run in any browser! Websites were never as slow at loading as in those days because everybody wanted smoothly
scrolling text applets on their page. It was a huge hype.
The first version of Macromedia Flash was introduced about a year after Java (1996). With Flash you could create flashy animations that loaded a lot faster than Java Applets. Actionscript was introduced in Flash version 3 (1998), allowing the development of interactive animations. In 2004, Macromedia released the first version of Macromedia Flex, a framework for developing Rich Internet Applications that run inside the Flash player. The term Rich Internet Application (RIA) itself was first used in 2002 in a whitepaper from Macromedia.
In 1997, Netscape version 4 was released. What’s so special about that? Well, the fact that this version came with a Javascript interpreter, Cascading Style Sheets (CSS) and a Document Object Model (DOM). In other words: Dynamic HTML or DHTML. Although Netscape 4 was very buggy (especially, the CSS part), DHTML became popular very quickly. Since the introduction of DHTML, there always have been browser incompatibility issues because the browser vendors interpreted the W3C standard differently and because Netscape and Microsoft both wanted to become the dominant web browser vendor.
In 1999, Microsoft introduced a special ActiveX component that allowed DHTML developers to retrieve data (XML) from a web server in the background (asynchronously): the XmlHttpRequest object. The other browser vendors soon adopted this idea and W3C standardized the concept. Ajax was born and became
immensely popular in a very short time.
So, where are we standing now? Java Applets still load absurdly slow and you hardly see them anymore. Although, Java (Micro Edition) is the dominant front-end technology on mobile devices. Flash, now owned by Adobe, is installed on 96% of all internet devices and has evolved into a fast and robust platform for developing both rich media and rich internet applications (RIAs). Browser incompatibility is still an issue with Ajax, but it is hidden by a multitude of robust Ajax frameworks. Microsoft introduced yet another cross browser rich internet technology called Silverlight, which is a special plug-in that extends your browser with powerful multimedia capabilities that can be controlled through Ajax.
Rich internet technology has become mature. Vendors of such technology are more and more focusing on the quality of their development tools. It is interesting to see that Microsoft seems to primarily focus on their tools for visual UI design, which led to the Expression Suite. This suite allows designers and developers to cooperate more closely. This is crucial because more often than not, UI designs are just drawings that the developer should match in the real application. It makes far more sense if the designer can produce a skeletal version of the application that can be “wired” to business logic and services by the developer. Adobe has also understood this and is working on similar tools (code named Thermo).
Over the last 13 years, rich internet technology has become proven technology and we (users and business) have become familiar with its possibilities. This technology enables the development of responsive and usable web applications with attractive graphical user interfaces (GUIs) that can rival with the user interfaces of desktop applications. Well designed RIAs are easy to use and such a pleasant experience that (intended) visitors spend more time on the website and become regular users.
Building a rich internet application also requires a rather rich set of skills:
Besides a skilled software engineer, a RIA engineer:

  • is a seasoned GUI engineer, implying solid understanding of typical GUI concepts, event driven programming and the MVC pattern,
  • has knowledge of and experience with W3C standards such as XML, SOAP, XPath, DOM and XHTML,
  • is familiar with the Web Oriented Architecture style popular in the Mashup development community, which means knowledge of concepts like Representational State Transfer (REST) and Javascript Object Notation (JSON),
  • has basic understanding of popular server-side frameworks and standards such as J2EE, Spring, Spring MVC, Struts, Cold Fusion, PHP and .NET,
  • and has sufficient understanding of user centered design and interaction design to be able to recognize design flaws or violations and communicate and work together with interaction designers.

Did I miss anything? Well anyway, I can confidently conclude that the RIA engineer is a sheep with at least 6 legs.