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

You're right, I'm only talking about how complicated the core language is, not how hard it is to use.

Having worked professionally with both, I'd say OCaml has a gentler learning curve, but you have to do more work forever after getting over the curve.




> I'd say OCaml has a gentler learning curve, but you have to do more work forever after getting over the curve.

Why do you suppose that is? Lack of type classes/overloading?


That's a big part of it. If you want to serialzie a list of optional ints, you're going to have to write something like

    List.serialize (Option.serialize Int.serialize) my_list
Whereas in Haskell it's just

    serialize myList
This also shows up with equality and comparison, numeric operators, etc. (which beyond being syntactically inconvenient also makes data structures trickier to use ,usually with a somewhat convoluted functorized data structure module).

There are also some things about the language that break composability. For example, the presence of mutable references means you can't compose polymorphic functions (sounds weird, I know), which is inconvenient.

It basically boils down to less ability to front-load work by creating good abstractions.


So a reimagining of OCaml with say, implicits, would go a long way to easing these issues?

Re:composing polymorphic functions, I'm not sure I follow. Do you mean the value restriction?




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

Search: