[Haskell] modern language design, stone age tools
GK at ninebynine.org
Wed Jun 23 12:22:10 EDT 2004
At 11:48 23/06/04 +0100, Malcolm Wallace wrote:
>If companies are willing to invest in development, they will get the
>tools they want.
Hmmm... chickens and eggs. I don't see a lot of *companies* using Haskell
right now. And probably they won't until the tools they want are available
(and more...) :-(
I think the biggest problem with Haskell debugging is visibility of
intermediate values. I sometimes end up planting Debug.Trace calls in the
code, but that can be clumsy -- one of the reasons I develop in Hugs rather
than GHC is the speed of recompilation when adding transient code like this.
(Simple) facilities I'd like to see to help with debugging include:
- A common version of Debug.Trace that is part of the standard prelude
(i.e. no additional imports needed).
- A common version of assert that is part of the standard prelude, which
implementations are free to elide.
- "Remote observation": a system like Hugs might provide a command option
(i.e. without code modification) to observe evaluation of a named function
in evaluation of a larger program. Using the "observe" functions I found
to be rather awkward because if too many observations are coded they get
mixed up, so I don't use them at all. But if a simple top-level command
could observe named functions then it would be easy to use more selectively.
Also, a convention for embedding test cases in module code which can be
checked by the compiler is a possibility that I think was mentioned here
some time ago.
More information about the Haskell