"Krakatoa--East of Java"
An excellent Rant in which our Titular Leader, Tim May, sings the praises of Java and denounces an evil sect of Crypto Separatists, the self-described "Coderpunks."
Well, I was not invited to join the elite and secret coderpunks list, but I still have some thoughts on coding and, especially, on the opportunities offered by Java. Sorry if this interferes with discussions of Rabbi Heir and Morris Dees.
Given the various parameters which determine the life and death of mailing lists, I fully expect Coderpunks to become moribund within six months, and its members to reunify with this list. Very few of these "I'm going to start my own list with less noise" adventures ever make it long term, absent the personalities and critical mass of interesting information which drove the list they spun off from.
1. Java is of course not a perfect language, nor even the best for specific applications. Other languages will continue to thrive. Critics of the language and related items (applet model, JDK, JITs, etc.) may point to various problems (e.g. security).
2. However, the "big picture" is compelling. Java arrives at a time when a Babel of languages and platforms threatens interoperability. C++ is despised by many (though, to be fair, liked by many, too), and developers are adopting Visual Basic (and the vbx widgets, etc.), PowerBuilder, Delphi, flavors of Smalltalk (no pun intended), and scripting languages (Perl, TCL, Python, etc.).
I completely agree with this. Java incorporates the type of automatic corruption-proof memory management found in languages like APL, the basic notions of object oriented programming, fast dynamic linking, and a C-like program structure. This is powerful combination of features and gives Java the potential to do all the platform-independent things that were advertised for C before the rude reality of thousand line makefiles reared its ugly head. . The complete specification of the Java Virtual Machine means that the behavior of Java programs is perfectly well-defined, and one does not have to tweek anything which is processor or operating system dependent. In the future, I expect Java bytecode to become a significant channel for the distribution of popular applications, with compilation to fast native code on numerous platforms. Java is clean, and its concepts are easily understandable even by persons whose eyes glaze over after the first 30 pages of the C++ manual.
4. What is so compelling, to me, is that Java programs have an excellent chance of running on various flavors of Unix, on Windows-95 and NT systems, on Macs, and on other systems without changes, and without any special compilers bought by the users! (Netscape browsers, and even Microsoft browsers, are able to view applets, or soon will be. And cheap or free applet viewers are available.)
Expect NT to be a Unix-killer in the future. It can be ported to any machine, and its microkernel client-server design with pluggable third-party APIs permits it to manifest simultaneously the personalities of numerous different operating systems. Contrast this with the many different binary incompatible Unix flavors and its marketing advantage becomes clear. NT sales just broke one billion per year and are climbing steadily. NT and Java will be the big players in the future. If Netscape becomes its own OS, requiring no Microsoft software, it will probably capture the low-end "Web TV" market.
6. One can imagine several applets of interest to Cypherpunks. The ability to fairly transparently run them on multiple platforms, effectively bypassing the platform dependencies, is very important. Check out Hal Finney's site for some "crytographic primitive" applets he's written.
Indeed. One can imagine a nice set of Java classes and methods which interoperates with PGP, and has none of the fixed buffer allocation, limits, and awkward memory management present in PGP. Java tends to do the kinds of things PGP does very cleanly, and implementors can worry about the algorithms without being distracted by housekeeping. Any code produced can instantly be used by others in their applications. This is a powerful paradigm, encourages others to expand on existing work, and renders kludges like "PGPTools" unnecessary.
10. "Mindshare" is the real story. Java arrives at the right time. Cypherpunks needs--those needs that go beyond just the "sealed envelopes and signatures" level which PGP provides so well--are likely to fit in with this Net-centric communications model. (I'm already thinking in terms of Java applets for building blocks for Cypherpunk sorts of things.)
Java Applets, mobile crypto agents, and the new Web-centric view of cyberspace will go a long way towards encouraging the planet-wide use of strong crypto, as well as effectively swatting annoying mosquitos like ITAR. Indeed, with Java, I can put up a Web page which teaches someone about a cryptographic algorithm, allows him to try it out and run sample data through it, and provides him with a platform-independent implementation of it to use as he wishes. All in one fell swoop. That's a pretty powerful concept. Java has come at the right time, and it will produce chaotic change in the existing order. Should be interesting. -- Mike Duvos $ PGP 2.6 Public Key available $ mpd@netcom.com $ via Finger. $