Hacker News new | past | comments | ask | show | jobs | submit login

Why do people hate java so much? For its job, it's pretty well designed.



Nobody hates Java, it's too generic and plain to generate such strong feelings. People don't care for language, but they do dislike Java Programmers because a big percentage of them, but not all of course, got into CS only due to their neighbor once saying "I hear programmers have no problem finding jobs".

The dumbest, least-motivated, non-reading bunch of individuals with engineering titles I've ever known were all Java or VB programmers. The kind who never heard of slashdot let alone reddit or joelonsoftare and use "wizards" to generate SQL queries. Heck, these dudes even call DELL or HP customer support (!) when their home computers stop booting.

Moreover, even smarter Java programmers have their issues. Nobody believes in design patters as much as Java people do. They never call new() on anything, they MUST have a factory that creates objects. They produce myriads of code that DOES NOTHING, but encapsulates some other junk that in return also does very little. These dudes can get quite aggressive if you try to point out to them that they never actually do anything but most of their time is spent DESIGNING (oh! they LOVE this word, in fact they don't like to be called programmers, they like to be called architects).

I absorbed Java like most of us in college, but I will never go to work in Java shop because the danger of being surrounded by these morons is a lot greater there than anywhere else.


As one of the most widely used languages, it has its own bell curve. There are some brilliant people using Java to drive enormous business at big companies, a lot of middling, competent people, and some dreck. Although I would guess that Java's bell curve is heavy to the left, because people that don't do computers out interest choose Java for the money, while a portion of the smartest developers self-select into more powerful but less commercially viable languages (Python, Ruby, Lisp, Smalltalk, Erlang, etc).


Ok, I work in Java all day. I use a smattering of other languages, have developed a number of sites using PHP, and my pet project is in Python.

I don't think you know many java programmers, and it's clear you haven't done any real world java development. Sure, the language has problems, and there are astronaut architects that do silly things, but neither I nor my coworkers rely on "wizards," or are obsessed with factories. Most of us use macs or linux. You might have read a rant that described all java developers that way, but it's unfair. There are VB and C# developers that fall into the same traps you describe.

In any case, if java is such an obviously terrible choice, why does a company like Google use it extensively internally? Either you assume the dangers of being surrounded by morons at Google is high, or perhaps you add nuance to your assertions.


The reason why your dumb programmers uses Java is because that was their first language. Dumb programmers don't like to learn new stuff. If they were interesting in learning, they would become smart programmers :-)

Don't blame it on the language. Blame it on the students who only wants to learn the basics so that they can get a degree and a comfortable job.


Very well said. If I needed to hire Java programmers I would probably advertise a Python position. This would weed out 90% of the junk candidates.


As long as you tell them that it's actually a Java job as soon as they get in the door... and then you'll weed out another 90% the candidates :)


Then there are the Java web consultants I have to work with. The ones that say they know Java web programming, but don't know the following:

1. HTTP

2. How to add query parameters to a URL

3. How to write an Ant script (they rely on Eclipse's compilation)

4. How to configure and deploy a .war file by hand (they export a .war file using Eclipse and run it in an embedded tomcat instance)

5. Why using System.out.println() in a servlet won't show anything in the server logs.

...

The list goes on and on. The worst thing about Java is that it is deliberately dumbed-down so that enterprises can easily make their programmers replaceable. Except of course, it never really works out that way.

The effect it actually has is that it makes people who shouldn't be programmers think they can be programmers, and they look for a company where they can make a decent salary while not being required to actually do anything or improve their skill set.


haha.... ouch. I have to use Java at work (J2ME) and it is not that bad. J2ME is more similiar to java 1.2 and doesn't have the overbloat of the latest versions.

But I do agree, especially with the design pattern part. I have a co-worker that loves to boast about his "knowledge" about design patterns, and he is the kind of dev. you described on the second part of your comment.


Oh I see. Well, that doesn't seem to be a problem with the programmers using Java, per se.


"Nobody hates Java, it's too generic and plain to generate such strong feelings."

http://www.google.com/codesearch?q=%22I+hate+java%22&hl=...

Only 20 entries, I am surprised.

I use java every day and honestly, I wish I could throw it down the well. It's a shame that GUI building in python is not trivial, neither consistent nor relatively bug free.


Tried Jython?


Yes. I do all the support for Jython in ImageJ (a java scientific imaging application.) Google my name for my webpage where the Jython Interpreter for ImageJ is hosted.


One great way to be hated is to be popular.


Another is to be a crappy language. Java is a big platform with a dumb interface; it's the Anti-Lisp. It's a deformity on the programming language tree of life, encasing all those terrible procedural habits and style into another layer of complexity. You have to say everything three or four times. How does anyone put up with it?


The best ''Java'' theme I have ever seen was the old Perl Journal issue with 'Special Java edition!' on the cover.

It a cup of coffee in which damp cigarette butts bobbed about.

God I miss TPJ. Say what you like about the language, there has never been a significantly more interesting programming journal (to my knowledge) than TPJ.


I've used Java successfully on a number of projects. If you have a good IDE a lot of the fluff is taken care of for you (try writing Lisp in Notepad, it isn't much fun either).

I see Java as a good C++ replacement. I refuse to write anything in Java that I wouldn't want to write in C++ (for example I've refused to do web programming in Java).


There are some fantastic libraries in Java.

Your approach to it seems reasonable, although I find myself writing extension modules (for R, PHP, Python, Perl even) in regular old C... not because I particularly dislike C++ or Java, but because if I can get away with just C, it's less likely that I'll step in a template-error or uncaught-exception shitstorm with a 10-page backtrace.


Thanks for pointing that out.

I should have stated this in my comment, but I don't like C++ much (which is why I'd rather use Java over C++). But I absolutely love regular old C. It's a beautiful, simple programming language. I think C is a perfect language for implementing programming languages, libraries and operating system.


I quite like C++. Java is a nice language but is absolute hell to develop iterative web applications with at any reasonable speed. You need a sophisticated in-house division of labour to really use it effectively.

The real danger of the java language is that it's hostile to lean/agile development. If you're in a market that iterates quickly, that can be a real problem. If you work for a bank... less so.


And you find C++ easier for developing iterative web applications?

Just to make it clear, I will never use Java (or PHP for that matter) to develop web applications.


Actually, for systems programming (kernels and languages) I would want a language with a strong (preferably static) type system.


Interesting factoid: one of the potential languages for Sun's VM was a variant of Scheme. Unfortunately, it lost to Java.


It's not that everybody hates Java; it's that nobody loves Java.

I'd guess that those who do say "I love Java" probably don't know any other languages. Maybe if the only choices were Visual Basic 5 and Java...?


Even then, it would really depend on what you needed to build.


I assume its because programming in Java is excruciatingly painful - its syntax just doesn't feel natural and every program is many times longer than a corresponding Python program. Or lisp, I assume.


It's job was to provide a gentle path away from C++. I'm not interested in a gentle path away from C++, I just want to write good applications.

I don't hate Java though. I can't complain because I do all my Java programming in Scheme.





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

Search: