Re: Mathematica and Lisp
- To: mathgroup at smc.vnet.net
- Subject: [mg129743] Re: Mathematica and Lisp
- From: David Bailey <dave at removedbailey.co.uk>
- Date: Sun, 10 Feb 2013 03:23:14 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <kcqkv4$lq5$1@smc.vnet.net> <kct7fj$sgo$1@smc.vnet.net> <kf2iv5$3o7$1@smc.vnet.net>
On 08/02/2013 10:10, John Doty wrote: > On Wednesday, February 6, 2013 9:28:00 PM UTC-5, Richard Fateman wrote: > >> I personally find the debugging facilities in Mathematica to be quite >> >> difficult to use. > > I personally don't use them, but I personally find Mathematica programs easy to debug. > >> I speculate that it is because the "working model" >> >> I have in my mind (and I suspect others share it) is that I am writing >> >> programs, composing them in various ways. In reality, the internal >> >> evaluation strategy of Mathematica is to apply rules to transform >> >> expressions. So while I'm looking for a clue as to which "program" >> >> has the bug, the debugging info shows transformations of expressions. > > Yes! Now, we're getting someplace. > >> >> This jerking back into the reality of Mathematica's actual nature >> >> of evaluation generally prompts me to shy away from the use of Trace. > > If you're using Mathematica, why ever leave that reality? Why not stay in it and use its power? If that's not working for you, why use Mathematica in the first place? > >> >> I don't know if it is inevitable, but Trace in particular, and debugging >> >> in general in Mathematica seem to me to be quite weak. > > Trying to figure out what Mathematica's doing using Trace[] is like trying to figure out what a 1960's mainframe was doing from the blinking lights on the console. Useful in special circumstances, but too much detail in general. > This is why I wrote the DebugTrace package - available free from my website. Sometimes we all have to debug badly structured code. For example, if you are a consultant, you simply have to understand a client's code, however it is structured! Also, many people use Mathematica infrequently, and don't want to spend a great deal of time understanding its philosophy. For that reason, DebugTrace reintroduces the fiction of functions, so that when a program pauses at a breakpoint, or when it generates an error message, you can obtain a trace-back of what called what, at which line number. Line numbers relate to a special 'listing' notebook that is generated as the debugger starts. Since I don't really like the Workbench, all this runs directly in the FrontEnd! David Bailey http://www.dbaileyconsultancy.co.uk