What would you like; an example of Lisp being used in a particular domain; a how to guide? You can use lisp for everything you can build with C/C++/Python/JavaScript
Do you want to learn Lisp so you can get a better paying job? I don't think any lisper wold recommend that (unless you want to include Clojure + JVM in that equation). Lisp simply is not that popular
Do you want to learn Lisp so you can master computing? Great idea!
Do you want to learn Lisp so you can prototype a truly novel idea for which you cannot find a plugin library? Great idea! The examples of Reddit and Rumba you gave are exactly this.
https://common-lisp.net/lisp-companies
There is also a list of projects:
But I doubt this is very up-to-date.
For libraries, your link lists projects hosted on their Gitlab, so I'd refer to this one: https://github.com/CodyReichert/awesome-cl
HN itself is (was ?) Written in lisp if I'm not mistaken
There is this list https://common-lisp.net/lisp-companies
Racket/scheme are lisp, you'll have to include them as well.
Commercial software + hardware required to comfortably run Lisp Machines was more expensive than UNIX workstations.
Having paid for UNIX workstations, most shops would just use C and C++ instead of paying for commercial Lisp packages on top, plus scripting languages like Tcl and Perl brought a bit of Lisp like experience into UNIX.
Eventually most of the stuff that made Lisp awesome ended up in Smalltalk, Java. .NET, Dylan, Julia, Python however there is still plenty missing from the whole experience.
https://en.wikipedia.org/wiki/Interleaf
It lives on today as Broadvision QuickSilver, which still runs on Lisp:
https://broadvision.com/broadvision/quicksilver/quicksilver-...
If you have so few that you can maintain a list, it kinda proves OP's point.
Also as an addendum to his point, what about projects being written in the last decade or two?
Emacs is cool, but it was created in 1976...
OP didn't really make a point. He just said that he would like posts about lisp being used in production
> Also as an addendum to his point, what about projects being written in the last decade or two?
It's a nieche language so it's pretty pointless throwing lists of all CL projects in production at people. Instead I suggest you say what domain interests you and maybe someone who worked in your domain will be able to give a more meaningful response
+1. I am the OP that asked the question. I wasn't making a point. I was asking a question. The company list provided in the response to that was helpful.
BTW this one is the list they are based on: https://github.com/azzamsa/awesome-lisp-companies/
See also
Lisp was a major programming language as it powered nearly all AI research for many many years and many of it's ideas have spread into languages we use today. For instance, it was the first language with a garbage collector !
It has many more or less direct descendents that are used
The fact it was created some 70 years ago, but still run nearly unchanged and has active users and project is an achievement.
I'm not saying it hasn't served its purpose, I'm just saying that the claim that it's not a dead language is wrong, and you seem to agree.
Well your claim is just simply false. People have clearly demonstrated to you that CL is used today in production
I'm sure a lot of websites are currently in production running on PHP 4. Is PHP 4 dead? Yes, it is.
I guess you need to define "dead".
I have to agree with others here that Lisp is not dead for the simple reason that Emacs is not dead. Emacs has a thriving community of developers who code and use Lisp almost everyday to solve problems.
Org-mode alone has a large number of users from all walks of life, from writers to event organizers and Lisp code is written for Org-mode everyday.
There are high-profile well known companies that use Clojure for processing high volume of transactions. They are in all probability writing Clojure code everyday that is going to production everyday.
What exactly is your definition of "dead"?
P.S. You have also completely misrepresented my earlier comment in your comment here - https://news.ycombinator.com/item?id=33464215 so I am not entirely sure if you are arguing here in good faith or if you have an axe to grind.
If a language is being widely used in specific existing 'legacy' projects and for people learning it to get a job in their maintenance (e.g. COBOL?), then I'd say it's dead. If during the last five years every organization considering what language to use for their new production system (as opposed to someone's toy project or learning project) chose something else, then that language apparently has no valid niche remaining and is effectively dead, being chosen only due to legacy/compatibility reasons.
Also, I'm not sure whether I'd equate Clojure with Lisp - I'd treat it as a separate language/ecosystem evolved from Lisp as it was commonly understood; I'd consider Clojure activity as evidence that "Lisp may be dead but its descendents live on".
> I'd consider Clojure activity as evidence that "Lisp may be dead but its descendents live on"
except that common/emacs lisp or scheme is certainly not dead by any measure lol
I don't think you know what 'dead' means
In 2015, Paris Airport Air Traffic Software were running on windows 3.1.
Is windows 3.1 outdated ? Yes. No longer a public facing product ? Yes.
Dead ? Absolutely not (at least back then, maybe it got decommissioned).
Around that time, a friend of mine was doing his master Thesis in an astronomy lab. He had to load fortran 77 routines from a 5" floppy disk that were doing critical computation (they were in the process of migrating). Same diagnosis: outdated, became a niche product, but not dead at all.
Are there new things being developed based on lisp?
The analogy is not very good.
No
> Are there new things being developed based on lisp?
Yes.
> The analogy is not very good.
I guess I am missing your point. Care to elaborate your point?
Put otherwise, as https://news.ycombinator.com/item?id=33465597 says one could define “dead” in a way that Win 3.1 is dead but Lisp is not (not more than usual anyway).
https://github.com/openmainframeproject/cobol-programming-co...
Which frankly amazes me. The game was released in 1998!
The only minor nit I can pick here is that most (all?) of these seem to be proprietary software where someone college student learning to program cannot easily contribute. But there are tons and tons of Go and Rust projects where college students can contribute. A similar list of open source projects written in Lisp can be very helpful too because that would mean I don't have to find an employment in one of these few companies to be able to contribute something useful with Lisp.
It didn't end in 1976, though.. it's creation continues to this day.
magit and org-mode are a couple of other killer apps written in lisp.
Legacy projects tend to reflect the state of the art of the time they started, which reflects on aspects such as software architecture, technologies, and more importantly the overall technical commitment and technical debt which makes it hard or practically impossible to fix past wrongs or replace subpar technologies with better options.
Emacs started out in a time when Lisp was the only game in town in terms of dynamic interpreted languages. That's perfectly fine. Would the same people stick with Lisp in a time when, say, the likes of Python and JavaScript and Node.js and Ruby and .NET exist?
the note taking app I use is a fairly popular clojurescript project, first thing that came to mind. https://github.com/logseq/logseq
In general Clojure is pretty popular in particular on the backend. Nubank is I think primarily using Clojure, but Walmart, Atlassian and a bunch of other big companies do to.
Programming languages aren't just for machines to execute. There are for humans to communicate and collaborate. There are technical concerns of course, but these are secondary to social, economical and aesthetic factors or simply luck.
If you don't get why: They are the equivalent of a bunch of linguists discussing about how good and consistent the grammar of a human language is, compared to, say, English, and then someone chiming in with "well if the grammar of that language is so great, how come only a few thousand people in a small country are using it and there are almost no books published in it?"
As someone who loves coding in Lisp myself I assure you my comment is not written in bad faith. And I am not sure what point I am missing. I read the entire TFA from top to bottom and I liked it!
I genuinely want to see a list of projects (preferably open source) written in Lisp. That would help me to support my other arguments when I talk about Lisp with others who do not use Lisp. Thanks to the HN crowd, we have already received a good list of links and examples in the comments of this thread.
I am not sure why I need to be attacked personally for a genuine question.
Q: is there an interesting 3D graphics software being developed in Lisp? A: https://github.com/kaveh808/kons-9
Q: is there an interesting GUI project being developed in Lisp? A: https://github.com/rabbibotton/clog
Q: is there an interesting HPC project being developed in Lisp? A: https://github.com/marcoheisig/Petalisp
Q: is there an interesting cryptography library being developed in Lisp? A: https://github.com/sharplispers/ironclad
see how different these domains are? its unlikely someone will find more than one of these projects interesting
Q: how do I write a website with Lisp? A: https://lispcookbook.github.io/cl-cookbook/web.html#easy-rou... and https://www.gnu.org/software/guile/manual/html_node/Web-Exam...
Q: do I have to use emacs for developing Lisp? A: No, https://github.com/vlime/vlime and https://github.com/nobody-famous/alive
Q: is there a lisp with a more familiar standard library? A: https://docs.hylang.org/en/stable/
Q: How can I write scripts with Lisp? A: See above or https://github.com/roswell/roswell#scripting-with-roswell
Q: it looks like Common Lisp doesn't support (software with a C library) but it needs to if I want to do it at work. A: https://github.com/rpav/cl-autowrap
Fair request.
As the instigator of the kons-9 graphics project, I had 2 primary reasons for using CL:
1) It is a language I find enjoyable to develop in. As I say, it is the only computer language I have used which doesn't fight me when I try to get things done.
2) I do hope the users of the system will care that it is written in CL, as I am attempting a language-based 3D system where the real flexibility and potential of the software will be available to those who are willing to develop tools and extensions in CL. More of an IDE and less of a typical GUI-based digital content creation system, of which there are plenty out there.
And a bonus point 3) I wanted to consciously do something different, which accepts the fact that Lisp is not the choice of least resistance. No one ever asks "Why JS?".
Honestly, this comes across as a pretty arrogant statement.
I think it is you who is missing the point that many developers would genuinely like to see a cool language being _used_, not just admired or academically discussed. And the parent in no way disparaged the fact that one can very legitimately enjoy a language simply for the beauty of it. But it is still a very valid point to want to see it also being used for useful things.
I suggest those developers to stick to sites like https://github.com/trending instead of injecting their popularity contest questions in a thread about homoiconicity and lambda-calculus.
Lisp is pretty much "undead". We all know it and nothing, even investing billions of dollars and man hours to build the best runtime with state of the art GC implementations and library ecosystem will convince the younger generation to use it instead of something like JS. So what's the point of these questions then? Rather than curiosity driven, most of them seem defeatist and a gatekeeping effort by trolls if you read between the lines (and I do agree the post I replied to is not an example of that).
You are not the sole person who gets to define what this thread is about. The participants together get to decide that, and if you don't like the result, move on, instead of trying to gate-keep.
> We all know it
I'm sorry, what? This is a public forum. You're saying a 20 year-old tech interested uni student who is checking out the site for the first time has precisely the same context and knowledge as someone who's been writing in lisp for the last 30 years?
Your attitude does not bring something positive to the table here.
No, but the trolls do. They know about the state of the language and hijack every Lisp related thread with this question just to troll. These are the majority. You don't happen to read many Lisp HN threads in detail do you?
Again, you could dial down the arrogance.
I do read most threads on lisp in a fair bit of detail, and I don't often find "trolls". I usually find an assortment of people interested in discussing various aspects of lisp, including its real-world utility. And I mostly find the various perspectives to be nothing but positive additions to the debate.
I daresay that you fit the description of a troll much more than someone who dares ask if lisp is actually useful.
Nice, I like it. Lisp as like the Dracula of languages: immortal and extraordinarily majestic and powerful, but doomed to forever prowl the night, feeding on the innocent--and occasionally turning them.
“Programs must be written for people to read, and only incidentally for machines to execute.”
"All it does is segfault!" I wake up in a cold sweat. It's still dark; a quick glance at the clock shows that it's about 3 in the morning. There's a stir besides me.
"Was it the dream again?" My wife says from the darkness to my side.
"It's fine, just go back to sleep."
She mumbles something incoherent and in a few moments she's snoring quietly. I lie down, but I already know there's no more sleep for me tonight.
+++
In the morning I arrive late in the office. I was in the parking lot at 7:30, but it took me an hour and a half to work up the nerve to walk in the building. They're at it again. The "collaborators". After we invented the perfect programming language for human communication and collaboration (we-lang) software developers took to calling themselves 'collaborators'. Today they're rehashing the same argument that they've been on for the past month.
"Michael, why are you always late? The computer is doing it again, and you know you're the only one who gets it." A loose mob of collaborators are standing around a 50 inch monitor on the wall. A half blank terminal monopolizes the screen. It seems to have been in the middle of producing log output, but now the cursor blinks lazily at a final message: "generic fault encountered".
It started with looks of confusion, then contempt, and finally resignation. And now I stare back, knowing how today is going to go. The same way as all days. "Yes, there are two problems, which is what I was trying to say yesterday. The first problem is that we're launching multiple threads and then they're all trying to modify the same unlocked data. And the second," I take a deep breath, "and the second is that the goal is kind of an open problem. We're potentially ambiguous in a few places and even if we weren't then it could take decades for the fastest computers to brute force a solution that conforms to the spec."
"Michael, we've been over this before. We all agreed that this is the nature that the UI should follow. We all agreed that this is how the back end ought to work. Why can't you, those mathematicians you keep talking about, and the computer all just get with the program. Maybe try being a team player for once." In the mob heads nod in ascent. We-Lang is perfect. Everyone agrees and understands everyone else. The collaboration between humanity has been achieved as if we were a single person. One mind. Unification.
But when we run it on the computer, all it does is segfault.
You're missing the whole point. These non-technical aspects rear their heads in real-world projects, and perhaps are more critical than technical ones. If a language is subpart in its non-technical aspects, developers are very quick to replace them with languages that are better.
And as the OP pointed out, Lisp is rarely seen or showcased in real-world projects.
Why is that?
Therefore someone asking "if Lisp is so great, why doesn't it get any real world use" in such a thread is doing so in bad faith.
Did UNIX win because it was the best OS at the time? What about VHS? You're oblivious if you think technical merits matter whenever you have to deal with economic factors and humans loaded with biases.
What reason is there to prevent someone who learnt this language to utilize it to “communicate with their computer” and share it with the rest of us? And I say that as someone who do like Clojure for example very much.
My opinion/answer is that while lisps have plenty of properties that make them great and that one gets used to all the parentheses, we as humans in the end are simply find it more alien then other languages, too uniform of a syntax hinders human parseability. (That’s why I think that clojure made a very great and pragmatic choice by introducing some other primitive data structures).
But it's still a significant factor. CTOs base their technology choices (languages and libraries) on the popularity of those.
Common Lisp is one of my favourite languages, yet when programming something with my friends I have to do so in other languages. Why? They simply don't like the syntax. It looks weird and alien to them. No amount of ecosystem, usability and performance improvements will make them ever consider it, and that's fine.
[1]: https://github.com/ggandor/leap.nvim [2]: https://fennel-lang.org/
Fennel transpiles to lua, it doesn't give more capabilities, I would say. The concept of productivity (and capability) is anyway confounded by so many factors, making the choice of programming language negligible (unless you pick one of the extremes, such as Brainfuck, of course).
My CV tool is written in Janet: https://withoutdistractions.com/cv
I realize you're talking mainly (exclusively?) about the editor situation, with which I don't disagree; but aside from that, I feel like learning Lisp as my first language sort of brain-damaged me for learning other languages, even ones thought to be simple to get started with like js or Python. The Lisp syntax and programming model are so simple to wrap your mind around that everything else, to me at the time anyway, looked noisy and inconsistent. Then I discovered Tcl and Prolog, found them as easy as Lisp to work with, and discovered I just have a super low tolerance for syntactic complexity.
StumpWM as well https://github.com/stumpwm/stumpwm
I agree. Lisp is one of the languages that people love to talk about rather than show off their projects
I've also written or contributed to several projects and products written Common Lisp, Scheme, Clojure, and (back when it was a Lisp) Dylan. These include, but are not limited to the following. Some of these are projects or products that I created entirely on my own; some are collaborations, or projects to which I contributed.
Some of these were years ago. Some of them are still on the market or under development.
- Panels: a constraint-based programming-by demonstration system
- GATE: a knowledge-based machine-control and compatibility-testing system used at Apple
- bauhaus: an operating system for mobile devices
- SK8: a rapid-application-development system
- The documentation toolchain for a startup's network-security product, later acquired by Cisco
- Clozure Common Lisp: A free and open-source Common Lisp compiler and development system
- Alpaca: a WYSIWYG word processor with Emacs-like customization features
- A syntax-aware diffing tool created under contract
- A rules engine for a set of educational games for the Office of Naval Research
- The entire control and UI stack for a forensic fingerprint livescanning product
- Delectus: A list manager for end users on macOS
- Categories: a loadable language-agnostic object system with configurable data model and dispatching
- The Fabric: a prototype immersive 3D networked multiplayer game
- clio: a work-in-progress cross-platform GUI framework
- OddBabble: a prototype of a knowledge-based social network
- Bard: a novel Lisp implementation
- kons-9: a 3D content-development system
https://github.com/penpot/penpot
Whimsical (commercial product) is also written in Clojure / Clojurescript.
If you don't see a project in your field it doesn't mean there is no software or library.
Are they as awesome as the Rust/Go projects? It depends.
Is it an exhaustive list? No.
For a list of companies using CL and more projects, old or current, see the other links.
## Music
- [OpusModus](http://opusmodus.com/) - a comprehensive computer-aided environment for the whole work of music composition. [Proprietary]. - [OM7](https://github.com/openmusic-project/om7) - a new implementation of the OpenMusic visual programming and computer-aided composition environment including a number of improvements on graphical interface, computational mode, and connection to external software libraries. [GPL3][2]. - [ScoreCloud](https://scorecloud.com/) - A web and mobile application to automatically create music notation from music performance or recordings. Built with LispWorks.
## DB tools
- [Pgloader](https://github.com/dimitri/pgloader/) - Migrate to PostgreSQL in a single command!. [PostgreSQL License] - [Pgchart](https://github.com/dimitri/pgcharts) - A self-contained web application that takes as input an SQL query text and outputs its data as a chart. [No License Specified]
## Utils
- [Cepl](https://github.com/cbaggers/cepl) - Code Evaluate Play Loop. [2-clause BSD]. - [Regex-coach](http://weitz.de/regex-coach/) - a graphical application for Windows which can be used to experiment with (Perl-compatible) regular expressions interactively. Freeware.
## Text editors
- [Lem](https://github.com/cxxxr/lem) - Common Lisp editor/IDE with high expansibility. [MIT]. Works for many languages, has a LSP client.
## Math
- [Maxima](https://sourceforge.net/projects/maxima/files/) - Computer Algebra System written in Common Lisp. [GPL2]. - https://github.com/susam/mathb A math pastebin
## Graphics
- [Sketch](https://github.com/vydd/sketch) -A Common Lisp framework for the creation of electronic art, visual design, game prototyping, game making, computer graphics, exploration of human-computer interaction, and more.
## Productivity
- [Grammarly](https://www.grammarly.com/) - Grammar checking. [Proprietary]. - [Deftask](https://deftask.com/) - Painless task management for teams. [Partly Open Source]. - [Ichiran](https://github.com/tshatrov/ichiran) - Linguistic tools for texts in Japanese language. [MIT]. - [Ballish](https://gitlab.com/ralt/ballish - a pretty fast code search tool.
### Window Manager
- [Stumpwm](https://github.com/stumpwm/stumpwm) - The Stump Window Manager.
## Mobile Applications
- [ScoreCloud Express](https://apps.apple.com/us/app/scorecloud-express/id566535238) - An iPhone and iPad application that automatically creates music notation from music performance or recordings.
### Games
Just 2:
- Kandria https://kandria.com/ - [sucle](https://github.com/terminal625/sucle) - A Minecraft clone (voxel game engine). [MIT]. - [Notalone](https://github.com/borodust/notalone) - You wake up nowhere in the night. Hungry zombies around, but your ol' pal "BOOMSTICK" is with you. [GPL3]
My selection comes from https://github.com/azzamsa/awesome-cl-software
It's an algorithm which understands momentum in the stock market, and finds where that momentum is flowing to find stocks with a good chance of really high gains. It averaged 9.17% daily increase across 127 stocks last month[0].
Lisp was a conscious decision because it allows a small team to be incredibly productive, plus the fact that it's a live image allows you to connect to it over the internet and poke and prod the current state, which has really allowed a much clearer understanding of the data.
I think grammarly is written in Lisp: https://www.grammarly.com/
Compare with Rust and Go. Rust and Go devs write articles evangelizing Rust but that's not all we see. We also see posts about so many useful Rust and Go projects too.
How can we see a similar trend for Lisp? And no, it cannot be writing a Lisp in a Lisp or writing a Lisp in your favorite language or writing your favorite language in a Lisp. I am looking for useful projects that do something useful for users who can't give a damn what language the project is written in.
I searched https://github.com/topics/lisp but a vast majority of the projects there are not software used by actual users in the wild. Most of them are projects that teach how to make a lisp or documentation about lisp. There are some useful software like browser, editor, etc. in there but they are few and far between.
I know Reddit was written in Lisp but it isn't anymore. So that's a bummer.
Does Roomba still run on Lisp? I can't find out with some quick searches.
HN is written in a dialect of Lisp so that is one example. Can we have more such examples? Even better would be open source examples where any college student can contribute?