Live data from Hacker News

Hate Java? You’re fighting the wrong battle.

javacodegeeks.com

21–30 of 186 posts

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

#21
Why some user-level java.exe is better than any other .exe? ^_^ Why in 21th century, with only one remaining platform (x86_64) we should stick to 15 years old concept form isolated from OS environment? Why primitive select/pool/signal I/O and several "bridges" inside user-level process are necessary to run a web application?

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

#22
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 you leave the comfort of your 7 and go chasing after that 10 is that your 7 was never a 7. It was only a 3.

Java is the epitome of "7"-ness. It's a decently powerful language that you can do cool things in if you find a good rock and smash the right things in the right places. As a language, it's mediocre but so much work has been poured into it that nothing is too hard to accomplish in it... then again, very little is easy or fun in the way that Ocaml (once you get it) is easy and fun.

Java appeals to business types because it seems like the low-risk choice. The libraries are going to be there, and even if it's hard to be better than a 7.0 programmer in it, mediocrities can easily get up to 3-4, which is seen as "good enough".

You might be able to go from a 6 to a 7 in a week or a month, perhaps even a day with conscious effort. A few tweaks here and there, and you’ve got it. But to go from a 7 to an 8 might take a year or two. 7 doesn’t always connect with 8. You might have to take a path like 7-6-4-2-3-4-5-6-5-4-6-7-8 to get there.

This is what switching out of the Java paradigm, into Ocaml or Haskell, is like. You have to work hard and learn new things before you get to a level of skill where you can be even a 5, much less an 8 or 9... but it's actually possible in those languages.

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

#23
post #11

I don't specifically hate Java the language, although I'm not enamoured with it either. I do hate the whole culture / attitude and baggage that comes with the language if you have to use it in an enterprise environment. That same culture that warped XML from something moderately useful into a horrible joke. Same goes for SOAP, UML and basically all things 'enterprise'. edit: I gave up on the whole thing when I had to…

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

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

#24
I like to compare hating java to hating SUVs - they may be used inappropriately most of the time, but there are scenarios where they are the best tool.

In the enterprise, you need a language that can support - multi-million line code bases - a development team of dozens or even hundreds of programmers - a software project that lasts years - a team that changes over time - a team that isn't just rockstar programmers (try hiring dozens of rockstar programmers at once if you are not google, facebook, and you aren't doing something perceived to be 'sexy')

I think java and C# are the best languages that meet those criteria today (and if you don't want to be married to MS, then you are left with Java).

I think dynamically typed languages are not appropriateness for such a scenario.

However, HN is a startup-oriented site, and those certainly are not the criteria you need to meet in a startup.

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

#25
Large corporations have the money to run huge applications on serious systems, and might get a slight performance benefit from running Java. Try running it on virtual servers for small web applications though... It's painful. Compared to Python, Ruby, Perl and PHP it eats resources like crazy. Developing and deploying Java apps feels slow and like being stuck in the stone age, unless of course one starts building a large automated infrastructure with continuous integration servers and repository managers... leading back to my first point: complex, heavy and hence expensive infrastructure. Debugging large web applications is worse than any other common programming language for the web. In all honesty, I've never written any serious software in that language – I know more about administration of systems running Java – so I'm not getting into a discussion about the language in se, but it seems very hard to get a clean transparent architecture in larger applications without drowning in hundreds of small little classes littered throughout. While there is a lot of badly written software out there in any language, it's always the Java programmers around me that complain most about trying to decipher how a complex Java application actually works and which code and classes hook into others.

Then, there's the Sun/Oracle thing... While Sun was still pretty respected, being associated with Oracle feels like a wolf trying to befriend a chicken. Especially coming from the open-source perspective, I'd rather not deal with them. If design-by-committee wasn't bad enough, the control of a company like Oracle should set off some alarms...

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

#27
post #23
post #11

I don't specifically hate Java the language, although I'm not enamoured with it either. I do hate the whole culture / attitude and baggage that comes with the language if you have to use it in an enterprise environment. That same culture that warped XML from something moderately useful into a horrible joke. Same goes for SOAP, UML and basically all things 'enterprise'. edit: I gave up on the whole thing when I had to…

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

My theory is that the language's lack of complexity bothers 'high-end' Java devs at a subconscious level, so they think they have to invent it in order to seem relevant to the larger community. Another idea is they may believe elegance is a function of using powerful language constructs, rather than a function of minimalism.

I see the same problems in Ruby sometimes: metaprogramming used without a compelling need. Luckily it isn't as much of a PITA because nobody thinks its OK to program via XML files anymore.

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

#29
I don't hate Java as long as I don't have to use it. I don't hate COBOL as long as I don't have to use it. The same is true for a number of languages that simply aren't fun to use.

The difference is just that it's more likely that I have to use Java at some point, compared to COBOL.

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

#30

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…

The performance of the resulting program is one of many variables. You can almost always get better performance by losing out on other variables.

Measuring just one variable in just a few anecdotes is unlikely to give you a representative measure of a language.

COBOL is a language designed in an era where syntax was thought to be the difficult part of programming.

Post reply on HN