Clozure Common Lisp is excellent. It generates fast code and small images.
I used Clozure Common Lisp for the Tankan kanji learning program, which uses a browser interface to a service application, the latter being written in CCL.
I used MS Visual C++ to make the system notification are ("tray") icon program to control the service.
The licensing back-end runs on CLISP as a CGI interface, and the same server-side program also serves as an administrative command-line utility, where I can manipulate the the license database.
Although if anyone wants to run it, you could download it from the op and drop the file onto one of the emulators on https://infinitemac.org (they run directly in your browser, no download needed)
There was quite a bit of discussion about this a couple of years ago. OpusModus[1] investigated supporting CCL on M1, but wasn't confident that it could be accomplished, and instead ported their product to LispWorks.
That effort is somewhere between stalled and dead. Matt Emerson was funded to work on it, but that funding fell through a few months ago. I made him an offer to resume the work but he hasn't accepted it and hasn't said why. So unless there is someone else out there who is capable of doing this, it's not looking good.
bifftastic 8 hours ago [-]
Thank you for your reply. It's quite a sad situation.
mark_l_watson 13 hours ago [-]
I didn’t think an Apple Silicon port would ever happen.
After using my Xerox 1108 Lisp Machine for several years, I gave it away to someone else where I worked when I was able to put a faster Motorola processor in my 1984 Mac, bought Macintosh Allegro Common Lisp, and ported utilities like ISI Grapher that I needed. Great programming environment that I used for many practical projects that were financially impactful for my company.
ralphc 10 hours ago [-]
The conventional wisdom around here is that Lisp (and Smalltalk) are looked upon so fondly because they were so far ahead of what else we had back then, both in terms of the language and development environments, but other languages have caught up over the years.
Do you think there is a modern non-Lisp language and environment that gives you something close to the productivity you had with Common Lisp back then?
JKCalhoun 20 hours ago [-]
I wonder if any 68K Mac apps written in Lisp were shipped in the day.
mark_l_watson 13 hours ago [-]
Not MACL, but I shipped a million dollar in sales product using ExperLisp that I wrote for the original Mac.
Using MACL: when I was on a DARPA Neural Network Tools Advisory panel, I did all my NN prototyping in Common Lisp with Macintosh Allegro Common Lisp. Resulting code, that I converted to C and C++ was used in the bomb detector we built for the FAA, and became a commercial product.
p_l 14 hours ago [-]
Non trivial amount, though usually niche ones AFAIK.
Some, like Piano (aircraft analysis suite) moved to other platforms when OSX essentially forced a rewrite anyway
behnamoh 1 days ago [-]
The closest thing to image based programming in Common Lisp (which doesn't exist as such in Clojure, Scheme, etc.) is having a tmux session with ipython open! I can save the session and come back to it later with the state of the program still correctly loaded. It's fantastic.
Jupyter Notebooks should have this feature because loading huge datasets upon loading a ipynb really doesn't make sense, but alas...
lelanthran 11 hours ago [-]
I use a terminal split in vim which runs in screen.
Same effect, except that I can send various commands from the other vim split to the terminal using slime.
Started working like this when i was writing and prototyping a lot of SQL code... ran SQL in the terminal split and used the other split for the SQL file.
Y_Y 15 hours ago [-]
Could you say how you save the ipython sessions? I'm aware of dill.dump_session but haven't tried it. I also would love to use something like CRIU, but find it doesn't play well with external accelerators like GPUs.
For the moment I'm stuck opening lots of tmux sessions and just re-running from history if I mess up the state.
behnamoh 13 hours ago [-]
I save the tmux session using ctrl-a,ctrl-s and it automatically saves the ipython state as well as my neovim.
opan 10 hours ago [-]
This sounds like tmux-resurrect and not a built-in feature. Similarly, C-a is the default GNU screen prefix, C-b is the default prefix for tmux (though this is a fairly common rebind for people who wanted it to work more like screen).
behnamoh 9 hours ago [-]
I remapped ctrl-b to ctrl-a, and yes, I use tmux-resurrect.
baq 17 hours ago [-]
Python is a lisp just lists are replaced with dicts, after all ;)
I wonder if an AWS elastic lisp image service would be something lispers would use. Probably won’t live to see anything like it.
pjmlp 14 hours ago [-]
It is only missing having proper lambdas instead of one liners, JIT compilation, redo code after breaking into debugger, saving REPL into an image, ...
Julia is more Lispy than Python will ever be.
Ironically what AWS nowadays offers for Java and .NET based lambdas (SnapStart) is something similar to Smalltalk/Common Lisp images, yet another thing that traces back to their roots (Java being influenced by Objective-C/Smalltalk, and .NET origins due to J++ lawsuit).
Iwan-Zotow 2 hours ago [-]
> proper lambdas instead of one liners
that has simple solution - walrus thingy
behnamoh 13 hours ago [-]
In that case Elixir is also a Lisp where you use do-end instead of parentheses :)
heck, any language that has an AST would be a Lisp according to your definition..
Rendered at 01:54:14 GMT+0000 (Coordinated Universal Time) with Vercel.
https://ccl.clozure.com/
I used Clozure Common Lisp for the Tankan kanji learning program, which uses a browser interface to a service application, the latter being written in CCL.
I used MS Visual C++ to make the system notification are ("tray") icon program to control the service.
The licensing back-end runs on CLISP as a CGI interface, and the same server-side program also serves as an administrative command-line utility, where I can manipulate the the license database.
Although if anyone wants to run it, you could download it from the op and drop the file onto one of the emulators on https://infinitemac.org (they run directly in your browser, no download needed)
I expect that running MCL on QEMU emulating PPC Mac running MacOS 8 or 9 should work, however.
There was quite a bit of discussion about this a couple of years ago. OpusModus[1] investigated supporting CCL on M1, but wasn't confident that it could be accomplished, and instead ported their product to LispWorks.
1. https://opusmodus.com
I would love to be wrong about that!
Do you think there is a modern non-Lisp language and environment that gives you something close to the productivity you had with Common Lisp back then?
Using MACL: when I was on a DARPA Neural Network Tools Advisory panel, I did all my NN prototyping in Common Lisp with Macintosh Allegro Common Lisp. Resulting code, that I converted to C and C++ was used in the bomb detector we built for the FAA, and became a commercial product.
Some, like Piano (aircraft analysis suite) moved to other platforms when OSX essentially forced a rewrite anyway
Jupyter Notebooks should have this feature because loading huge datasets upon loading a ipynb really doesn't make sense, but alas...
Same effect, except that I can send various commands from the other vim split to the terminal using slime.
Started working like this when i was writing and prototyping a lot of SQL code... ran SQL in the terminal split and used the other split for the SQL file.
For the moment I'm stuck opening lots of tmux sessions and just re-running from history if I mess up the state.
I wonder if an AWS elastic lisp image service would be something lispers would use. Probably won’t live to see anything like it.
Julia is more Lispy than Python will ever be.
Ironically what AWS nowadays offers for Java and .NET based lambdas (SnapStart) is something similar to Smalltalk/Common Lisp images, yet another thing that traces back to their roots (Java being influenced by Objective-C/Smalltalk, and .NET origins due to J++ lawsuit).
that has simple solution - walrus thingy
heck, any language that has an AST would be a Lisp according to your definition..