Hacker News new | past | comments | ask | show | jobs | submit login
Java's Cover (2001) (paulgraham.com)
21 points by vminkov on Dec 18, 2015 | hide | past | favorite | 40 comments

No one loves it. C, Perl, Python, Smalltalk, and Lisp programmers love their languages. I've never heard anyone say that they loved Java.

- You must be kidding me, ever been to any JUG meeting or JavaOne conference? There are millions of hardcore Java lovers at those places. Java has one of the the biggest developer community world wide. I love Java - it's one of the best programming language till date.

To be fair, this was written in 2001- so things have changed some. But I will sort of agree with PG here. I write a lot of Java code. Primarily I write Java, then C#, PHP, C, and Python in that order. There are things I LOVE about C#, PHP, and Python- some of them are more about frameworks than the language itself, but either way... There's nothing I LOVE about Java other than it is MUCH easier to write web application/service code that is destined to be deployed to different environments/hardware. If C# had the portability of Java, I would never write another line. If Python had a few more things in the ecosystem, I might think about starting more projects in that language. PHP and C# are our go to ecosystems when we need something done with reasonable performance, for a reasonable price, in a short amount of time. Java means, by default, we're doubling our costs because we will either need more team members, more time, or both.

Hear, Hear! A Java fan here.

me too: I love Java.

So pg predicts that hackers are going to hate Java. Hackers mostly hate Java. Because of this, pg predicts Java will be unsuccessful. Java's actually pretty successful. This is kind of sobering. Possibly we overestimate the social influence of hackers.

There is a big difference between hackers and professional programmers. He is clearly not talking about the latter.

I'm confused about why you think I thought he was

I know it custom to bash java on HN, but personally I like java. I don't mind the verbosity - a decent IDE will handle that.

"Historically, languages designed for other people to use have been bad: Cobol, PL/I, Pascal, Ada, C++."

In what sense was C++ designed for other people? IIRC Stroustrup came up with it to use on his own research projects.

C++ is the classic design-by-committee language. However it started it, it's far from one person's design now and hasn't been for decades.

Looks like he was wrong.

> Bear in mind, this is not a critique of Java, but a critique of its cover. I don't know Java well enough to like it or dislike it. This is just an explanation of why I don't find that I'm eager to learn it.

I think this post proves two things: a) "books" are in fact very difficult to judge by their covers and b) predicting the future, even only a decade ahead and in an industry you live in, is a fruitless endeavor

Well, apart from his prediction that it wouldn't be a very successful language, his analysis still seems pretty accurate...

And one has to grant Java this: it has matured a lot over the years. Even has lambdas now! ;-)

Still to this day I do not get the big deal about lambdas. Can someone please explain?

I have mixed feelings about Java.

Reflection made one tricky part of a project very easy. I still love how elegantly it turned out. The type system is... I used to think it was really good, now I'd just call it "OK". JNI is useful for getting certain things done, but the syntax is gouge-your-eyeballs-out awful. Checked exceptions are very useful if you are serious about error handling, and a royal pain if/when you are not.

But the thing that was great about Java, to me, was the library. It was like Barbie - it had everything. I'm just talking about the standard Java library here.

Then you get into the other libraries - Spring and J2EE frameworks and Hibernate and so on, and the XML configuration files multiply. They do great things, but if you have to change what they do, you have to change some setting in some XML file, which uses some syntax that you don't know, and your job is to figure out which XML file and which setting and where the documentation is, and you just go insane. I understand why people loathe that environment.

Well, this isn't very good. "No one had to promote C, or Unix, or HTML"? Really?

I tend to find his essays much less interesting and persuasive now than I used to. I'm not sure why.

Shows that his "radar" is pretty crap. His hunch that it wouldn't be a very successful language didn't turn out so well.

Wonder what life would have be like if instead of Java, it was Go that appeared in the 90s...

Concurrency would be a little bit easier. Not much else would have changed.

as a Java programmer who has tried Go, I disagree

"the less one knows, the wiser one is"

I don't see how you reach that conclusion. It's possible that posessing some knowledge may lead to overconfidence, but that too is a problem with a lack of knowledge - knowing the limits of your knowledge. Knowledge is always beneficial to a rational agent.

