I tried to let this thread expire without getting involved but I simply
can't
stand it anymore.
His articles got me so worked up that I wrote him back personally. Probably
inundated with mail from upset readers, he never responded to me.
First of all, when someone makes a blatant claim that "Language X is not
fast",
I'd like to see it backed up with a benchmark of some kind. Otherwise,
you're
just blowing smoke up my ass and I don't take your claims seriously.
Furthermore,
however fast, I'd argue that Java has yet to realize a fraction of it's
potential. It's a
well designed language currently being judged on the various available
implementations
which I find to be suboptimal.
Currently, most of the optimization effort has been expended in order to
improve Java
at runtime rather than at compile time.
I've dug into the byte code and from what I've seen, current Java compilers
perform
little or no optimization whatsoever. Even minor optimizations such as dead
code
elimination and constant folding are seemingly omitted. For example,
public void foo()
{
for(int i=0;i10;i++)
{
}
}
actually gets translated into byte code that increments a counter 100,000
times. Stupid code? Yes! However there's many scenarios where this type of
situation is even more costly and extremely subtle. My point is that there
is lots of room for improvement.
Secondly, he states that "Java is not portable". Hmmm...no concrete
examples
to back it up. I sit and think about my work situation. We have a group
split
between 30 developers with Windows and Unix expertise. Some people develop
on unix, some on NT. Everything is centralized into the unix platform where
it is run and tested. Since it's Java, it shouldn't matter which platform it
runs on.
From what I've seen in the past 3 years, it doesn't. I have yet to see an
issue
arise from java portability issues. Chances are that he's based his opinion
on heresay
which in turn was based misinterpretations of incompatibilities which arose
from
incompatibilities in various versions of the JDK (due to bugs or due to
documented
JVM evolutionary changes) rather than real honest to goodness JVM/byte code
incompatibilities between platforms running identical versions of the JDK.
Later he states:
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.
I don't even know where to start here. How about, "they did make a
better C++". You can't simply write C code, replace stdio.h with iostream.h
and use cout in lieu of printf and call it an object oriented C++ program.
The lack of code proliferated with #ifdef, #elif and #define probably
threw him for a loop as well.
It also sounds like he didn't like typing System.out.println(), cout is
admittedly
shorter, however, the convention makes alot of sense in the greater scheme
of things. The Pedagogical restrictions probably refered to silly little
policies
like type safety, exception handling, and naming your class and file name
identically. While these enhance portability and maintainability in large
development efforts, I'll admit that yeah, it can be a bit cumbersome to
do the right thing -- there's no glory in writing exception handlers. It
does,
however, lead to better code.
Further down he states:
The truth is that most businesses didn't need Java's promise of
"write-once, run-everywhere."
What planet is this guy from? From what I've seen, every company needs
this kind of capability. In this era of musical business partners and
constantly
merging/splitting corporations, the need for portable code is at an all time
high.
Java enables this. In addition to it's benefits in integrating dissimilar
systems
it gives you are larger base to hire from. Rather than searching for a
"Unix guy who knows language X" or a "Windows guy who knows language
Y", you can simply hire "A guy (or lady) who knows Java". It really does
bring in a larger flow of resumes.
Anyway, sorry to continue this off topic post, but I had to vent a bit of
the
frustration I experience in reading this article.
- Pat
- Original Message -
From: "Alex Fernndez" [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Sent: Monday, March 05, 2001 6:23 AM
Subject: Re: Mrs. Robinson...
Hi folks.
The follow-up is even more ludicrous than the original article. Mr.
Garfinkel
argues that only server-side programming can be successful, while right
now Java
is coming out of age and there are good, big applications being written.
Just look
at
http://www.togethersoft.com
and
http://www.merant.com/products/pvcs/
for a taste. Both Together/J and Version Manager are excellent
applications in
their families, and I should say faster t