> Java is the replacement for COBOL.  Java is popular with management
> because it is above critical mass and thus won't become a dead language.
> It will probably last as long as COBOL has, but that doesn't make Java a
> technically good language anymore than COBOL was.

You're attempting guilt by association. You're right, just because Java
has been happily embraced by those who previously used COBOL, says
nothing about Java's technical quality, positive or negative. Except
maybe that its at least better than COBOL...

Conceptually, Java is really a replacement for C++. As gcj proves, Java
is really just C++ with cleaner syntax, and all the C backwards
compatibility baggage, cruft, misfeatures, and hacks removed.

Really there's three parts to java, that really need to be made clear:

1) Java, the core language. As I mentioned above, I feel Java is just an
evolution of the C/C++, and beats the hell out of them for application
development.

2) Java, the class libraries. The value of a language often depends more
on the libraries available to build on, than on the language itself, and
Sun knew this. Java allows rapid development because SO much stuff is
already done for you. For example, the collections API. On the other
hand, many parts of Sun's API's suffer from severe over-engineering.
Bleh.

3) Java, the implementation. Sun's JVM/JRE is bloaty slow and ugly.
Unfortunately, while there's plenty of open source JVM's, Sun's own
class libraries depend heavily on undocumented native interfaces in
Sun's JVM and can't be used on an open source JVM. This means the open
source world is stuck creating its own set of class libraries from
scratch, and this has been very slow going. Sun's API's are rather
heavily interconnected and often overcomplex, so just cloning it a piece
at a time isn't easy. Just deciding on some open-source standard (and
more posix friendly..) Java API's hasn't caught on...

I think Java's biggest crock is its severe xenophobia, in the name of
cross-platform compatibility. In order to call any non-Java libraries,
you have to go through the slow ugly JNI interface. This is a huge
disadvantage in the open source world, with its large existing body of C
libraries and infrastructure. This also extends to, despite Sun being a
Unix vendor, for some reason Sun went to great lengths to make Java
incredibly NON posix-interoperable or even the least bit posix-friendly.
This has really killed its popularity in the open source world.

Java's been around for what, over 8 years now, and the open source Java
runtimes have only recently become even the least bit usable. Whereas
Mono development has outstripped Java in half the time, plus C# seems to
not have the 'xenophobia' problem. I understand C# lets you call C and C
++ libraries directly without any have-to-write-a-wrapper bullshit. Java
is probably going to lose out to C# as the future native application
development language in the open source world.


_______________________________________________
TCLUG Mailing List - Minneapolis/St. Paul, Minnesota
Help beta test TCLUG's potential new home: http://plone.mn-linux.org
Got pictures for TCLUG? Beta test http://plone.mn-linux.org/gallery
tclug-list at mn-linux.org
https://mailman.real-time.com/mailman/listinfo/tclug-list