
simonpj:
| > Unless you use a different compiler. | > | > Malcolm "keeping the dream of multiple implementations alive" | | And keep dividing our compiler teams' efforts, while | single-implementation languages conquer :) | | Don "thinking that compiler developer fragmentation doesn't help now the language research | is 'done'"
Don, I usually agree with almost everything you say -- but not this! I think diversity in compilers is good. They tend to focus on different aspects (e.g. one might be small and accessible while another is more fully-featured but harder to modify), they keep each other on their toes, they serve as vehicles to explore different parts of the design space (eg jhc's implementation model is very different to ghc's).
Furthermore, language research in Haskell is *far* from done. I regard GHC as a research platform, not as a product. These goals are in tension but not in conflict -- GHC's usefulness as a research platform is derived in large part from the fact that it is so widely used, which in turn is because it is a decent product.
Yes, splitting effort has costs, and those costs are particularly apparent to you because of your fantastic work on libraries, packaging, and distribution. But diversity also has benefits that I would hate to lose. Much as I love GHC, my first baby, I'm glad GHC has siblings.
Yes, I shouldn't tease. We need continued sources of new ideas to keep things moving, since (going back to Malcolm's point) we see that some implementations solve particular problems in easier ways than others. My point was really that investing the effort required to get nhc98 into the shape that we could actually use it to ship the kind of code that we do with GHC -- to make nhc98 a GHC competitor product -- would not be as an efficient use of our researchers and engineers. That effort is better spent either working on GHC, or generating new ideas in areas not directly competing with GHC (like YHC's javascript backend, Hugs on the iphone, or nhc98's bytecode compression). So keep the ideas coming! -- Don