Hacker News new | ask | show | jobs
by squidsoup 5504 days ago
I'm not certain that Java really needs this. Developers that wan't a more functional style should consider making a transition to Scala or Clojure.

Scala can evolve at a much faster pace than Java as well, given that the core language is tiny and most of the language constructs are implemented as libraries.

1 comments

I'm not certain that Java really needs this

We weren't certain that C# needed it. Until we tried it.

He didn't say they weren't useful, just that Java the Language doesn't need it, due to the fact other languages that have interoperability with Java on the JVM have these features already. .NET isn't as language rich as the JVM currently unless I missed some major changes.
I get that you can call across to another language that has more functional features. But that's not the same as having little bits of it right there. e.g. when you want to find the latest item in a list, instead of a loop, you do:

   return purchaseList.OrderBy(pur => pur.Date).FirstOrDefault();
and carry on. It's great. You don't tend to have that fine granularity when working across languages.

I don't know if you missed F# or not, but if you want a fully functional language in the ML / Ocaml lineage on .Net, you can write some code in that and interoperate.

I have worked with F# in a limited degree, but one choice is not as good as all the options given by the JVM right now.