One week ago, the Haskell' (Haskell prime) process was announced to the public. Our goal is designing a successor to the Haskell 98 standard. The current timeline is to finish up the standard by October 2006, backed with conforming implementations shortly after that.
The process is worth writing about, as it's markedly different from the Perl 6 process, with different community dynamics and design constraints. From now on I'll record my musings here in the newly created "Haskell" category.
Perhaps the most obvious difference is that of "only perl runs Perl" versus multiple implementations. The HaskellExtensions page lists the beyond-Haskell-98 features supported by the four leading compilers (GHC, Hugs, NHC, JHC), and most of the proposals are simply ratifying those experimental features that worked. Some proposals are expressed as textual diffs from the Haskell 98 standard, which allows for concise discussion on both denotational and operational grounds.
The good thing about this model is that it's sane, mostly predictable, and very efficient. The drawback is, of course, that it only makes existing Haskell users (much) happier -- the scope of Haskell stays essentially unchanged.
On the other hand, the Perl 6 process is exploratory. It has a evolving spec, an evolving runtime, and an evolving compiler that targets multiple evolving backends, relying on the sheer number of library writers and users to keep the use cases real and the unit tests accurate.
This is good for expanding Perl from its (already very diverse) niches to even more places, by keeping the language as multi-paradigmed as possible. The drawback is that without a solid semantic model, most arguments become effective only on ergonomic fronts, and does little to improve the language's soundness. Many times we've found that two features that looks sane independently simply doesn't mix together (magical pairs and bindings comes to mind), and it's discovered only through trying out real programs in Pugs.
So... I think there's something to learn from each other, and that will be my primary focus in the Haskell' comittee in the months to come. As a concrete example, Haskell' can really use Perl 6's Unicode model -- and I still owe them a proposal on this. But sleep+release Pugs 6.2.11 comes first...
Comments
You can follow this conversation by subscribing to the comment feed for this post.