From: Gavin Thomas Nicol (gtn@ebt.com)
Date: Sun Mar 12 2000 - 13:00:56 PST
> Its class libraries are out of control. Way too much stuff
> bolted on before addressing the *real* issues. Still not enough
> nuts-and-bolts: native (static) compilation, platform integration... not
enough
> "higher-orderness." Needs more reflection. Needs first-class packages.
Needs
> first-class, possibly generic function objects. (No, the reflection API
> doesn't really do this.) Needs type inferencing and auto-construction of
> interfaces from classes. Needs parametric types.
...
I
have to agree with this. I think the core JAVA language, while pretty good,
has a few warts. I really wish Sun had spent a little more time on the core
language *before* trying to make it into a platform for everything.
JAVA is easy to use, as compared to C++ etc.... it allows for much faster
development. That said, it is all too easy to design applications that
really
don't performs well. You *can* design very scalable server software in
JAVA, but it requires roughly the same amount of thought as designing
a good CORBA based system does.
A pretty good example was a project I was slightly involved with: the folk
on
the team did a quick performance comparison and found JAVA acceptable (about
10-15% slower than C++). Problem was, they didn't really test method
invocation,
and especially method invocation through interfaces. Even with some of the
good JIT's that are around now, this is *much* slower (sometimes up to 7x
slower)
than the corresponding C++ call (call to a virtual abstract base class).
I've
seen a similar thing with threading... people use threads willy nilly
without
thinking through the design.
JAVA is a great language for prototyping, but at the end of the dat, good
application design requires a bit more than just easy to use tools.
This archive was generated by hypermail 2b29 : Sun Mar 12 2000 - 14:26:55 PST