Live data from Hacker News

Hate Java? You’re fighting the wrong battle.

javacodegeeks.com

51–60 of 186 posts

Re: Hate Java? You’re fighting the wrong battle.

#51
post #8

So, which battle are Java haters fighting? Java is mostly-ubiquitous and is "good enough" for a number of common tasks, and has good enough structure for mediocre programmers working on important-but-uninteresting problems. As a result (and the blog author says this), there is enough hate-worthy Java code there, just as there used to be enough hate-worthy C and C++ code around, and there probably is enough hate-worth…

So, which battle are Java haters fighting?

Not using Java. Not hiring people that will only program Java. Not tolerating "enterprise grade design" when a two line Perl script will do the job more quickly and more correctly.

I assume that's where the complaint comes from. The author of the blog post is mad that people hate Java and are using that hate to make themselves better tools that are not Java.

Re: Hate Java? You’re fighting the wrong battle.

#52

I never thought I would defend Cobol but I have found that Greenscreen terminal based programs written in Cobol and Powerhouse are amazingly fast compared to equivalent web based applications. (I speak from my experience in Financial industry. your experience may vary). Scalability is a mater of throwing more IBM hardware at it and its not very expensive to operate. The IBM Iseries is something unlike anything I had…

Robert Glass wrote a series of articles defending Cobol as still the best language in some ways for business programming. He didn't talk about performance, IIRC, rather about language expressiveness (mainly language constructs for writing reports). But what you're saying is not surprising. The disease of our industry is the notion that old stuff is icky and stupid.

Edit: I hate Java as much as the next guy, but this thread is missing the article's interesting point, which is that the real legacy technology is the mainframes which still power the large-scale economy. Shouldn't we consider why? Isn't it meaningful that the technologies we prefer haven't yielded anything capable of disrupting these entrenched systems?

Re: Hate Java? You’re fighting the wrong battle.

#53
post #41

I always had the impression that people that say they 'hate Java', usually don't hate "Java: the language". Most people that dislike programming in Java have a negative sentiment because of: - the usage of XML (or now: annotations) to configure all of the tiny parameters that nobody really cares about - a class hierarchy in which you have to jump to 20 levels of inheritance to get to where you want to go - that a lot…

Java is so popular, easy to learn and use that there are tons of terrible frameworks and bad programmers in the community. Rebel against it all you want but in the hands of great developer you can get pretty amazing software written in Java like Hadoop, HBase, Lucene, Cassandra, etc. Java is the assembly language of the JVM and since most of the cooler new languages are on the JVM (and written in Java often) it will likely remain as the way to eek the best performance out of your applications and likely has the library you need to get your job done.

As for your points in here. Most of them I can respond with "don't do that".

Re: Hate Java? You’re fighting the wrong battle.

#54
post #23

Earlier quoted context omitted.

Yes, we were talking about this specific thing at work the other day. How come all non-trivial Java programs end up a mass of Factory and Implementation classes?! Several of the systems I support even weave in Spring, which while helping in some ways, completely obliterates readability. :(

I believe it is because the complexity more or less has to exist, when you remove it from one place(in java's case the base language) you add it in another(in java's case pattern soup). Just think about how you would solve the problems patterns solve for Java in other languages. In every case that doesn't require pattern soup involves language features Java left out.

You're right in that there's a certain base level of complexity due to the problem being solved.

But I think it goes beyond pattern soup, and beyond what's available in the language. It's almost a neurosis specific to the Java ecosystem that every design must be maximally flexible...perhaps to show off how object-oriented the code is? It's like the devs are reluctant to hardcode anything, instead abstracting over every design decision they made. This wishy-washy design is then played up as 'flexibility,' rather than a design failure.

Suppose I'm looking for a JSON serialization library. Do I really need to be able to configure the JSON parser used? What percentage of people need to do that? The people with the thorny problems (such as deserializing 100MB of JSON as fast as possible) probably won't be able to use it due to the scope of their problem. But, the option is there, as it could happen.

I haven't done Java stuff within the past few years, but it would appear they're getting better about it. It seems like it may have taken something like Rails in order to show the world that 'enterprise' is usually a euphemism for 'lacking in taste.'

Re: Hate Java? You’re fighting the wrong battle.

#55

I'm going to cite Steve Pavlina here: http://www.stevepavlina.com/blog/2005/07/how-to-get-from-a-7... Some snippets: A 7 seems very close to a 9 or 10, but often a 7 is a local maximum — you can’t get any higher by continuing to follow the same path that got you to that 7 in the first place. A 7 is pretty good. At this level you feel generally content. It’s OK, fine, acceptable, satisfactory. What you’ll find when yo…

"This is what switching out of the Java paradigm, into Ocaml or Haskell, is like."

If you try to do real, production programs in Haskell or Ocaml, you find that they have a lot of problems too.

I've written some reasonably cool stuff in Haskell (like one of the top tutorials that people use to learn it). My teammate got his Ph.D under Simon Peyton Jones and did his doctoral thesis in Haskell. We were talking one day about what it'd be like to write real production systems in it. His strong opinion (and my weak opinion) was that it'd be hellish, because of certain misfeatures like lazyness or the hacked-up record system. All the people that complain about Java would merely find new things to complain about with Haskell, other ways in which the language prevents them from getting useful work done. Instead of whining about verbosity, they'd whine about space leaks.

I find that people who are a 9 or 10 on the expertise scale usually know Haskell, but they don't program in Haskell. Because the causation works the other way. If you're a good programmer, you'll seek out other languages and learn them, because it'll make you a better programmer. But if you're a great programmer, you'll know when not to use stuff you've just learned, because it'll just make your life harder. Learning Haskell doesn't make you a great programmer, but great programmers have probably learned Haskell at some point in their path to greatness.

Re: Hate Java? You’re fighting the wrong battle.

#56
Since there are many languages that now target the JVM, I guess my main distrust should be targeted towards that instead of the language itself. Can someone explain to me what the advantage of running on the JVM is compared to something else (including native code generation)? From what I understand it provides: native tuned GC, stable and tuned JIT, and a class/module mechanism revolving around reusable code libraries (e.g., you could drop in a library written 6 years ago and have it 'just work,' when with C everything needs constantly shifting header files). I haven't used the JVM seriously in years, but I always got the feeling that around these core strengths were layers and layers of bureaucracy -- XML 'makefiles,' a stack-based VM that must inefficiently be translated to a register machine, and the feeling that everything is overengineered to the point that a simple "hello world" takes up gargantuan amounts of time and resources compares to things like Chicken Scheme or Go which have roughly the same features. Would anyone who uses JVM-based languages care to address these fears, I'm honestly curious if my hesitation is well-founded.

Re: Hate Java? You’re fighting the wrong battle.

#58
post #32
post #8

So, which battle are Java haters fighting? Java is mostly-ubiquitous and is "good enough" for a number of common tasks, and has good enough structure for mediocre programmers working on important-but-uninteresting problems. As a result (and the blog author says this), there is enough hate-worthy Java code there, just as there used to be enough hate-worthy C and C++ code around, and there probably is enough hate-worth…

I definitely agree with your sentiment. If you're working on your own personal projects/startup, most of the time you aren't gonna choose Java, but another language whether it be Python, Ruby, etc. But if you're in a corporation, you don't have the flexibility and freedom to choose what you want to work for. This association of corporate life with Java contributes to people's hatred of using Java. I bet if corporatio…

> If you're working on your own personal projects/startup, most of the time you aren't gonna choose Java

... for some values of "you", apparently ;) Lucene, Hadoop, Cassandra, Hudson/Jenkins, RapidMiner, GWT and a gazillion other best of breed open source projects have selected Java, for better or for worse.

Re: Hate Java? You’re fighting the wrong battle.

#59
post #5

#Using Java for serious jobs is like trying to take the skin off a rice pudding wearing boxing gloves. -- Tel Hudson #Of all the great programmers I can think of, I know of only one who would voluntarily program in Java. And of all the great programmers I can think of who don't work for Sun, on Java, I know of zero. -- Paul Graham #Java is the most distressing thing to happen to computing since MS-DOS. -- Alan Kay #J…

any of them write a more successful language than Java? or how about Visual Basic even? For all the complaints, at least Java moved programming technology to another level on a massive scale, lest we all be complaining about C/C++ still.

Re: Hate Java? You’re fighting the wrong battle.

#60
Tell me, what do the following have in common?

    - Paying with a credit card.
    - Going to the emergency room.
    - Adjusting your 401k.
    - Using your insurance card at the dentist.
    - Shopping around for the best car insurance.
    - A BNSF train pulling a Union Pacific coal car.
    - Transferring money between banks.
    - Filling a prescription.
All the above industries are billion dollar players in our economy. All of the above industries write new COBOL and mainframe assembler programs. I’m not making this up, I work in the last industry, and I’ve interviewed and interned in the others.

The question to ask is: What are the economic and social forces keeping the COBOL code base alive? Seeking to supplant a long-surviving language in a particular niche without first asking this question is a fool's errand.

Post reply on HN