Do you remember the first time you used Google Maps? I do. I remember being stunned by the usability and then thinking, "If this has always been possible in a browser, why did it take 10 years before someone did it?"
So, is it possible for mere mortals to build RIAs (Rich Internet Applications), or does it require a development team like Google's
Since the first CGI (Common Gateway Interface) program in 1995 generated HTML dynamically in response to a Web request, we have continuously built on this concept of server-side, dynamic HTML generation. Innovations in Web development were often just abstractions built on top of this concept. But abstraction is a double-edged sword. It eliminates the need to understand everything going on under the hood. However, each abstraction layer typically includes its own configuration, quirks and conventions. The result is that Web development has become unnecessarily complex (for example, Java Platform, Enterprise Edition 5).
One of the main reasons for this complexity is that Web application architectures are still an evolution of the CGI model from 1995. But, at the time CGI was invented, a different programming model dominated the software development landscape. It was known as "client-server." The client-server years are likely the single most productive era in software application development. But when the tidal wave of the Web hit, there was no turning back.
One of the most compelling concepts of client-server computing was the idea that the UI should be independent of the technology chosen for the business logic and data persistence. In today's Web programming model, if you decide to change your middle tier from Java to Ruby, you rewrite your entire UI, generating HTML from .rb scripts instead of .jsp scripts. The UI is tightly coupled with the server-side technology choice.
The Web is morphing into a delivery platform for client applications that consume external services from one or many sources, as well as a platform that provides a rich user experience with minimal page turns. This is the future of Web development. The client operating system IS the browser. Need proof? See the rise of offline, SSBs (Single Site Browsers) and desktop Web integration.
Welcome to client-server 2.0. The only question left is: How long before you starting writing your Web applications as standalone, true Web clients?
Matthew Quinlan is vice president of community development at Appcelerator, an open source-rich, Internet application company. He leads the company's brand awareness, community development and demand generation programs. He has been programming continually since 1981. He has focused on Web technologies since 1997, when he became chief architect of ValueAmerica.com, one of the first online retailers.
As a professional consultant, Quinlan provided guidance on Web development, architecture and content management to Motorola, UPS, Sprint, Vanguard, Intel and dozens of other companies. He has taught courses on Java and Java 2 Platform, Enterprise Edition (J2EE). He was a founding member of the JBoss evangelist team, where he spoke about open-source software, Java/J2EE and Web application development at industry events and user groups around the country.
Quinlan holds a bachelor's degree in Computer Science from Purdue University. He can be reached at firstname.lastname@example.org.