When I programmed in the 1980s, interpreted languages were thought to be wimpy.
Programming Apple Basic or dBase II was neat, but if you wanted to generate useful
business applications, you had to compile. C or Clipper would do the trick, for
instance.
Two decades later, after HTML, Perl, JavaScript, CSS, DTHML, XML and the rest
have come onto the scene, the programming landscape has shifted significantly:
scripting languages have become as powerful as compiled code, and in some cases
even more powerful (as in ILOVEYOU). But to try to determine whether scripting
is more powerful than compiled code is to miss the point of the Internet: either/or
is out, synergy is in. And it will be precisely the art of knowing how to creatively
synergize scripting languages with compiled components that will produce the most
significant jumps in web development in the next decade.
In a recent article
in which he talks about why he likes XML, Dave Winer describes a web invention
whose time as come: a way to enable writers to log onto a website and edit text
in familiar word processing fashion. The solution is simple: write two tiny WordPad-like
components, one which sits on the server and one which gets sent quickly to the
client, then have them communicate with each other via XML script. Ingenious.
In a sense, the browser / web server setup is already an example of server
components (IIS or Apache) talking to client components (Explorer or Netscape)
via scripts (HTML, JavaScript). The point is to extend this model further toward
the specific purposes you need. For instance, the RealPlayer is a component which
allows you to produce a multimedia show with simultaneous video, audio, fading
pictures, scrolling text and ticker tape, all directed by a tiny 5K text file.
Components empower script.
You can apply this model to any application. For example, I would like to create
a component with which I could store useful French phrases that I learn as I read.
In the meanime when I am online, my component scans the Internet (ICQ-like, or
even Napster-like!) for others who have downloaded this component and who have
interesting French phrases which I would like to learn. The script is of course
a personally tailored XML-derivative which enables these little components to
communicate in a way which makes them appear eerily intelligent: ("The owner
of this phrase is online and would like to schedule a French language VideoChat,
shall I enter it in your Outlook calendar for the free 30-minute block next Tuesday
afternoon when you are home or would you like to chat with him now?").
The real power of this script/component model becomes apparent when you realize
that script can be dynamically generated. This means that not only humans, but
also other computers and devices can log into a web site and change the text,
triggered by real-world or virtual events. This means that computers can generate
dazzling unique and personally tailored multimedia presentations for you on the
fly. This means that I can have interactive French language lessons created automatically
for me based on phrases which I have defined as useful and which have been collected
by myself and people worldwide whom I have defined as interesting French learning
partners.
The most interesting and useful web applications of the next decade will involve
creative ways of getting server-side and client-side components to communicate
with each other using intelligent script to connect humans and computers in never-thought-of-before
ways. The challenge of the web developer today is to not only be well-versed in
the script languages (e.g. HTML, JavaScript, XML) but also capable in the compiled
languages (e.g. Java, C++, Visual Basic). Once you have these two sets of skills,
you are limited only by your imagination.
7/02 Edward discusses video
7/08 On the information overload
More of Edward's diaries