4 ms·
Why debugging code in Lisp is different
- tgflynn 16y agoMuch of this seems to have more to do with the way Lisp environments work than with the language itself. Couldn't the same sort of thing be done with any language that can be interpreted or incrementally compiled or is there something fundamentally different about Lisp that makes this possible ? For example could Python be used this way ? I usually use a traditional edit/run development cycle with Python programs but I'd be curious if anyone finds other development modes more productive.
- Zak 16y agoYes, the same techniques can be used to varying degrees in any language with a decent REPL. Why do you use an edit/run development cycle with Python? Coming from a Lisp background, interacting with a running program through a REPL seems to have no disadvantages and does a lot to make debugging and interactive testing easy. Is it a lack of tool support, or did it just not seem like something that would benefit you to try?
- tgflynn 16y agoI guess it's mostly a matter of taking the path of least resistance. I don't have to learn anything new to use an edit/run cycle and I haven't taken the time to figure out how to do it differently because it hasn't been clear what the advantages might be. For example it's not clear to me what you need to do to make sure the right modules get reloaded if you're working interactively. Right now I'm mostly using Python for offline data analysis scripts that read data files and either dump output or display plots graphically (using matplotlib). I guess it could be useful to be able to look at data structures interactively.
- phren0logy 16y agoI would really recommend checking out iPython. It's easy to have it execute an existing script, and it plays well with matplotlib. I would use a script to load all my data into it, then use it interactively like matlab. If I found something I liked, I would add it to my script. I found it be a really enjoyable way to work.