Alex,
Scheme is an imperative language, and anyway I'd like to see my let-bindings when I'm inside a function. I don't believe the claims that Scheme doesn't need a traditional debugger because it is somehow different. It is true that traditional debuggers don't work for Haskell, but they do for Scheme.
I've been programming on and off in Lisp and Scheme for almost 30 years (and yes, i started young!), so I'm not exactly a newbie. What makes me an outsider in this community is that I never got excited about Emacs.
In case anybody is interested, here is a short abstract describing what I'm working on:
Strategic Programming by Model Interpretation and Partial Evaluation
Strategic Programming is a programming paradigm based on factoring programs into general strategies applied to descriptions of particular application requirements. The descriptions are called models, and they generally describe one aspect of an application. Parser generators (like Yacc) are a prototypical example of strategic programming. My talk focuses on defining the semantics of models using interpreters instead of transformations, as in most related work. It is possible to define fully-functional applications by a collection of interrelated models for different aspects of a system, including user interface, security, workflow, data abstraction and persistence. The models may also contain fragments of code written in general-purposes languages. Model interpreters are compiled by partial evaluation. One novelty of this approach is the ability to create data abstractions by model interpretation and compile them by partial evaluation. I will describe my progress in implementing a software development toolset to support strategic programming by model interpretation and partial evaluation. The system is implemented in itself and is targeted at information management applications, including desktop, web and distributed services, although it may be applicable to other domains as well.
William Cook http://www.cs.utexas.edu/users/wcook
Yes, that does count as a breakpoint. However, to me the glass is only 10% full, because I can't select a line of code and "put a breakpoint there".
You are still thinking imperatively (Java, Perl, Python etc.). A
well-written Scheme program is not a sequence of instructions.
I can see that there is a culture clash here. I know I'm representing a view that is a minority on this list. But I'm looking at Scheme from the outside, and this is how it seems to me.
Maybe when you "get inside" you'll find out that you really don't
need to spend so much time debugging, and the Lisp productivity boost is more than a legend. :-)
Cheers, -alex http://www.ventonegro.org/