In the beginning, Tim Berners-Lee created HTTP and the Web. And the Web was without commerce, and void. And darkness was upon the face of retailers. And the spirit of commerce, Jeff Bezos, moved upon the face of the Web. And Bezos said, “Let there be electronic shopping carts, and one-click buying.” And there were sales. And the computer gods saw the sales, and saw that it was good.
It’s hard to imagine the Web without the electronic shopping cart. It was a seminal advance that transformed the Web from an information resource into a business platform. A fundamental shift is happening again, and this time, a programming technology is driving the change.
That’s good news for businesses looking to give their customers a better, more responsive online experience. Look no further than Google Docs, Gmail, Meebo, and Outlook Web Access for popular Web apps that get their mojo from Ajax.
Better app performance means a better user experience. In the world of e-commerce, that can be the difference between a sub-par user experience that leads to shopping cart abandonment, and a spectacular one that keeps people shopping and builds word-of-mouth referrals.
For example, Ajax-powered e-commerce apps can allow shoppers to hover their mouse over a product to get a pop-up window with the product’s details, including photos. There’s no clicking, no data transfer, no page refreshing. The information is at customers’ fingertips.
Applications with a database back end, such as inventory control, accounting or shopping carts, can respond with the same look, feel and functionality as non-Web desktop apps. Software updates are painless, requiring no effort on the part of users, desktop IT, or database administrators (a big plus).
As with all programming languages, Ajax has its advantages and disadvantages. For example, even skilled developers have built Ajax apps that — due to their asynchronous nature — end up overloading servers or bogging down databases.
For database-driven apps (meaning, all e-commerce apps), many Ajax development tools pose problems when dealing with updates. Typically, developers have to refresh the entire database, pull up all affected forms (screens), update each form’s logic, rewrite the layout code, and test the changes before redeployment is possible.
Back to the Future
Tools vendors faced similar challenges in the GUI (graphical user interface) and client-server eras. The first graphical Mac and Windows applications required coding line-by-line in C++, Pascal, or (gasp) assembler, coupled with a masterful knowledge of the operating system’s primitives and, later, application programming interface.
The vendors responded with visual RAD tools that generalized common application requirements, such as creating windows, buttons and menus; connecting, reading and writing database records; accessing network resources; and so on. This allowed developers to focus on the core business logic they needed to encapsulate in their applications, and left the UI and resource utilization details to the programming platform.
The result: Developer productivity skyrocketed, along with the sheer number of custom-built business applications. Who among us hasn’t fielded an application built in tools such as Visual Basic, Delphi, FoxPro, Alpha Five, FileMaker, Paradox and the like?
Now the era of “codeless Ajax” is upon us. In general, codeless Ajax promises to free developers from the complexity, drudgery and time constraints associated with Ajax programming. Several vendors are now talking about or offering technologies that provide some level of codeless Ajax functionality.
The scope of these offerings differs. Most nibble around the edges and provide some sort of reusable widgetry that makes it possible to create, say, an interactive pop-up window or application grid. Anything more sophisticated, however — such as complex “parent-child” relationships like you would see in an invoice or sales order, or the components of a contact management system with extensive report filtering — requires significant manual coding.
Framing the Frameworks
Some provide reusable frameworks that attempt to solve a broad range of programming problems in an Ajax namespace. Several of these frameworks are very good and highly evolved. Some focus on the GUI. Some focus on server-side components. Some do both.
The problem is, they’re frameworks. Adopting a framework simply replaces the basic Ajax learning curve with a higher-level learning curve. Developers still have to learn the framework’s namespaces, objects, components, conventions, patterns and so on.
When the vendor deprecates some aspect of the framework, apps built on it will require updating or risk breaking. Moreover, frameworks still require developers to build portions of their applications by hand, often line by line, using a 4GL.
So, while a framework reduces the amount of “coding from scratch” that has to be done, we still have to build (and debug) all the pieces needed to tie all the components together and use them. In other words, we’re still not focusing efficiently on building business logic, but rather burning productivity cycles building the plumbing and the GUI.
In my opinion, frameworks are “less code,” but they’re not “codeless.” I’ve been waiting for a platform that treats Ajax functionality the same way desktop RAD tools treat desktop functionality; that is, largely or entirely codeless. I know I’m not alone.
Codeless Ajax doesn’t mean one size fits all. The tool should provide extensive customization capabilities. These could be based, for example, on properties pages that can be set by developers with a few mouse clicks, as opposed to having to grind out custom code for every desired behavior.
Ajax: The Next Generation
I estimate that eliminating manual Ajax coding can cut my development time by 40 to 50 percent. Based on the pre-betas I have seen (and am providing feedback on), anyone with a modicum of development skill and experience will be able to use this tool to create online solutions that look, feel and behave with the same quality we expect of an enterprise app.
That’s a game changer. Try that with ASP.Net, Flash, Ruby on Rails, Perl, PHP or pretty much any other application development environment today. Contemporary development platforms have become squarely focused on professional developers, cutting out the entrepreneur, the small business, or the penny-pinching mid-sized organization.
Codeless Ajax could be the breakthrough that, like earlier generations of RAD technology, changes this equation.
Jim Dusoe is the lead business analyst at Alpha Software, a provider of Web and desktop database applications.