4 ms·
I am confused by the point that the author is trying to make. Perhaps someone could clarify? The argument seems to be: 1. It took 2--5 years to add lambdas
by socratic 15y ago
I am confused by the point that the author is trying to make. Perhaps someone could clarify?
The argument seems to be:
1. It took 2--5 years to add lambdas to Java.
2. Therefore, Java is like a comb-over. It's old and trying unsuccessfully to cover up that it's long in the tooth.
3. (Possibly?) Java programmers should not program in Java.
I'm not sure that any of these things follow, or if they do, that they have anything to do with Java specifically.
At this stage, Java has existed for 15 years. Once a language has seen serious adoption by regular programmers for a decade, it obviously becomes very difficult to change (for training, IDE, etc. reasons). It's also unclear if programmers of the language necessarily want it to change.
Now, let's be clear. I absolutely despise Java for a variety of aesthetic reasons. I'm as happy as anyone else to have a chance to make fun of it.
However, if we look at C standards, there's C89, C99, C1X. C++ standards, there's C++98, C++03, C++11. These languages, used by millions of programmers (and with very similar syntax, feature set) change every 5--10 years. What exactly is special about Java? Why is the headline here anything other than: "Java: Used by millions, evolves similarly to similarly popular languages used for similar applications"?
- mechanical_fish 15y agoNo, you've completely misinterpreted the argument. The fundamental problem is that this essay isn't really about Java. Java is just a handy example. The current title of the actual essay ("Software's Receding Hairline") is a much better one than the one here on HN. It looks (from the URL) like the essay has been retitled? That was a good choice, and that retitling should be reflected in the HN headline as well. I don't believe that the essay ever suggests that Java programmers should not program in Java. Indeed, it explicitly suggests that you should avoid making harsh judgements on people with combovers!
- socratic 15y agoThe retitling is definitely useful information. I didn't notice that! However, you seem to have forgotten to explain the actual argument. Is the actual argument that sometimes some software, which may or may not include Java, asymptotically becomes old or bad or unchangeable, but that's OK?
- mechanical_fish 15y agoLet me confess: I'm failing to rephrase the argument because I'm not sure it works. ;) I see three threads in this essay, all of which are basically correct: A) Some software is like a combover, in that it starts out great, but gets gradually uglier, but the ugliness grows so slowly that it never stands out as an urgent problem so you never really confront it. B) If you postpone confronting a problem in software it just gets harder and harder to fix when you eventually do confront it. C) Java has now spent, like, fifteen years without lambdas, so adding them now is extraordinarily painful. ... but I can't justify the implied connection between any of these threads. A and B are disconnected threads because combovers don't really become more difficult to fix over time. Whether you notice your combover on the day you lose your first three hairs, or ten years too late, the solutions are the same and are pretty simple: Get a better haircut that doesn't try to hide your baldness, shave yourself bald and embrace the baldness, or buy a hairpiece. This is quite unlike the way software works -- most of real life is quite unlike the way software works; that's why programmers always feel misunderstood -- so the metaphor just breaks here. Better be sure to abandon your metaphor before this point. ;) And A and C are disconnected threads because, while some projects have the combover nature, I don't really think Java is one of them. Combovers happen slowly, below the radar, but the "problem" of missing lambdas didn't slowly creep up on Java's designers: Java is missing lambdas because its original designers deliberately left them out. (What, you're going to claim with a straight face that a team with Guy Steele on it just accidentally forgot about closures?) The world has changed around Java, such that it now seems like a good idea (to some people) to add closures after all, and the language is certainly well into middle age and therefore hard to change, but this isn't really a "combover" situation.