4 ms·
> But if I write code in Haskell I can only call it from Haskell (which wasn't something I mentioned in my original comment, but is important). Right, that's a
by tomsmeding 5y ago
> But if I write code in Haskell I can only call it from Haskell (which wasn't something I mentioned in my original comment, but is important).
Right, that's a downside. I believe there is a way in which you can call Haskell code from C, but I've never seen anyone use it myself.
> I think there's an underlying tension between generality and clarity.
You're on to something here. C++ has the same problem, where the syntax itself is context dependent: `a * b;` could be a multiplication if `a` is a variable, or a variable definition if `a` is a type. Also template meta-programming, and overloading and {con,des}tructors in general. (Of course, Haskell has the overloading thing even more -- though the containment of IO helps matters quite a bit in my opinion.) Golang explicitly chose to go the clarity way, and it got them some love and plenty of flak.
Maybe one should just conclude from this that Haskell is not a great language for corporate environments. On the other hand, I think it's great for small-team development due to its expressivity and generality. But these two claims do not contradict each other: not every language is good for every purpose.