Of Lego Blocks and Puzzle Pieces
May 31, 1999
"It seems to me that my job as a webmaster has
continually been about fitting together a zillion little puzzle
pieces. This piece talks to that piece and that piece talks to
this piece. It is easy to get overwhelmed." - anonymous reader
I have heard this statement about a hundred times in one form
or another.
I guess I can see why someone would say that building web
applications is like putting a puzzle together. The myriad
of web application development technologies could certainly
look like a jumble of puzzle pieces.
However, understanding web application development in terms
of a puzzle metaphor is just about the worst thing you could
possibly do for yourself! This metaphor only leads to confusion
and if you adopt this metaphor, you'll quickly find yourself
becoming overwhelmed with the myriad of technologies.
Web application development technologies are definitely NOT
puzzle pieces.
Puzzle pieces fit together in specific, "correct" ways. That
is, although puzzle pieces look similar in many ways, every
piece is very different from every other piece. One piece
cannot be substituted for another piece unless you want the
final picture to look really weird.
With a puzzle, there is always a single, overarching, "right"
way to put the pieces together and each piece is unique.
In web application development however, there is no right way
to solve a problem and no truly unique technology. Rather,
there are multiple possible configurations of essentially
redundant tools, each which solves the same set of problems.
For example, as we will see later,
CGI,
ASP and Servlets all
serve the same basic function. They perform
server-side processing.
Similarly CORBA, DCOM and enterprise Java Beans
specify how to talk to distributed objects. Likewise
XML,
HTML,
SGML,
XSL and
CSS
are all similar tools for marshaling and displaying data
across a network.
As such, web technologies within the same categories, can be used
interchangeably in MOST situations. Choosing one or the other may
often be more of a bureaucratic/administrative/standards decision
than a technical one.
Rather than using a puzzle metaphor, I like to think of web
application development in terms of legos. With legos, there
is no overarching "right" way to solve a problem. There are
just a whole bunch of block categories (6 hole, 4 hole, 2 hole)
which can be put together in an infinite number of ways.
Certainly there is variety within the categories (some 6-holed
pieces are red; others are blue), but all lego blocks, regardless
of their individuality within a category, are still equivalent
as members of their category.
The lego metaphor provides a way for you to make sense of the
forest of existing technologies and the forest of future
technologies. Rather than understanding each technology on its
own, you need only understand the categories into which
individual technologies fall. Once you understand where a
technology fits into the scheme of a web application, you
already understand 60% of that technology.
Past that, you simply need to invest in a good reference manual
for help with syntax and API issues.
And so that is what I hope to do in this tutorial. I would like
you to go away from this tutorial with a firm understanding
about how web applications work generically, so that you will
have a framework in which to understand all existing technologies
you come across and all future technologies which come out.
We will survey technologies in terms of which categories they
fit into and how to understand the requirements and functions
of those categories.
Introduction to the Web Application Development Environment (Tools)
Introduction to the Web Application Development Environment (Tools)
The Thick of Things
|