3 ms·
How does Erlang compare to Haskell?
by z3phyr 14y ago
How does Erlang compare to Haskell?
- petrohi 14y agoTwo most important differences that come to mind are 1) Erlang is dynamically typed language vs statically typed Haskell; 2) Haskell is functional language with lazy evaluation where side effects are the primary concern, Erlang has eager evaluation.
- z3phyr 14y agoBut, they are equally deployable in similar circumstances. Right?
- Fixnum 14y agoUntil recently, Haskell didn't have an equivalent to Erlang's built-in support for distributed computing, but the new Cloud Haskell library (http://www.haskell.org/haskellwiki/Cloud_Haskell http://www.haskell.org/haskellwiki/Cloud_Haskell) provides message-passing concurrency with a semantics very close to that of Erlang (but with more support for type-safety). I'm not sure Cloud Haskell is ready to dethrone Erlang (and the OTP framework, and tooling for debugging distributed processes, and special VM features, ...) for high-reliability distributed computing today, but Haskell and its libraries are evolving with absurd speed and the Cloud Haskell ecosystem could certainly be competitive with Erlang in the near future. Haskell can certainly be used to write high-performance network applications (e.g., Mighttpd, Warp), so it's surely only a matter of time ...
- z3phyr 14y ago+1 to Cloud Haskell. But, they should change its name so that it sounds like a library and not another language dilect. :) Judging by its name, I thought that its a new haskell dilect ;)
- rvirding 14y agoI think one significant difference is in the actual implementation, or rather its intended use. The BEAM implementation is built to be used in products, it is very stable and bug-free and the OTP team are very cautious when making changes. Incompatible changes are introduced with early notices and warnings, usually 3 major releases before the change is made. My impression is that Haskell implementations are more used as research tools and there is less control of what goes in and how it is to be supported. In that sense it would be safer to build a product on top of Erlang. That is just my impression and I could be wrong.