Haskell (via GHCJS) Review

Ranked in these QuestionsQuestion Ranking

Pros

Pro

Quick Feedback

It's often said that, in Haskell, if it compiles, it works. This short feedback loop can speed up learning process, by making it clear exactly when and where mistakes are made.

Pro

Terse

Haskell is a very terse language, particularly due to its type inference. This means there's nothing to distract from the intent of the code, making it very readable. This is in sharp contrast to languages like Java, where skimming code requires learning which details can be ignored. Haskell's terseness also lends itself to very clear inline examples in textbooks, and makes it a pleasure to read through code even on a cellphone screen.

Pro

All of Haskell, with the same tools you're used to

No need to learn new syntax or semantics, and no need to install and learn a bunch of new tools - it's just GHC.

Pro

Provides seamless concurrency, without the need for promises or callbacks

Pro

Cons

Con

The generated code can be difficult to debug

It should be mentioned that since the execution model of Haskell is very different from common imperative languages (lazy evaluation), the generated code doesn't resemble the source code at all, so it can be very difficult to debug.

Con

Large runtime

GHCJS supports the entire Haskell runtime, the Javascript it outputs tends to be quite large. This is in contrast to options such as Fay, which save some overhead by not supporting some features such as multi-threading.