[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Mindshare and Java



"Krakatoa--East of Java"

I gather that those interested in software and programming have migrated, a
la "Blood Music," to the so-called coderpunks mailing list, leaving we the
preterite to discuss the Turner Diaries, Zundelsites, the wisdom of nuking
the Japs, racism, banking privacy laws, bets about the meaning of the 5th
Amendment, and so on.

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.

Others still on the Cypherpunks list are more expert at Java than I, but
they seem to be saying little (maybe all of their words are on the
coderpunks list?), so I'll say what's on my mind here.

[It is my firm opinion that the creation of a separate mailing list to
discuss only coding or software issues is a mistake. For several reasons,
which I can discuss at lenght in a separate message. Basically, it is
easier to filter-reduce a large group, such as with "[CODE]" prefixes or by
reputations, than it is to filter-expand a moribund group! :-} I've seen
many sub-critical mass list become moribund. And there is another important
point, that the Cypherpunks/Coderpunks split is producing the expected
result: the Cypherpunks are rapidly losing any remaining anchors to
technical/programming issues and are thus becoming almost wholly
politics-driven. While I am of course highly motivated by political issues,
they must be grounded in technical issues (else we are just another
anti-CDA, anti-censorship, anarcho-capitalist, libertarian ranting group).
I can't say what's happening on the coderpunks list, but my suspicion is
that many of the coderpunks-only readers are analogously disconnected from
ideological/political issues and think, perhaps, that the main purpose of
the list (and of Cypherpunks) is to discuss compiler optimizations for PGP
source code. It is sad to see the Cypherpunks lose its grounding. Maybe in
a few months, the coderpunks will simply declare victory, dissolve the
Cypherpunks list, and rename themselves, a la coderpunks = cypherpunks++.)


But I come not to bury Cypherpunks, I come to praise Java.

Some points:

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.).

3. The Java/Virtual Machine/applet model is not altogether new (remember
P-Code?), but this implementation arrives at the right time. Sun's support,
the support by Netscape, Microsoft, Novell, etc., further buttresses the
building momentum. The "mindshare" race is essentially over.

Platform-independence is compelling for many apps. Speed is often not
critical, especially when many Pentium- or PowerPC-class machines are
basically idling most of the time. (Peak performance, when a user is
actually _doing_ something at the machine, is still an issue...nobody wants
to wait 10 minutes for a bytecode version of a Java program to run while
its C brother completes in 15 seconds! For these more time-critical apps,
either native code (in C or C++) is likely, or normally compiled Java
(losing some platform-independence), or just-in-time (JIT) compilation of
dowloaded applets will be needed.

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.)

5. Again, the speed may or may not be up to what C or C++ offers. But, as I
noted, speed is in most cases less important than other factors. (At least
in the very important domain of new apps, or low-volume apps. While "Excel"
has to run at a rapid clip, "NoiseSphere" clearly does not. Nor, I contend,
do most text-oriented crypto programs. The proliferation of 133-MHz Pentia,
for example, means that even a 5x slowdown is probably acceptable (maybe
even 10x?).

[Before people note that some Java programs are running at 3-5% of their C
brethren, think of where things will be in a year, not just today. JIT
compilers should narrow the gap, and even full-blown compilers are likely.]

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.

7. The Web-centric orientation also fits in closely with Cypherpunk-type
plans. Who will do the first remailer in Java? Remailers operating on Web
sites? (For example, where a browser connects to a site, picks up messages
marked as being for him, or perhaps picks up (copies) all messages, and
then runs an applet to PGP-decrypt, then deposits the outgoing messages at
another Web site....just a possible approach.)

8. Personal note. I've had a version of Smalltalk called "Smalltalk
Agents," running on my PowerMac. Lots of problems, with support and with
the limited number of other users...essentially, no other users to talk to,
no books, little documentation, sub-critical mass. And, worst of all, I
know that anything I write will not be usable by others, unless they have
Smalltalk and can successfully port over to their version of Smalltalk my
program. Not likely, of course. (Where some of these big packages fit
nicely is in large apps, such as air traffic control systems, reengineering
of legacy code, etc.)

So, I was faced with a heart-rending choice: get an Intel box, put Linux on
it, and try to "get in the mainstream" by writing something in Perl, or
TCL, etc. (Though I note that the early success with writing remailers in
Perl has not been followed by any other stunning applications of a
similarly revolutionary nature...and I don't know of anybody doing anything
Cypherpunkly-interesting in TCL, for example.)

However, it now appears that the definition of "in the mainstream" is
changing, so that Cypherpunkly-interesting applications need not be
confined to C or Perl programs running on Unix or Linux boxes! Rather, it
looks like Java applets running on various platforms will be able to lever
most of the same advantages. (Modulo some other issues; I'm not, for
example, claiming that my opportunistically-connected PowerMac, connecting
at 28.8, will be the equivalent of a SPARCstation running the usual
complement of tools.)

9. I won't comment here on the various other claims about Java, about
safety and security features. Improvements will be made, either in
forthcoming fixes and releases, or in extensions such as "E" (Electric
Communities, having several Cypherpunks as members, including Doug Barnes,
Jim McCoy, others.). I don't know if these "extensions" will hurt the
language, as it sort of depends on how the extensions are handled, how
widespread the extensions become, etc. (Not being versed in "E," I can't
see why the extensions aren't handled as a another class library, or
automatically downloaded with any applet that needs the extensions....if E
must be a separate package, then of course it must be in the various users'
systems, and getting this kind of "buy-in" by the browser makers may be
problematic.).

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.)

