The whole thing strikes me as some kind of weird ad hominem attack on an anthropomorphised foe, with an out of "but I don't know Java, so what do I know" (I'm only Paul fucking Graham).
He says "No one loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their languages. I've never heard anyone say that they loved Java.". Putting aside the objection that loving Perl is a clear sign of mental illness (ducks) I'm sure that back in 2001 I absolutely loved Java and still do to a degree, though Clojure has taken the top spot.
Being a Lisp guy, PG doesn't understand why Java mattered back in 2001.
Quite simply, because the alternative was C++, or, heaven help us, C. Where I was working, we were doing cross-platform C++, with GUIs, and Java was a godsend. Java showed that you could get portable GUIs with performance in the right ballpark without all the incidental complexity of complex build toolchains and manual memory management. A whole slew of errors caused by manual memory management went away. No more corrupted heaps because someone in your team had a brain fart. No more segfaults and a blank screen where your running app used to be.
Graham asserts that Java being a simpler C++ was a downside, but out in the real world where your teammates are fallible, Java let you get things done without requiring perfection.
"This essay developed out of conversations I've had with several other programmers about why Java smelled suspicious. It's not a critique of Java! It is a case study of hacker's radar."
Many of these points strike me as negatives from the point of view of a hobbyist/passion project, but positives from the point of view of the management of 'enterprise' software development. (Precisely where Java thrives, of course.)
Yes, Java is designed by a committee in a corporation (with a nod to the language's community). Java is explicitly designed not to rock the boat with adventurous new ideas, but instead to be familiar to all programmers, no matter how skilled.
If your job is to oversee a large, long-lived software project, these are points in Java's favour.
I wonder, how much of PGs point apply in 2019. This article seems very old, and I would honestly be surprised, if anyone would choose Perl over Java in 2019. its one think to hack and totally another thing to build production quality system where people are depending on it.
Yes, I'm saying this never happens. Clever hackers get four feet of space in a noisy open office and a JIRA backlog. Well-connected MBA's get CTO positions.
2001 was a silly time. Obviously, in any domain, there are times when we must judge a book by its cover for sake of there being only so little time in the world; but it seems so bizarre - well, maybe not bizarre for Paul Graham, but whatever - for someone to write this long-winded article talking about why "XYZ technology I've never used sucks." (Of course, Java sucks IMO, but this is a very poor critique)
I find it amusing Paul regards C's origins as being "hacker" and Java being apparently not. How exactly was Java's original design (as Oak) by James Gosling that much different under the circumstances by which C was developed by Dennis Ritchie when Bell had been reworking PDP-11 UNIX?
Yeah, I'm also curious about how ruby would have faired. 15 years ago it was sillycon valleys poster child (but without being too harsh was actually a very good citizen and had perhaps had the best open and active community the internet era may have seen to date). It had many of the points corrected that have been outlined without stupid amount of corperate support java/.net have seen
For many of us it was a synonym to a very slow runtime and being the Rails' language.
So why throw away the performance and graphical tooling of Java/.NET, when they shortly thereafter also got their Rails inspired frameworks?
Personally having used an AOLServer inspired framework during the .com wave, meant that Ruby wasn't something I felt to be usable in production at scale, without wasting resources making it fast.
Java will be cool with me again when enough time has passed to get better OpenJDK 11+ support. Nothing is worse for my OCD than installing Spark and Hadoop and having to install an old version of Java.
Funny. PG is right on every point (and most of his criticisms hold true today), yet Java still became one of the most succesful programming languages ever.
He says "No one loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their languages. I've never heard anyone say that they loved Java.". Putting aside the objection that loving Perl is a clear sign of mental illness (ducks) I'm sure that back in 2001 I absolutely loved Java and still do to a degree, though Clojure has taken the top spot.
Being a Lisp guy, PG doesn't understand why Java mattered back in 2001.
Quite simply, because the alternative was C++, or, heaven help us, C. Where I was working, we were doing cross-platform C++, with GUIs, and Java was a godsend. Java showed that you could get portable GUIs with performance in the right ballpark without all the incidental complexity of complex build toolchains and manual memory management. A whole slew of errors caused by manual memory management went away. No more corrupted heaps because someone in your team had a brain fart. No more segfaults and a blank screen where your running app used to be.
Graham asserts that Java being a simpler C++ was a downside, but out in the real world where your teammates are fallible, Java let you get things done without requiring perfection.
People who hate on Java lack context.