Sponsored link Serve your customers, not your servers, with VERIO Linux VPS. Full-access test-drive here. |
HacksHacksPosted Oct 20, 2005 23:33 UTC (Thu) by bronson (subscriber, #4806)In reply to: Hacks by ncm Parent article: Technologies to Watch: A Look at Four That May Challenge Java's Development Dominance (O'ReillyNet) Java's designers positively delighted in bolting on elaborate, obligatory apparatus, with a nod to intended function but with most actual usefulness trimmed away. That is the single best description of Java I have ever heard.
(Log in to post comments)
Hacks Posted Oct 21, 2005 1:02 UTC (Fri) by Richard_J_Neill (subscriber, #23093) [Link] I prefer to think of Java as not so much "object-oriented" as "object-obsessed". I mean, why does a string have to be an object rather than a data type? Personally, I prefer writing Bash scripts to Java.
As far as I can understand, the "big deal" about Java is platform independence. Except that is isn't really. And if you have an open-source application, who cares about compatibility of *binaries*.
Hacks Posted Oct 21, 2005 3:41 UTC (Fri) by mdaniel (guest, #33232) [Link] As far as I can understand, the "big deal" about Java is platform independence. Except that is isn't really. And if you have an open-source application, who cares about compatibility of *binaries*. The "big deal" about Java's "platform independence" is the common "processor" and libraries against which you code. You think OpenSource cured the notion of compatibility? Tell that to the autotools folks, who have built an empire stringing m4 macros and shell together to determine what kind of strcat you have on your flavor of *nix. The funny thing is that I'm not a Java zealot; I agree with the ancestor's comment that Java is bloated and exceeeeeeeedingly verbose. That does not, however, compromise that Java provides a common vocabulary (I mean that in terms of the language and especially the libraries) for some of the most powerful and maintainable server-side software I've ever encountered.
Hacks Posted Oct 21, 2005 8:05 UTC (Fri) by BrucePerens (subscriber, #2510) [Link] Java was intended to be a language for developing client-side code. Perhaps part of the mis-fit we see is because its main occupation today is converse to the one for which it was designed.Bruce
Hacks Posted Oct 21, 2005 15:12 UTC (Fri) by mdaniel (guest, #33232) [Link] Java was intended to be a language for developing client-side code. Perhaps part of the mis-fit we see is because its main occupation today is converse to the one for which it was designed. With all due respect, something like Jini is what Java was intended to do: network-transparent, device-independent, "roaming" code [think of your fridge telling your PDA that you're out of bread]. The fact that people used it for dancing monkeys when it first came out doesn't make James Gosling any happier than it makes you or I.
And I just said it's verbose, not that it's poor at doing its job. It enables a lot of strong software engineering practices very well. I use this example with my cow-orkers a lot: you have ten seconds to tell me what file contains the class
Hacks Posted Oct 21, 2005 15:24 UTC (Fri) by doodaddy (guest, #10649) [Link] "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!
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.