Slashdot Mirror


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?"

8 of 1,782 comments (clear)

  1. who cares what he says? by bwy · · Score: 0, Flamebait

    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.

  2. promise by gnudutch · · Score: 0, Flamebait

    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!!!

  3. Re:Why is Java Considered Un-Cool? by Darth+Maul · · Score: 0, Flamebait

    Amen! There are two reasons why I simply HATE Java.

    1) The stupid $CLASSPATH. Since I don't do a lot of Java work, I don't actually set this stuff up in .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 ;).

    2) No pointers. Real programmers know how to use memory properly. That is all.

    --
    --- witty signature
  4. Re:a few reasons by skaffen42 · · Score: 0, Flamebait

    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.
  5. Re:Maybe because it's slow ? by banzai51 · · Score: 0, Flamebait

    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.

  6. Re:Well... by RLW · · Score: 0, Flamebait

    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.

  7. Re:Well... by RLW · · Score: 0, Flamebait

    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.

  8. Re:Well... by RLW · · Score: 0, Flamebait

    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.