Note: 2001.

Spot on. Java is such a sad language, so verbose, so cumbersome, so inexpressive, radiating such a condescending stupidity. Its pervasiveness today, at the end of fucking 2015, is just depressing.

You do realize, it's actually pretty good... otherwise it wouldn't be as "pervasive" as it is... (there's hundreds of programming languages, yet Java continues to be one of the most used)

>.. otherwise it wouldn't be as "pervasive" as it is.

There are plenty of reasons why we could suppose it is pervasive without the language overall being very good compared to other languages. Entrenchment comes to mind immediately.

It can also be that a language is great for a period in history.

Haters gonna hate no matter how many reasons you give them. Java is the #1 language out there.

No, I do not realise that. Popularity doesn't equal quality. Summoning Paul Graham again: http://paulgraham.com/pypar.html

Sustained popularity means it's language that solves a lot of problems for a lot of people.

if you have to work with a framework of corporate pick in java it usually turns into an ugly mess really fast because many of them came from a decade of crazy soft coders which decided to put everything in xml whether it made sense or not

otherwise it's a very good language if you get to pick which libraries to work with, has some of the best tooling out there and has matured enough to let dev do what they need to do (like having first citizen memory mapped files, heck, it did non blocking i/o before it was cool and still people think node is radically different because of it)

Agreed, enterprisy patterns haven't helped Java. But sorry, no, I do not think it's a good language. It doesn't really do anything well, it's all luke warm and compelcted. It insists on types, but they have no power and are primarlily a typing (sic.) and visual nuisance. It's supposed to be object oriented, but it has primitive types for performance reasons that appear anachronistic today. Yet it insists on everything being a class and thus prohibits simpler data structures. Its support for functional programming is cumbersome and late to the game. Etc.

There are so many better alternatives on the JVM now — Coljure, Kotlin, Scala.

I agree on types and functional implementation being sucky, but simpler datatype are definitely in, just need some imagination

a struct, by any other name:

public class Point {

   public int x,y;

you can even do binary packed stuff with some fantasy

public class PackedRGBA{

   private long v;

   //following getters and setter bit shifting


It is actually not a bad language and with an IDE like Eclipse or inteliJ you can be quite productive. Sure, they've screwed up majorly a couple of times like inventing JSP and going a bit overboard with J2EE. Overall it is not bad.

"It is actually not a bad language and with an IDE like Eclipse or inteliJ you can be quite productive."

Just as the guy with two broken legs can get around a little bit using a wheelchair. Yes, the wheelchair might be great, but the poor bastard still can't dance.

  This is related to my wheelchair, I suppose. Just
  because I can't walk, people would ignore me when
  making plans to go dancing or maybe even just go for
  coffee. The place probably isn't accessible or they
  think, what would a girl who can't walk do when we go
  clubbing or dancing? Honestly, I dance better than
  you, and I'm only moving my upper body.
By Virali Modi, Paralyzed since 2006.


EDIT: It took a couple tries to get the formatting write. Anyway, I'm just saying that 1) You shouldn't just call people in 'poor bastards', and 2) There are people in wheelchairs who can dance well and enjoy it a lot.

Your comment history indicates you're a Javascript programmer. No comment.

I really love those endless entertaining bashy discussions about the most widely used programming language in histoty. You hatefull guys out there would not even be able to use your credit card for making a single checkout, your bank would not be able to do a single transaction, your online experience would simply not be existent, but no problem, you would not notice because you would have no phone in your pocket to consume all this irrelevant stuff, made with a robust, highly optimized and reliable language...Sure Java is no beauty, it is sheere Power...powering an immense part of the digital world we live in. please stop whining an face one of the most advanced pieces of information technologies ever. it is here to stay. P.S.: without Java your favourite toy would be named only "Script" ...would be sad, wouldn't it? ;-)


I wish, but unfortunately I do backend work in Java as well. The relative expressiveness and simplicity of JavaScript saves me from Stockholm syndrome, I guess. But still... Every time I touch Java I have to puke a little in my mouth while tears of blood roll down my cheeks and my soul dies a little. The horror.

Speaking of radiating condescension...

Applications are open for YC Winter 2022

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact