AJAX and the Future of Web Applications
8
Understanding the way people's brains work would be the key to building the ultimate software
applications. While we're far from that point, what we do understand is that end users need
intuitive user interfaces; they don't really care what operating system they're running as long as the
functionality they get is what they expect. This is a very important detail to keep in mind, as many
programmers tend to think and speak in technical terms even when working with end users
(although in a typical development team the programmer doesn't interact directly with the end
user). If you disagree, try to remember how many times you've said the word
database when
t
alking to a non-technical person.
By observing people's needs and habits while working with computer systems, the term software
usa
bility was born—referring to the art
of meeting users' interface expectations, understanding
the nature of their work, and building software applications accordingly.
Historically, usability techniques were applied mainly to desktop applications, simply because
th
e required tools weren't available for web applications. However, as the Internet gets more
matu
re, the technologies it enables are increasingly potent.
Modern Internet technologies not only enable you to build a better online presence, but also allow
b
uilding better intranet/dedicated applications. Having friendly websites is crucial for online
business, because
the Internet never sleeps, and customers frequently migrate to the next "big
th
ing" that looks better or feels to move faster. At the same time, being able to build friendly web
interfaces gives alternative options for intranet software solutions, which were previously built
mainly as desktop applications.
Building user-friendly software has always been easier with desktop applications than with web
applications,
simply because the Web was designed as a means for delivering text and images, and
not complex functionality. This problem has gotten significantly more painful in the last few
years, when more and more software services and functionality are delivered via the Web.
Consequently, many technologies have been
developed (and are still being developed) to add flashy
lights, accessibility, and power to web applications. Notable examples include Java applets and
Macromedia Flash, which require the users to install separate libraries into their web browsers.
Delivering Functionality via the Web
Web applications are applications whose functionality is processed on a web server, and is
delivered to the end users over a network such as the Internet or an intranet. The end users use a
thin client (web browser) to run web applications, which knows how to display and execute the
data recei
ved from the server. In contrast, desktop applications are based on a thick client (also
called
a rich client or a fat client), which does most of the processing.
Web applications evolve dreaming that one day they'll look and behave like their mature (and
po
werful) relatives, the desktop applications. The behavior of any computer software that interacts
with humans is now even more important than it used to be, because nowadays the computer user
base varies much more than in the past, when the users were technically sound as well. Now you
need to display good looking reports to Cindy, the sales department manager, and you need to
provide easy-to-use data entry forms to Dave, the sales person.