3 ms·
I am genuinely curious about this, do you really think Haskell has performance characteristics that are suitable for implementing Chromium? Haskell is wonderful
by throwaway17_17 6y ago
I am genuinely curious about this, do you really think Haskell has performance characteristics that are suitable for implementing Chromium? Haskell is wonderful for many uses, but it is difficult for me to imagine it as the basis for a modern web browser.
I will concede that a branch of GHC being utilized specifically for such a task could have been modified enough in the intervening years to enable a viable browser by 2020. But I really don’t know if it could be done with standard GHC.
- deleted 6y ago[deleted]
- lmm 6y ago> I am genuinely curious about this, do you really think Haskell has performance characteristics that are suitable for implementing Chromium? Haskell is wonderful for many uses, but it is difficult for me to imagine it as the basis for a modern web browser. Short answer: yes. Long answer: profiling and diagnosing performance issues is still kind of a black art, but for large codebases I've seen Haskell rewrites outperform C++ significantly. You need talented Haskell developers, but surely Google should be able to find those. Most of the tasks that I can think of in a web browser seem like things that Haskell is ideally suited to - parsing, data transformation, rule-based logic - what is it that makes you think it would be unsuitable?
- throwaway17_17 6y agoThe memory consumption, especially the semi-non-determinism relating to lazy evaluation, was the first thing that popped into my mind. But, as I said in a comment below this, I think that Haskell as the common case language, with some FFI accessible code would probably fit the bill. I can not think of any large Haskell projects in the application space where browsers sit, but it doesn’t mean it couldn’t be done.
- amelius 6y agoHaskell would be a good choice for a reference implementation by the committee that designs HTML and the rest of the web. From there, benchmarking could reveal if it is adequate for production use. Perhaps some parts could be rewritten in a lower level language.