Kotlin is a better Java.
Groovy is a scriptable Java.
Scala is a "worse Haskell" or an "extensible Swift", with close Java interoperability (that last part leading to the warts).
Kotlin is a better Java.
Groovy is a scriptable Java.
Scala is a "worse Haskell" or an "extensible Swift", with close Java interoperability (that last part leading to the warts).
The difference between Python and C is huge because C is not interpreted and doesn't do automatic memory management, which is actually the deal breaker for many apps. Saying that such a difference exists between Scala and Java is simply wrong. It's wrong starting from the fact that both are garbage collected, running on top of the same VM, having the same performance and thus targeting the same application profiles.
> Scala is maybe a "worse Haskell", with extensive Java interoperability
Haskell is a language I like and that I'm in the process of grokking, being a continuous inspiration, but to tell you the truth, to the contrary I think Haskell is a less practical Scala. Scala follows the pragmatism of the ML family. OCaml is another pragmatic language. Clojure and Racket are too.
Empirically speaking, Haskell is good at being a trend setter in the FP community, but besides really cool libraries and concepts, I don't see much in the way of applications built by Haskell folks. Some big companies have built complex systems on top of Scala, not to mention projects like Kafka and Spark, which can also credit Java and the JVM. For OCaml, even with a much smaller community than both Scala and Haskell, you have some really cool stuff like MirageOS. What does Haskell have to show for, besides badly documented libraries and compiler implementations?
Don't get me wrong, correlation does not imply causation, maybe Haskell simply has a popularity problem, but the onus is on the Haskell community to prove that Scala, OCaml and others are inferior alternatives to Haskell by showing some results. Because at the end of the day it's the final artifacts that really matter.
Off the top of my head, the Darcs revision control system, the awesome Pandoc tool (http://pandoc.org/), and the Xmonad window manager. All of these are fully-featured and battle-tested software that don't require any knowledge of Haskell to use on a day-to-day basis.
Facebook also uses Haskell to write parts of its software stack, but most of that code is proprietary and not available for reading.
There are many more examples:
https://wiki.haskell.org/Haskell_in_practice
https://www.quora.com/What-are-the-most-famous-software-writ...
Besides the ones others have mentioned, Haxl is probably one of the bigger known industry uses of it. It is used at facebook as their spam filter:
https://github.com/facebook/Haxl
If you scroll to the bottom of that github page, you can find several papers and articles that go into detail about it.
That shouldn't be a bad thing. Haskell, like Prolog, SML, Simula, Smalltalk, and Lisp, have influenced the world of programming far more than one could ever expect if we only measured success by large project usage. I don't see why Haskeller's need to defend their meager industry adoption so much. It has some pretty good adoption compared to most research languages, but its industry adoption is not that great for a general purpose language, and it doesn't need to be.
Apache Groovy enables a programmer to script Java, not to be a scriptable Java, which is different.