Observations on Java: 99% business, 1% numeric
David Hough validgh business
validgh
Tue Jul 15 17:57:06 PDT 1997
Prof. W. Kahan delivered the Von Neumann Lecture today at Stanford; his
slides are at http://www.cs.berkeley.edu/~wkahan/SIAMjvnl.ps in a form not too
different from those used in the lecture.
Some of his slides addressed Java numerics issues that we have discussed
recently on this mailing list. Reflecting on them I've come to the conclu-
sion that the underlying problem here is one of marketing communication.
What follows is my personal opinion and may not reflect that of anybody else,
and addresses business issues primarily and numerical matters only in conclu-
sion, because...
In the larger scheme of things, numerical issues are irrelevant to Java.
Java is about who controls corporate desktop computing, and spreadsheets are
about as numeric as that gets. Microsoft and its allies, on one hand, and
IBM-Netscape-Oracle-Sun and their allies on the other, are both willing to use
technical arguments for convenience, rather than from technical conviction.
The public and the press often get confused between the substance and the
facade.
This confusion has been augmented by divergent messages coming from both
sides, but I have better visibility of those coming from the anti-Microsoft
side. I've noticed about three messages:
Message 1) Java is the language of platform-independent computing
This was the original idea of the people who invented Java, and refers
more to the API's for graphics and databases than to numerical computing
issues, so the inventors decided to eliminate one source of gratuitous
variation and distraction by standardizing arithmetic in a novel way,
which however seems to be observed as often in the breach, and that's
likely to get worse as native-code Java compilers proliferate. From the
point of view of this message, native Java compilers that optimize pro-
grams for specific platforms are worse than useless because the results
are no longer portable. The Java Virtual Machine byte code definition is
more important than the Java language itself in attaining portability.
The Microsoft side presumably has no use for this message, since Micro-
soft had already provided platform-independent computing for all the platforms
that interest them (Windows 95 and NT).
Message 2) Java is the answer to every maiden's prayer
This is the implicit thrust of a lot of Sun's mass-market advertising,
and implies that every every program worth writing is worth rewriting in
Java. It's a simple message to obtain mindshare of people that
wouldn't understand technical details. Its inherent divergence from
the first message, at least for numerical computing, is usually recon-
ciled by hopeful assertions that just-in-time compilers will make Java as
fast as C, C++, and Fortran in a few months. Such assertions are non-
sense in numerical computing, where the difference between optimal
instruction scheduling and and nearly optimal can easily be 2X perfor-
mance, and even getting nearly optimal is a project extending over years
rather than months, but that doesn't seem to matter to marketing message
masters.
The Microsoft side probably likes this message, because all it needs to
do is get the mass market to associate "Java" with "Java as extended by Micro-
soft" and then it can reap the benefits of this message.
Message 3) Java Computing is the future
This message doesn't really have anything to do with the Java language,
for the language is irrelevant - any modern object-oriented language
could be made to work; the message is about centralized servers and non-
configurable desktops for the corporate market, and talks about the very
real business issue of total cost of the current corporate PC model where
an organization may have 10,000 PC's, no two of them similar in hardware
and software configuration. Of course centralized servers/non-
configurable desktops is just the 1970's model of mainframe/terminal com-
puting, with updated technology but the same political structure. This
naturally appeals to corporate MIS types whose fortunes started declining
toward the end of the 1970's. That decline was brought about by
another very real business issue, namely that corporate MIS departments
were too slow to respond to requests for innovation - and why should
they, there was no competition. Departmental minicomputers and personal
desktop computers changed all that. The good news was empowerment -
groups and individuals could do their own computing on their own
schedules, for the incalculable good of the business. The bad news was
empowerment - groups and individuals could ALSO do their own computing on
their own schedules, to advance their own agendas and careers, and often
do so, and the cost of so doing is quite calculable and appalling.
What's different about Java Computing from the situation 20 years ago?
For one thing, the non-configurable desktops will probably be able to download
spreadsheets and tools for small program development which weren't available
twenty years ago, so it will not be necessary to buy a desktop computer to run
Applesoft Basic and Visicalc. Microsoft would have no problem providing
server-based Visual Basic and Excel, for instance. What remains to be seen is
whether the next interesting innovation will be as readily available from cor-
porate servers to non-configurable desktops. Microsoft might be more con-
cerned about that, because it will be harder to introduce new technologies by
selling one copy at a time to an end user, but that disadvantage turns to an
advantage if Microsoft can control the corporate servers, which is the purpose
of NT. Microsoft and Intel point out that non-configurable desktops don't
need to be Javastations - change the BIOS chip in a corporate PC so the PC
only boots from the network, and you've got a completely controllable confi-
guration. It can be based on Java, or Java extended by Microsoft, or some-
thing else, all without affecting the balance of an organization's internal
politics.
These divergent messages get absorbed by various target audiences who
then come to divergent conclusions - no surprise there! Thus much of the
public and private discussion about Java numerics seems to consist of people
talking at and past each other because they are working from different prem-
ises and toward different goals.
So efforts like Borneo and RealJava are doomed to fail if success be
defined as influencing the official definition of Java on their own merits -
since no amount of numerical merit is really significant in the big scheme of
things outlined above. So they might better define their success to be
defining a new language specialized for numerical computing, and hoping that
it will absorb a small fraction of the Java energy.
Scientific end users who want to register their opinions about all this
can look at http://www.validgh.com/desktop.html and participate in the survey
described there.
More information about the Numeric-interest
mailing list