Well, thank you all for your answers.
I'm a Lisp newbie. I do realize I'm asking lame questions, but I haven't had any touch with Lisp before. Programming is my hobby, my passion, and now also my profession. I started to study Lisp, because I came to conclusion that I just can't afford not using this language. I was about to switch from Java to Scala (Java lacks FP features), but I realized that Lisp is a (the?) language I can extend however I like...
Now, I'm reading "Practical Common Lisp". Although I don't find this lecture perfect (I'm going also to read "Successful Common Lisp" and "On Lisp"), and many Lisp concepts are hard to understand, I'm starting to use this language. Lisp is not my first programming language, but I hope it to be the last one
So please excuse me asking obvious questions, but the Lisp concepts are really "foreign" for me.
findinglisp wrote:Remember that Lisp has often been used to create long-running programs that may not terminate for years. In these cases, debugging is done while the program runs.
Now I get it. Although I'm not interested in programs which run for years (but months sounds much more interesting...), I can see the point. Lisp is quite different from any other tool I know (Java, Python, C, etc.); as far as I understand it, Lisp programs can be debugged and fixed while running.
Ramarren wrote:The example of when the difference matters which I ran into a few times are configuration variables, which have some default values, but which you might want to change from the REPL when developing/testing the program.
It sounds very interesting...
(A small OT: greetings from Silesia! I wasn't expected to meet so many people from Poland on this forum
JamesF wrote:What I mostly work on is a web application, an online store (or two). When I'm working on the development machine, there's little damage to be done by b0rking the configuration variables that define the database connection: I just curse my own stupidity, fix the definitions and carry on. When I log into the production machine, on the other hand, I generally do it to upgrade the application, which I do by reloading the relevant system(s) in the currently running image. This is nice and convenient, as it means there's no downtime while I restart the app server.
And this idea just rocks!
Well, I'm not interested in web apps (for now; I might be in a couple of months, though!), but I'm very interested in scientifical software and server-client apps. The ability to debug/update software without stopping it is worth any effort.