News for hackers. Stuff that matters.
Re:It's 2023, so of course I'm learning Common Lisp by mathisfun123 on Thursday July 27, 2023 @01:57AM (#36889469)
There's a person above saying that it's about being to able to mutate program state from the repl, which is a thing that's also possible in any repl for a language with managed memory.
Re:It's 2023, so of course I'm learning Common Lisp by ohyes on Thursday July 27, 2023 @02:31AM (#36889726)
Cl Condition system + repl = godmode. Your software crashes? Do you go back and set a breakpoint? No, because you’re already in the stacktrace in the repl exactly where the crash occurred. You fix the code, reload it, tell it to ether run where it left off, or restart from an earlier point.
Re:It's 2023, so of course I'm learning Common Lisp by mathisfun123 on Thursday July 27, 2023 @02:40AM (#36889793)
Flask and Django have the exact same functionality - I've already said that this thing you guys keep talking is just a matter catching exceptions.

https://flask.palletsprojects.com/en/2.3.x/debugging/

https://docs.djangoproject.com/en/dev/ref/settings/#debug

Re:It's 2023, so of course I'm learning Common Lisp by MarceColl on Thursday July 27, 2023 @05:01AM (#36890828)
exceptions unwind the stack in all languages I know except in CL
Re:It's 2023, so of course I'm learning Common Lisp by patterns on Thursday July 27, 2023 @06:36AM (#36891572)
and Smalltalk ;-)!
Re:It's 2023, so of course I'm learning Common Lisp by MarceColl on Thursday July 27, 2023 @08:00AM (#36892185)
good to know! but the point still stands :D
Re:It's 2023, so of course I'm learning Common Lisp by ohyes on Thursday July 27, 2023 @03:07PM (#36898603)
That is definitely not the same. I write a lot of python code and the interpreter / interactive development is just not as good as it is in Common Lisp.

To my knowledge there’s no real “mainstream” language that goes all in on interactive development. Breakpoints and traceback are all perfectly cromulent ways to debug, but it’s really not the same, sadly.

Re:It's 2023, so of course I'm learning Common Lisp by schemescape on Thursday July 27, 2023 @11:21AM (#36894945)
Not just from the REPL, but from the REPL in the context where the error occurred, without having to structure the code ahead of time to support this. It’s not always an important distinction, but it’s handy when prototyping or if the error is difficult to reproduce.

There are some other affordances for interactive programming, such as a standard way to update existing instances of classes. I’m sure you could implement this sort of functionality in any language, but this is universal and comes for free in Common Lisp.

CL also has other interesting features such as macros, multiple dispatch, compilation at runtime, and being able to save a memory snapshot of the program. It’s quite unique.