Internet Applications
An internet application is a distributed system for
accomplishing some task over the internet.
Although such systems can be construted from rudimentary
web pages and cgi-bin scripts, it is generally better
to use Java to create more flexible and efficient systems
that require real-time dynamic behavior.
The quintessential example of such a system is a chat room.
Any number of people can be entering, exiting or conversing
with other people in the chat room.
My interest in this area is the desire to provide the
right systems that allow people to interact with each
other over the internet. Virtual communities
and collaborative tools are one of the more promising
futures of internet interactivity.
This has been my chief interest while at both Digital
Equipment Corporation (DEC) and Internet Games Corporation (IGC).
During my time at these places I created a number of
such systems. At DEC I created demos of environments
for doing collaborative development, and while at
IGC I created a games network that included such
features as a fully automated tournament system.
More recently, my work has been in the area of financial modeling
(see Whitebirch Software)
which is a system that allows collaborative work on financial models.
Java
The principle technology for building such consumer-oriented
distributed internet systems is Java.
I was so impressed after reading the Java specification
back in 1995 that I switched jobs so that I could work
on Java full-time. I have never regretted that decision.
Although Java is not perfect, it is the best language
today for building internet applications.
Among the features I value most about Java include:
- platform independence (and hopefully the promise will
eventually be fulfilled)
- object oriented (and not compromised as in C++)
- security model (so that it can be downloaded with trust into a browser)
- wide spread use (any new machine or browser must support it)
XML
XML (Extensible Markup Language) has a bright future.
It is not a replacement to HTML, but rather a new layer
on top. Although XML is often perceived to be simply a
way of separating content from form to permit such things
as more powerful searching mechanisms, I view XML as a more
general technology that can be used in a wide variety of
situations.
In particular, I view XML as a very promising underlying
technology in the next generation of
domain engineering tools.
Although XML is still in its infancy, now is the time
to begin building and deploying XML tools.
Other internet technologies
Although my favored tools are Java and XML, there is a place
for other technologies and techniques.
These include cgi-bin scripts (using PERL or TCL) and Javascript.
I tend to avoid proprietary features that only one or a few companies
support.