My impression was that java has the reputation of being "uncool" but JVM is highly regarded as modern marvel.
I am wrong about this ?
My impression was that java has the reputation of being "uncool" but JVM is highly regarded as modern marvel.
I am wrong about this ?
In my experience, people who say silly things about Java -- the technology, which certainly includes the Java Language Semantics, and JVM -- actually do not know what you can do with Java (the language).
So yes, you Lisp nerds have you homoiconic 'mash' of syntax and thus AST manipulation, and we have first class Class Loaders and Byte Code Engineering and the sky is the limit there. Magic.
But the sad reality of programmers' lives is the disconnect between the required cognitive capabilities of workers and the actual (domain) task at hand.
tldr;/ its your job that is uncool not the tech.
Yeah, I just don't understand the less lines of code argument. This is not the limiting factor in software development, it's just not. The limiting factor is having enough information for the immediate Use Case and enough business domain knowledge to come up with a solution that delivers value to the business. The time spent on delivering that value dwarfs the time it takes to write some extra code. Let's look at Uncle Bob's example in the linked article...
(println (take 25 (map #(* % %) (range))))
While fancy, that code is very Perlish and I think we all know the common criticisms of Perl. Also, fancy doesn't pay.
What I've found to have a much larger negative impact on a project than the language is overly complicated architectures. To the extent Clojure can help with that I'm all for it. But from what I've seen, Java 8 with some clear conventions and constraining source code to the implementation of the Function interface can get you a lot of the same benefits.
Damn! I felt that.