LWN.net Logo

Hacks

Hacks

Posted Oct 21, 2005 15:24 UTC (Fri) by doodaddy (guest, #10649)
In reply to: Hacks by Richard_J_Neill
Parent article: Technologies to Watch: A Look at Four That May Challenge Java's Development Dominance (O'ReillyNet)

"As far as I can understand, the "big deal" about Java is platform independence."

I have several Java coding friends and I've read a book on it twice (but had no need for it). I don't think platform independence matters now. Its a good seller up front, but I haven't heard anyone claim how nice it was to port from Sun to Windows or the like.

The biggest seller, at least by listening to the comments, is "no pointers." While they are there and ready to cause trouble, atleast there are no memory leaks (at least theoretically.) I think this is important because the coders I know that use Java did NOT make computer science a calling. They fell into it and it pays well. And it must be comforting to have a language that you can get hired using, for big bucks, without any deep knowledge of "scary things."

I think the next big seller is momentum. There are more jobs in Java (again, high-paid jobs) than in C++, for instance. Notice that almost all of them are IT projects at both big companies and start-ups. Most of which fail. But who cares about that? I think the failure rate is tied to lack of deeper understanding about software engineerings in general in this knee-jerk Java shops.

Then the next big seller is a forced, huge library. (Another friend always said that what people really want in a government is a benevolent dictator.) Java says that its libraries are complete, required, and beautiful. Many are fine, some are long winded. (There are some definite "collegiate"-type projects-turned-library in there, such as the io stream stuff.) But there is something to say for knowing which toolkit to memorize! You can't really say that C/C++ has a definite thread library, less alone an HTTP or XML library that is official. (Please avoid thinking about Java's GUI toolkit which has about 3 "official" versions.)

And finally, I agree that we have not just an "object obsessed" language (I like that name by the way), but an object obsessed programming culture!


(Log in to post comments)

Hacks

Posted Oct 28, 2005 3:05 UTC (Fri) by ttfkam (subscriber, #29791) [Link]

"...but I haven't heard anyone claim how nice it was to port from Sun to Windows or the like."

Most likely because the "port" only involved invoking the JVM on a different system. 99.9% of all programs, as long as they don't use native code, require little or no code changes at all. I know mine haven't. Talk to servlet and J2EE developers as to whether it matters to them what system their code runs on.

Not having (explicit) pointers is definitely a selling point. The C++ standard library is definitely an improvement, don't get me wrong, but the memory leaks and buffer overflows reported by SANS and CERT are a testament to the fact that it's not enough.

As for education, I know far more than a few C programmers that never took the CS/CE path. Hell, I've met more than a handful of CS graduates who can't code well at all. CS is an applied mathematics degree, not a programming degree.

Moving on, the "huge" standard library is indeed big, sure. I, for one, am glad of it. Where is the uniform API for XML and XSLT in C++ so that you can swap out implementations without having to refactor your whole project? JDBC long ago outstripped ODBC in the ease of use department. And it's not like bare CORBA is a fair match with a full, clustering J2EE suite. Are there warts? Sure. AWT/Swing comes to mind. The original I/O library was a big weak. However, having a single, easy to reference and use API for TCP/IP and data I/O should not be ignored.

Java wasn't popular because its APIs were perfect. It was popular because the better alternatives to many of its APIs were harder to use, more error-prone, or simply nonexistant.

Java didn't invent the automatic documentation from code generator Javadoc. That concept had been around for a while. But you must be blind if you didn't notice that the practice became commonplace after Java did it. You probably balk at the size of the API library represented at the following URL: http://java.sun.com/j2se/1.5.0/docs/api/

Me? I balk at those languages that lack it.

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds
Powered by Rackspace Managed Hosting.