Ask HN: Avoidance of Java - problem or pattern?

3 points by bsg75 ↗ HN
When looking new open source projects, and I see Java is in the mix, the project immediately loses some of its potential attraction.

In my case this comes from a few factors:

1) Past experiences with projects that went overly "Enterprise" with layers of abstraction that eventually turn the project into quicksand - once you enter you get sucked in never to escape.

2) Code that is excessively verbose, due in part to the nature of the language. It was once said that concise languages ruin your taste for others [1]. When you just want to get stuff done, patience for boilerplate wanes fast.

3) The JVM while an engineering marvel (to some), can be difficult to keep memory consumption in check, and emits some of the most unpleasant exception information I have seen (1000 line stack traces from a single JDBC fault). I have come to prefer an interpreter or a compiler, but not something in between.

The question comes from a regular experience of seeing interesting F/OSS projects get announced, followed my an immediate lack of interest once the terms "Java" or "JVM" are mentioned. This symptom carries into JVM based languages.

Am I being completely unreasonable, or is this a common malady?

[1] http://lukeplant.me.uk/blog/posts/why-learning-haskell-python-makes-you-a-worse-programmer/

4 comments

[ 2.0 ms ] story [ 26.4 ms ] thread
this is common. i used to be big into java in the late 90's, early 2000s... then "enterprise-itis" took over...
> Am I being completely unreasonable, or is this a common malady?

Java shows the consequence of wide acceptance over time and the burden of history and legacy. I've watched Java evolve from a rather primitive virtual machine tied to an unambitious language, to an entity that, because of its wide acceptance, requires consideration as a contender even though it's not the most efficient language, VM or development option.

My advice is to look into things like Scala, which exploits the existence and wide availability of the Java VM but doesn't use the Java language. In essence it separates the machine from the language.

http://en.wikipedia.org/wiki/Scala_(programming_language)

> My advice is to look into things like Scala ...

+1. I think one of the main differences the OP will enjoy is that Scala allows abstraction without the heavy indirection penalty Java forces upon you.

There is tons of stuff going on currently, like scala-async, Slick, Scala Macros which are all worth looking into. Their approach of “good enough is not good enough” resonates well with me.

It is your problem – if you don't like Java, just don't use it, that's all. For many other people Java/JDK is very useful tool for creating the software and building systems.

I personally don't like too much Java desktop applications, I prefer native UI based on Qt/KDE or GTK. But for server-side and command line, Java is perfect language and platform.