11. I was in the Homebrew Computer Club, the _legendary_ Homebrew Computer
Club, in the mid-70s. (I several times handed out free samples of Intel
8080s, which I was working with at the time...)

Not since then have I seen the same level of opportunity. I've seen a lot
of hyped fads come and go. This one may be hyped, but it looks very real to
me.

The Web was obviously of incredible importance as a self-publishing medium,
and its importance can scarcely be overstated. But in terms of Cypherpunks
sorts of goals, which require more than just self-publishing and expanded
channels of communication, the Web was lacking in terms of active objects,
programs, etc. that could be deployed by programmers.

Java and the things related to it appear to be the tools necessary to
really spice things up on the Web. (And by "spiced up" I don't mean dancing
logos on Web pages!)

12. So, there you have it. I see great opportunities for us. A set of class
libraries for Java, and a set of Java applets, could be important. (Wei
Dei's crypto library is extremely well-regarded here, but the pieces are
not being integrated into new, higher-level building blocks....lots of
issues here.)

13. In any case, I have no real interest in the Zundelsite vs. Southern
Poverty Legal Whatever, nor the other such rants, so I am immersing myself
in this area.

(The archives should reveal my articles about "the ontology of money," a
topic Bob Hettinga and others have also talked about, and this is one of
the places I would like to go with this Java business.)

14. There are a _lot_ of resources on Java. Many Web sites, many papers,
many FAQs, many, many things. Search engines will reveal vast numbers of
hits. This is the first major introduction of a language since the
explosion of the Web, so it may be that many or most people rely on the Web
almost exclusively for documentation.

There are also several implementations of Java. The JDK (Java Development
Kit) is bundled with several available books on Java. Consult your
bookstore. I'm using a slightly-crippled version of "Roaster," a Mac
development package from Natural Inteligence. (The development tools will
differ from platform to platform, naturally enough.) Other Mac versions,
from both Metrowerks and Symantec, are coming (or are imminent). I'll say
what my experiences are with the more-final versions.

I believe usable development packages for Windows are cheap or free, and
even Symantec's "Cafe Lite" is in the $100 range. Thus, it's easy to get
started.

My wager is that more students and others will learn Java over the next few
years than have learned C++ in the past ten years.

15. Your mileage may vary.

Enough for now. I now return control of your monitor to your regularly
scheduled political debate.


--Tim May

Boycott "Big Brother Inside" software!
We got computers, we're tapping phone lines, we know that that ain't allowed.
---------:---------:---------:---------:---------:---------:---------:----
Timothy C. May              | Crypto Anarchy: encryption, digital money,
[email protected]  408-728-0152 | anonymous networks, digital pseudonyms, zero
W.A.S.T.E.: Corralitos, CA  | knowledge, reputations, information markets,
Licensed Ontologist         | black markets, collapse of governments.
"National borders aren't even speed bumps on the information superhighway."