The Beginning of AJAX Standardization - ' Hiding Complexity Through Abstraction ' (
Page 3 of 3 )
Layers">
The Browser is a Computer
Programmers are not waiting for standardization. Different versions of contemporary web browsers represent the current state of the World Wide Web specification, and act as a reference implementation for web developers to write their HTML markup, and — more importantly — their client side scripts. Asynchronous communication with the web server is important for a great end
user experience, but client side scripting in general is what is making a real difference.
I like to think of a web browser as a little computer that can run programs. It is almost impossible to find a serious web page on the Internet without a dose of client-side JavaScript to enrich the end user experience. In looking for good examples of client-side script usage, I found a classical star field simulation, implemented in pure Java Script. The quality of the graphics is closer to old DOS-based VGA programs than to contemporary game consoles, but it shows off the growing computing power that sits on a client and is waiting to be awakened.
Unfortunately, becoming a good JavaScript programmer is not a trivial task,
especially since the functionality provided by different web browser versions
varies considerably. The unification of the programming model of a web browser
is something that really needs to happen.
For example, the XMLHttpRequest object was introduced in IE5 and implemented as
ActiveX. Other browsers, including Opera, Safari, and FireFox, implemented it
later as well. Consequently, a script to create XMLHttpRequest needs to be
branched to accommodate for differences.
In Internet Explorer, we have to write:
var req = new ActiveXObject("Microsoft.XMLHTTP");
Other browsers support more straightfoward constructor syntax:
var req = new XMLHttpRequest();
Consider XML. For a few years, there were endless debates about whether it was
useful. Now, XML is used almost everywhere, from a default file format in Office
12 to XAML in the Windows Presentation Foundation.
For programmers, specifications are important because they help to hide the
complexity of the underlying technology to become more productive. These new
standard Web APIs have the potential to become a new portable computing platform,
similar to that which Java and .NET have achieved for traditional programming.
Hiding Complexity Through Abstraction Layers
IT technology is evolving by hiding application complexity behind abstraction
layers. I want to build AJAX web applications; but I do not want to invest too
much time in mastering client side scripting that needs to take into account
differences among web browser implementations.
The standardization of Web APIs should make it possible to create an abstraction
layer, so different vendors can start building frameworks on top of it,
simplifying common programming tasks. Borland Visual Component Library (VCL),
introduced with Delphi 1.0 almost ten years ago, is a great example of hiding
complexities of low level Windows APIs through high level object model and
reusable components to make programmer more productive.
Atlas and AJAX
The ASP.NET architecture was designed to simplify server-side web development,
but client side scripting is everything but visual. There are some facilities in
the ASP.NET Page class to generate client side scripts, however it
is still a manual process and it requires good knowledge of JavaScript.
Microsoft is moving in the same direction of building abstraction layers with
AJAX, through the Atlas framework. "Atlas"
contains a set of client script libraries that define a layered approach for
creating client-based applications. The first layer is a browser compatibility
layer, whose goal is to eliminate the need to write browser-specific scripts.
The standardization of Web APIs will probably, over time, reduce the amount of
client side code needed to implement this layer.
The second layer is 'Atlas' core services, which include extensions to
JavaScript, such as classes, namespaces, event handling, inheritance, data types
and serialization. These object oriented features put a familiar face of RAD
programming on client side scripting abstracting away its complexities. The
Atlas stack goes higher and includes more and more specialized layers like base
class library, networking, and UI with declarative programming model to better
fit into a broader ASP.NET server side architecture.
Click here to learn more about the basics of AJAX and Atlas.
Web 2.0 and beyond
Web programming is arguably the most interesting and quickly evolving technology.
AJAX is hype, but it represents a shift in the way we perceive coding for the
web. The paradigm of the HTML front-end rendered at the server is going away,
and dynamic pages with tons of client side scripts that do not require postbacks
are taking over the World Wide Web by storm. The standardization of a web
browser is going to be a real milestone in reaching the Web 2.0 nirvana.
Additional References