7 ms·
Do any lisps support the interactive style of programming CL is famed for, apart from CL itself? I think resumable exceptions are an important part of it.
by ogogmad 3y ago
Do any lisps support the interactive style of programming CL is famed for, apart from CL itself? I think resumable exceptions are an important part of it.
- paines 3y agoLike most of them ? Chicken Scheme exmaple: https://www.youtube.com/watch?v=eXB3I3S3vJc https://www.youtube.com/watch?v=eXB3I3S3vJc
- cess11 3y agoTo a large extent the famed CL experience comes from working with an image, so you get something similar in Pharo and Factor. Personally, in practice, I rarely feel that resumable exceptions are important. Typically I have a data literal as a kind of mock and push that through the function or function chain I'm tinkering with in the REPL until I'm satisfied with the result. Might be that I spend a lot of time in PHP/Psysh, Elixir, Picolisp and so on rather than good old CL, maybe I'd have another opinion if I had ever been payed for CL work.
- vindarel 3y agoResumable exceptions are really cool though: on error get the interactive debugger, go to the bug, recompile the function, come back to the debugger, resume exception, see execution pass. Another CL thing that speeds up development, is more fun, and is extremely useful when working with long scripts (but for common tasks too, really). (also kuddos to anyone using Factor in production^^)
- packetlost 3y agoI think Gerbil has resumeable exceptions, or at least it was talked about at some point.
- cess11 3y agoSure, and I play around with SBCL sometimes since it's a rather nice REPL experience. It's even nicer to have a GUI though, like Smalltalk:s tend to have. In work settings I've mainly used Factor for data exploration but I can see it fit neatly as a data transformer or combiner in a pipeline from one set of API:s or protocols to some other, since it's relatively easy to express such things and one can get a performant binary to deploy.
- lproven 3y agoInterlisp/Medley has a fully Lisp-based GUI, complete with substantial example apps, and it's all FOSS now. https://www.theregister.com/2023/11/23/medley_interlisp_revival/ https://www.theregister.com/2023/11/23/medley_interlisp_revi... I'd love to see some kind of shim to run Medley on top of SBCL, rather than its own VM. If you are trying to attract people to your programming language in 2024, I'm afraid that Emacs is not tempting bait, no matter how good the integration. It appeals to very niche tastes.
- vindarel 3y agoWhy mention Emacs here? I'm sure you know CL works fine with Vim and other editors like Jupyter notebooks, Atom/Pulsar (very good support), VSCode (still in development), etc. https://lispcookbook.github.io/cl-cookbook/editor-support.html https://lispcookbook.github.io/cl-cookbook/editor-support.ht...
- lproven 3y ago1. Because any time I've seen a newbie ask about Common Lisp dev tools, they're told it's worth the time to learn Emacs and that Emacs with Slime is amazing. 2. I've been trying to learn Emacs on and off for about 25 years and I personally think it's horrible beyond belief. Vim is just as bad, but at least as someone who's been using vi for closer to 35 years now, I know how to open something, change a few characters and save it. I'm not a programmer. I don't use code editors from choice. But I have done in the past and I have opinions about them. It looks to me like you have a choice: a nice modern editor with poor integration, or a horrible crufty old editor which doesn't even know what the Alt key or windows are called but which has great integration. IMHO, as expressed on HN before, Lisp ought to have a slick GUI system for newbies approaching it. The commercial ones do. For FOSS, the code is out there. It's a done thing, many decades ago. It just needs modernising. https://liam-on-linux.livejournal.com/81798.html https://liam-on-linux.livejournal.com/81798.html
- hoosieree 3y agoIt seems like image-based interactive development is on a spectrum from "less alive" edit-compile-run, adding some interactivity with tools like gdb, continuing up through IDEs and REPLs, and up through Elm/Dart-style hot code reloading and BEAM-style runtime module reloading. Maybe CL's flavor of image based development is just an example of good ergonomics, because the fundamental interactions (edit, compile, update image, test, repeat) are not really different from developing a C program inside a Docker container.
- pjmlp 3y agoModern IDE kind of fake the image concept with virtual filesystem, which is quite visible when one writes plugins for them. When coupled with hot reload, the experience comes close enough.
- belmarca 3y agoGerbil is built on top of the Gambit Scheme Compiler which supports that.
- samatman 3y agoJulia has an excellent REPL, and Revise gives most of the "save code, you get your changes automatically" workflow one should expect from a good Lisp, with some minor caveats such as redefining struct types. There's a new condition/restart package in the ecosystem, but this is currently of limited use because errors don't use it. However, one can use Rebugger to capture stacktraces and drop into an interactive debugger at the stack frame where the error is thrown (caveats mainly involve C 'builtins'), which is for REPL use the main advantage of condition/restart. I don't bother since I have InteractiveErrors installed, which lets me navigate to a stack frame in the error and open the editor at that line. None of this is image-based, either, but on a level playing field the interactive programming experience Julia offers is exceptional.