Taking the Pain Out of Debugging With Live Programming
angry tapir writes "'Everyone knows that debugging is twice as hard as writing a program in the first place,' Brian Kernighan once wrote (adding: 'So if you're as clever as you can be when you write it, how will you ever debug it?') However, Sean McDirmid, a researcher at Microsoft, has been working to remove some of the pain from debugging. McDirmid, based at Microsoft Research Asia, has been studying ways of implementing usable live programming environments: a solution that is less intrusive than classical debuggers. The idea is to essentially provide a programming environment in which editing of code and the execution of code occur simultaneously — and in the same interface as code editing — with tools to track the state of variables in a more or less live manner."
I suspect you haven't seen a Common LISP debugging environment. Yes, they allow breakpoints, as well as live code modification. (And if you were lucky enough to have a LISP machine, you could dive into the code behind your libraries, your operating system, etc. -- updating state on the fly, all the way back to tweaking a driver on a running machine... on the fly, in LISP).
What we have these days (say, Clojure's nrepl) isn't as powerful as that, but it's pretty damned powerful even so. Want to tie into your production system and see what a new version of a function would do against currently live production data, without actually changing the production system's behavior? If you're writing purely functional code, you can do that trivially... and the language strongly encourages pure functional code (as opposed to many "modern" languages where trying to write things to be side-effect-free is working against the grain).
If the best example you can think of is QBasic, you have no idea what a REPL can do.
Why is the computer industry hell bent on constantly reinventing the wheel?
Why are people in the computer industry hell bent on complaining when people take concepts from well designed software of the past an implement it in more popular development tools? Can you imagine how annoying it would be if architects kept saying "The Romans figured out arches two thousand years ago, why do these new kids keep reinventing the wheel" ?
IMHO, I welcome most attempts to take the good features from Smalltalk and implement in more heavily used languages.
-- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke