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

Haskell functions (pure or with side effects) simply cannot be made into anything resembling standard Rust types due to the presence of laziness.

This post oversimplifies the problem of language interoperability. Interop is not limited because of lack of a common target. Every platform/OS combination has a well-defined ABI. Most languages have facilities to use functions that conform to this ABI and most can also export functions which use the ABI. The choice of LLVM has nothing to do with it -- LLVM simply uses the ABI. The fact that many compilers use LLVM is not because a hand-rolled solution couldn't implement this ABI, but rather because LLVM is easy to use.




I don't believe interop is that simple, though. If you want, for example, PHP to interact with Python, you can't just go to the ABI level. You need code to define the translation between objects of one type in PHP to another type in Python. ABI-level compatibility is good for really low level stuff, but for everything else it just doesn't work.

As for Haskell, I agree that it doesn't fit into this language vision. Both its lazy semantics and type system would be difficult to fit into the model I suggest.




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

Search: