4 ms·
Sure, a 1980s debugger. Modern debuggers have specialized capabilities way beyond the reach of REPLs. Reverse debugging and debugging optimized programs come
by fooker 2y ago
Sure, a 1980s debugger.
Modern debuggers have specialized capabilities way beyond the reach of REPLs.
Reverse debugging and debugging optimized programs come to mind.
- eadmund 2y agoWhy couldn’t a sufficiently smart REPL have those things as well? Anything can happen after the read and around the execute stage!
- fooker 2y agoA sufficiently smart anything can do anything. What makes modern debuggers special is the insane amount of engineering to make it work. LLDB is close to a thousand man years of engineering iirc.
- eadmund 2y agoImagine if that man-millennium of engineering had been spent working on a decent language and ecosystem instead of C, C++ and Objective-C! That’s what gets me: better languages are able to scrape by with several orders of magnitude less investment, precisely because they are better — but imagine how much more progress we as an industry would have made had we only invested a little more in those more promising ecosystems and a little less in the terrible ones.
- taeric 2y agoI'm curious what features you have in mind that you can't do from the Common LISP REPL?
- pjmlp 2y agoOnly if you ignore Smalltalk and Lisp environments. There is still some catching up missing from other programming stacks.
- whitten 2y agoWhat issues do the lisp and smalltalk repls make easier to debug ?
- pjmlp 2y agoYou can inspect any expression, break into the debugger mid-execution, change the code, whatever code you feel like, redo the execution after applying the changes for example. The ultimate redo-eval-loop, with almost zero downtime. They are Jupyter notebooks on steroids.
- xkriva11 2y ago...and start another debugger on any expression(s) you like. This is a super-useful feature. https://files.pharo.org/web-images/carousel/fusion.gif https://files.pharo.org/web-images/carousel/fusion.gif
- igouy 2y agoExample: https://cuis-smalltalk.github.io/TheCuisBook/The-Debugger.html https://cuis-smalltalk.github.io/TheCuisBook/The-Debugger.ht...
- bsder 2y ago> Modern debuggers have specialized capabilities way beyond the reach of REPLs. Only if you are running on a machine with a full OS. Embedded debugging is so bad that Microsoft forcing everybody to use DAP (Debug Adapter Protocol) was a step up. It also doesn't help that compiler writers never met an optimization that they didn't like. It's often really hard to unwind optimized code back to something useful to probe. Sure, you can turn on debug optimizations but then your code runs an order of magnitude slower.