I'm not as anti-JVM as I once was, though the recent licensing changes have left me confused and nervous. I read their licensing FAQ (again) and I still can't tell if I'm allowed to include recent versions of their JVM in my application.
Were I to use the JVM for my background processing needs (the thought has occurred to me!), I'd definitely use Clojure -- 'data.csv' is less than 150 lines, including comments, for both the parser and formatter!
- Oracle's licensing confusion (where does Java and Java(TM) begin/end).
- The JVM historically has included the kitchen sink (Java 9 started addressing this).
- People's impressions that it is slow or a memory hog. Edit: (Looking at you Eclipse/Intellij/Glassfish/JBoss/Atlassian)
- Experiences with bad code bases due to it's ubiquity and age. Old code bases tend to evolve in interesting ways.
- It's not the new shiny thing.
I have meet plenty of developers who dismiss Java out of hand. I've also seen DBA's dismiss FKs. I don't think how good/bad it is has anything to do with people's dislike of it, more that there is a certain vocal group that dislike it for being the "enterprise" solution.
But this does not correlate to how used the JVM actually is in the outside world. The JVM is huge. It's not a pariah. The perceptions of JVM slowness have been debunked again and again, and anyone who cares knows they are mostly a red herring and have been so for years.
Java and the JVM are mature, battle-tested, widely used technologies in the industry, easy to hire for and with multitude of libraries for almost whatever you want to do.
It may not be the latest shiny new thing, but that's different. Pariah means an outcast. Neither Java nor the JVM are outcasts.
Here is the entire logic of the CSV parser (test code is in a separate path) https://gitbox.apache.org/repos/asf?p=commons-csv.git;a=tree...