Do you have a question? Post it now! No Registration Necessary. Now with pictures!
- Robert Wilkins
December 22, 2009, 6:12 pm
rate this thread
I'm a programming language designer ( data languages comparable to SQL
and SAS if you want to know ). I'm currently making a decision between
Haskell and Python to implement a compiler where both the source and
target are fairly high level ( think of subordinating SAS data steps
and regression/chisq/etc procs(SAS or S) to the role of assembler and
you get the basic idea ).
So here's the problem: Haskell is supposed to be really good at
compilers , maybe the best, or so I hear: parsing and all the symbolic
transformation that goes after the parse. But it has a really tough
and long learning curve , and methods of thinking that carry over well
( from say , C++ and C++/STL, to Python and lists and dictionaries) do
not translate so easily to Haskell.
By far the most high-profile breakthrough of Haskell in compilers/
interpreters was PUGS, the first compiler for Perl 6. I can't think of
any other well known breakthroughs in that direction. PUGS was a huge
and unique marketing breakthrough for Haskell.
So now PUGS is dead, from what I see on Wikipedia. The developer has
walked away. The Perl 6 community has decided not to get a
replacement, and PUGS has and will have no customer base. Perl 6 has
decided to focus on a non-Haskell implementation. PUGS undoubtedly has
a lot of cool features, components and code. But the PUGS software
product is effectively dead, no maintainer + no customer base = death.
While monads are really cool code transformation stuff, they are also
incredibly tough to grasp, and I am rethinking my preference to
Haskell. And as I've seen over the years, Python is so bloody easy,
especially for someone with a C++ background.
Before I decide, can anyone tell me why Pugs died? The reason for it's
demise would be useful to know whether Haskell is a good choice for
writing compilers. It's clear that it's symbolic transformation and
code transformation stuff is amazing, but it's tough to get.