Why is Java Considered Un-Cool?
jg21 writes "After the Slashdot discussion on Paul Graham's 'Great
Hackers' essay, it had to happen. Java developers have taken umbrage at
Graham's assertion that "Of all the great programmers I can think of, I know of
only one who would voluntarily program in Java. And of all the great programmers
I can think of who don't work for Sun, on Java, I know of zero." Now in JDJ Sachin Hejip pinpoints the Top
Reasons Why Java is Considered Un-Cool and to tries to debunk them. He levels some of the blame at the Java compiler for "too much
chaperoning" and speculates that Java fails the geek test precisely because
"it's such a language-for-the-masses." But isn't he missing the point? Enterprise-grade apps and "coolness" may be inapproriate bedfellows. Besides, does any language offer both?"
A quote like those from Paul Graham and others really don't need a response. He's obviously detached from the real world and has no concept of the hundreds of trade-offs that are required in the real world to build successful systems.
People like this usually last about 5 minutes in a real organization because they either 1. start slobbering uncontrollably on the table or 2. piss managers and business folks off with their horrible geek attitudes.
Java broke a promise a long time ago.
That promise was "write once run anywhere". How is that possible when sun breaks java into several "editions"? When vendors take those and "extend and enhance"?
Java, javascript, jscript, ecmascript, jboss... The list goes on and on.
Straight C with makefiles is more portable now than java. We can program hp calcs with c right? Where's java?
Also their marketing department is high on crack. Java 1.2 = java2? Next up, Java5 ?! WTF!!!
Amen! There are two reasons why I simply HATE Java.
.profile or .cshrc or anything, but any time I want to try to compile it's a matter of mucking around in /usr/java/ trying to figure out what the classpath needs to be. Then, naturally, I'll be using some shell other than CSH and forget how to set the local var ;).
1) The stupid $CLASSPATH. Since I don't do a lot of Java work, I don't actually set this stuff up in
2) No pointers. Real programmers know how to use memory properly. That is all.
--- witty signature
No, no. You didn't RTFA. It's about Java, not C++. :)
People couldn't type. We realized: Death would eventually take care of this.
That's great that you have a toolkit. Now, where are the applications written in Java that don't suck? Oh wait, they still don't exist.
Ok dip shit, I know the difference between an integer and IEEE floating point numbers. Do not presume that you need to lecture me on these points: I've been programming computers since 1972 and doing it as my sole source of income since 1986. I know many computer languages including a few assemblers. Now on to my point.
Logically 3 does equal 3.00. In any reasonable language if one compares the two with a simple equality operator it will return true. The built in operators should promote scalar types until operands are of a compatible type. So in C for instance the equality operator would promote 3 == 3.00 to 3.00 = 3.00. This is a convince. K & R could have said "Wait, let's not do this promotion thing but instead make everyone use a function call syntax to do the exact same thing!". This was extended in C++ to allow non-scalar comparisons so now one can write equality operators to do what ever one wants for a given pair of objects. This allows the developer to use the more intuitive, simpler and more readable operator syntax. The equality operator is nothing more than a function. Maybe you should learn that, Dweeb.
You are truly a condescending bastard.
The equality operator should be used to invoke built in user defined equality functions as in C++. The syntax used by Java is cumbersome and un-intuitive. That was and is my original point. Since the vast majority of comparison are intended to be logical comparisons then the equality operator should have been used for this purpose.
Two points. 1) The equality function can test for some special condition other than equality: this is not unique to the equality operator. 2) The equality operator in Java is inconsistent. For simple types it performs a logical comparison and for classes it performs a pointer comparison. So the correct syntax for clarity and conformity in Java should be 3.compareTo(3.00)
If you've ever been a programmer you would not be afraid of overloaded operators.