3 ms·
I like the early introduction of the debugger. One of the more interesting features of CL, in my experience, is the conditions and restarts system... and built
by agentultra 10y ago
I like the early introduction of the debugger. One of the more interesting features of CL, in my experience, is the conditions and restarts system... and built in debugger.
One approach to development in CL is to evaluate a form you would like to have. You end up in the debugger. You write the implementation until the error goes away. Repeat until you have a working system... interactive, hate-driven development at its finest.
In fact that's one of my favourite things about CL: it's so interactive that it almost never crashes. You can still interact with your program, see all of the data, debug it, and continue.
- deepaksurti 10y ago>> it's so interactive that it almost never crashes I learnt game programming and OpenGL from the ground up using CL. If it were not for CL, I probably would not have the patience to hang around. I used LispWorks OpenGL bindings and with vertical sync integration, live updates to a running OpenGL program after modifying the code is/was super fun. The biggest advantage I have found using CL is in learning hard topics as you at least have the language and the tooling get out of your way helping you focus on the problem at hand.
- brudgers 10y agoIn Common Lisp users use Common Lisp rather than users using programs written by programmers in <language x>. I think it comes directly from the idea of Lisp Machines where typing s-expressions was how users used the computer. That's radically different from Smalltalk and the Dynabook. Part of its mandate was to be used by children which by definition meant there was an assumption of substantial difference in cognitive capacity between end users and programmers. That's the intellectual model that's mostly won. It's distinct from a model in which the causal premise for differences in knowledge is expertise and experience.
- tdeck 10y agoIncidentally, this is one of the most interesting aspects of the "crank" operating system Temple OS, every program in the language is written in a variant of C that's compiled on the fly, and the shell itself is just a C REPL. I've never used it but found this article very interesting: http://www.codersnotes.com/notes/a-constructive-look-at-templeos/ http://www.codersnotes.com/notes/a-constructive-look-at-temp...
- Jimmy 10y ago>One approach to development in CL is to evaluate a form you would like to have. You end up in the debugger. You write the implementation until the error goes away. This doesn't sound very sustainable or effective to me... almost all the bugs I encounter in programming are algorithmic in nature. The code compiles without error and runs without crashing, but it just happens to do X instead of Y. The code fails because I didn't understand the problem well enough. That's one thing that computers can't really help with yet.
- mst 10y agoI think part of the idea is that you write the implementation, test it immediately to make sure it does Y, then restart. Note that this is not how I really program either, but I've not tried it enough to have an opinion about whether it's effective for me, and I suspect it'll be one of those 'matter of taste' things (I barely use interactive debuggers at all).