On Thu, Jan 20, 2011 at 07:45, Ala'a Mohammad amalawi@gmail.com wrote:
I'm interested to hear what others use CL. How do they manage day to day work? how do their preferred style mesh into their production pipeline (coding, debugging, deployment and maintenance)? and what makes them prefer one way over another or the mix if applicable?
For loading required software, I'd say 100% filer. ASDF and Quicklisp make operating on files to easy for me that I just don't want to waste any energy thinking about what definitions are in the image and which I've saved in a (source-controlled) file somewhere - the 30 seconds I spend waiting for software to load are nothing compared to an afternoon spent debugging a function whose definition in the image differs from what is in the file containing its (alleged) source code... Or worse, functions/variables that are present only in the image, and not in any file.
When it comes to throw-away code, though, I usually just type it into the repl or the slime-scratch buffer. But: once throwaway stuff starts becoming useful, I use quickproject and paste the latest definitions into a source file and check that into git ASAP. Of course, this step has the potential to go wrong in the same way I mentioned above: if I manage to forget a definition, it's debug time again. Fortunately, that happens early enough in the source's lifetime that it's not hard to find the definition again.
As for deploying, I have started making quicklisp trees containing the requisite software and a git checkout of my project. You can still incrementally load stuff, and you can be pretty certain that what you tested truly is what you deployed (-:
Hope that's useful,