Settings

Theme

Java's Cover (2001)

paulgraham.com

21 points by vminkov 10 years ago · 44 comments

Reader

suyash 10 years ago

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.

  • manyxcxi 10 years ago

    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.

  • meagain20000 10 years ago

    Hear, Hear! A Java fan here.

MBlume 10 years ago

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.

  • suyash 10 years ago

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

gozur88 10 years ago

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.

jeorgun 10 years ago

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

  • peterashford 10 years ago

    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.

Hermel 10 years ago

Looks like he was wrong.

  • tinalumfoil 10 years ago

    > 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

  • veddox 10 years ago

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

AnimalMuppet 10 years ago

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.

draw_down 10 years ago

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.

peterashford 10 years ago

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

lucidquiet 10 years ago

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

peter303 10 years ago

"the less one knows, the wiser one is"

  • dkbrk 10 years ago

    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.

AnimalMuppet 10 years ago

Note: 2001.

erokar 10 years ago

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.

  • Alupis 10 years ago

    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)

    • 27182818284 10 years ago

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

    • suyash 10 years ago

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

    • erokar 10 years ago

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

      • mruniverse 10 years ago

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

      • LoSboccacc 10 years ago

        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)

        • erokar 10 years ago

          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.

          • LoSboccacc 10 years ago

            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
            
            }
      • meagain20000 10 years ago

        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.

        • erokar 10 years ago

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

          • rjayatilleka 10 years ago

              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.

            http://qr.ae/RblzzS

            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.

  • cgh 10 years ago

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

    • raptaml 10 years ago

      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? ;-)

    • vvanders 10 years ago

      Ouch.

    • erokar 10 years ago

      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.

  • AnimalMuppet 10 years ago

    Speaking of radiating condescension...

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection