Hacker News new | past | comments | ask | show | jobs | submit login

Haskell: other languages make making mistakes too easy.

This article came up about a year ago[1], so I'm just reusing my comment :P. Now I'd also add:

Go: C is the prefect language, except it's too low-level.

Ermine[2]: Scala is not functional (enough).

[1]: https://news.ycombinator.com/item?id=4954663

[2]: https://github.com/ermine-language/ermine




> Go: C is the prefect language, except it's too low-level.

I feel go is more like "It would be nice to have a Python-like C that would also be a C-like Python"


Haskell: ML is eager.

Go: callback hell is hard to manage, but threads are too expensive.


If we're 'fixing' ML, type classes are a huge fix for the kludgy-yet-precise 2 + 3 => 5, 2.0 +. 3.0 => 5.0 .


Isn't "+." an ocaml thing rather than ML in general? I think SML had overloaded numeric operators, though I think that's a special case (i.e. type classes are still better)


Yep, you're right :). I opened the Standard ML book, and there on p75 they list * :: num * num -> num. Then at the bottom they say each function declared as such really has two definitions, one with num replaced by int and one with num replaced by real.

So yes, +. is just an ocaml thing. Not sure about caml.


Haskell is a far cry from just lazy ML. Oddly enough, your summary of go would be far more appropriate for haskell, which makes go's concurrency handling look primitive.


Scala: Maybe referential transparency is a good thing, but Haskell is scary.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: