At our November 1999 meeting, Bill Joy, Chief Scientist of Sun Microsystems,
Inc., discussed the journey from
the Berkeley Software Distribution (BSD) of UNIX to the
development of Jini technology.
Bill's talk was a relaxed chat about the technologies that
have been developed during this time, and how the open source
movement has influenced them.
He talked about the state of computer science upon his arrival
at Berkeley and how CS departments often thought that research
consisted of theorem proving; not "experimental" computer science
that consisted of building systems.
A result of his time at Berkeley was the shift in perspective
that computer scientists should be able to publish
their code much as a physicist would publish a refereed paper--
both are the results of extensive research.
Bill talked about how TCP/IP became the standard
Internet protocol because the same set of code was developed and honed by
developers around the world. Whereas the OSI protocol stack was
"supposed" to supplant TCP/IP, the latter prevailed because of
its open source nature. At an early "connectathon," the code
was tested for interoperability between around fifty different
ports to different operating system environments. In contrast,
the same exercise with the ISO protocols consisted of a test of
fifty different implementations of the same specification--
a much more daunting problem.
Bill did muse that a weak point of the resulting TCP/IP protocols
is that there is now no commonality in how to handle transactions
and security because they were not planned and done in an ad hoc
fashion. For example, we have HTTP and HTTPS, but how about
SMTP and SMTPS for secure e-mail. We don't have these facilities
because they were never properly layered.
Bill talked about his search
for a "safe" programming language, knowing that C++, like C,
was basically a "peek and poke" programming language that is
fraught with the problems of languages that allow pointers
into memory. Bill reviewed the all-too-familiar debugging
session where one piece of code keeps a pointer, uses it
later, and interprets what was a string as a floating point number--
say 3.7-- and now you start trying to figure out who else in
the environment might have such a number floating around.
Java enables programming that is safe from these problems,
and also enables a world where one can freely send code around.
Because Java is interpreted, the world only has to agree on
an interpretation of the byte code. You don't need to have
tests between ports of the same code (as in the TCP/IP days),
only tests of 50 implementations of the Java virtual machine.
Bill closed with a discussion of the community source model
of Jini, and how it contrasts with the "free" licensing
used by other organizations, and with the licensing for Java that
has required the courts for enforcement.
The community source model limits access to code to those
developing the system or application, and requires the developers
to return the improvements to the community. The spirit of
the community sourcing model is that you join the community,
get access to the code, obey the rules, follow the compatibility
tests, and don't abuse the trademarks.
Bill compared Sun's community licensing strategy to the Visa
model, where the various organizations providing credit
cards to customers must interoperate with the Visa organization
and follow their licensing terms to utilize the trademark.
(Further information on Sun's licensing for Jini is available at
Apparently Bill enjoyed the meeting as much as we did, as
he stayed way beyond his intended departure time answering
questions for a good hour.