Java: Slow, ugly and
irrelevant
The programming language once hailed
as a revolutionary breakthrough is no substitute for simply training
good programmers.
By
Simson Garfinkel - - - - - - - - - -
January 08, 2001
| I hate Java. As a programmer, I hate Java, the language,
for what it has done to the field of programming. As a journalist, I
hate the relentless hyping of Java by its supporters, as well as
their unending excuses as to why Java has failed to deliver. And as
a technologist who has been involved with three major projects that
have used Java, I hate the complications that Java has caused.
I will concede that it is possible to use Java to
create small applications that are downloaded over the Web and run
within Web browsers. Over the past month, I've actually run into two
such Java-based applications that worked pretty well. The first was
a Java-based mortgage calculator that dramatically shows the
financial advantage to pre-paying your home mortgage -- paying just
$50 extra on a $733 monthly mortgage payment can save you $40,196
over the course of an 8 percent, 30-year loan. I was also
particularly impressed by the Yahoo Finance Java-based portfolio
manager, which lets you rapidly compare a large set of stocks using
dozens of different variables.
But such examples are exceptions rather than the
rule. The vast majority of the high-profile attempts to use Java to
create major desktop applications have failed. The reasons are
straightforward. Java hype is built on the promulgation of two Big
Lies. No. 1: Java is as fast, or faster, than other programming
languages. And No. 2: Java is "portable" -- it is "write-once,
run-everywhere" -- in other words, a Java program can be written
once and then run on any kind of computer or operating system. But
five years after Java's introduction, it is still slow and
cumbersome, and not only has the "write-once, run-everywhere"
promise not been delivered on, it's also turned out to not even be
necessary.
Java is far from even being the first attempt at
portability. Let's not forget that the original motivation behind
the C* language, way back in the early 1970s, was to create a
portable computer language. The theory was that a programmer would
be able to take a program written in C and be able to run it on
different computers simply by recompiling* the source code. And to
this end, C has been tremendously successful. I have many programs
that can compile and run on Windows, on Intel-based Unix
workstations, and even on Sun Ultra-SPARC servers. One of the
advantages of Java over C was supposed to be that programs would be
able to migrate from computer to computer without having to be
recompiled. But while the portability works most of the time, Java
is not, and never will be, a replacement for C or its successor
C++.
The creators of Java tried to make a better C++.
But they ended up with a language that is ugly, hard to read and
that requires an inordinate amount of typing because of a variety of
pedagogical restrictions imposed by Java's creators. They ended up
with a slow mess. Next
page | Java's
history is littered with failure |