Hacker News new | past | comments | ask | show | jobs | submit login

Parens are powerful in lisp(s) because it means the syntax is its own AST and can be manipulated by itself (macros). It's one of those exploding head moments that you (including me) can get totally ensorceled by. But--as with all language features--I think pragmatism demands that we ask "what incredible software has this produced", and I can't think of any standouts.



There are various problems with 'what incredible software has this produced?'.

Various incredible software which has been produced date back from before the Lisp machine went the way of the dodo. An example of this would be Genera.

Other incredible software has a very specific type of draw which doesn't work for everyone. Examples would be Guix and Emacs.

And yet other software is very niche, leading to it being barely discoverable. As Lisp isn't a hot programming language (like Rust is), these projects don't usually get 'this thing was programmed in Lisp' coverage. Things like NASA's SPIKE, for example (cfr. <https://allegrograph.com/press_room/franzs-allegro-cl-used-f...>).


Sure, mainly I mean like, "Lisp's feature X enabled us to do thing Y that we couldn't do in other languages which let us make baller software Z". I think other languages arguably have this stuff: C/C++/Rust have direct hardware access and speed, JavaScript has the browser, etc.

It's a little hard for me to pick out exactly what makes Allegro CL [0] good at the AI thing. They do say you can also write rules in Prolog, which makes me think the advantage isn't down to Lisp but rather the library code they wrote on top of it.

> Other incredible software has a very specific type of draw which doesn't work for everyone. Examples would be Guix and Emacs.

Yeah, maybe this is one. I almost listed Emacs, but I'm a little torn (also a Vim user so don't trust me here haha). Lisp is inextricable from Emacs, but I'm not familiar enough to say whether or not you would have an appreciably harder time writing an equivalent app in, say, Lua. Maybe! Maybe live reload is core to the experience, etc. Like I said I'm not super familiar.

So yeah, I should clarify that I don't think the software needs to take over the world to meet my criteria here. I think niche software can totally qualify; in fact I think it's more likely to qualify. Basically it's "we wrote a unique, useful program in Lisp that we really couldn't have written in a different language." Does Emacs fit the bill here? Maybe, but I kind of doubt it.

[0]: https://franz.com/products/allegrocl/


Also the heavyweights of CAD, which have definitely affected your life even if you’re not consciously aware, are Lisp based.


Examples (for Common Lisp, so not citing Emacs): reddit v1, Google's ITA Software that powers airfare search engines (Kayak, Orbitz…), Postgres' pgloader (http://pgloader.io/), which was re-written from Python to Common Lisp, Opus Modus for music composition, the Maxima CAS, PTC 3D designer CAD software (used by big brands worldwide), Grammarly, Mirai, the 3D editor that designed Gollum's face, the ScoreCloud app that lets you whistle or play an instrument and get the music score,

but also the ACL2 theorem prover, used in the industry since the 90s, NASA's PVS provers and SPIKE scheduler used for Hubble and JWT, many companies in Quantum Computing, companies like SISCOG, who plans the transportation systems of european metropolis' underground since the 80s, Ravenpack who's into big-data analysis for financial services (they might be hiring), Keepit (https://www.keepit.com/), Pocket Change (Japan, https://www.pocket-change.jp/en/), the new Feetr in trading (https://feetr.io/, you can search HN), Airbus, Alstom, Planisware (https://planisware.com),

or also the open-source screenshotbot (https://screenshotbot.io), the Kandria game (https://kandria.com/),

and the companies in https://github.com/azzamsa/awesome-lisp-companies and on LispWorks and Allegro's Success Stories.

https://github.com/tamurashingo/reddit1.0/

http://opusmodus.com/

https://www.ptc.com/en/products/cad/3d-design

http://www.izware.com/mirai

https://apps.apple.com/us/app/scorecloud-express/id566535238


This site is written in Lisp, I believe (a dialect called Arc).

Not only that, but the site and Y Combinator as a whole likely wouldn't exist without Lisp.

https://paulgraham.com/avg.html

(Wow! Over 20 years ago!)


Yeah but I'm skeptical that there's anything about HN's software that's uniquely enabled by being written in Arc. I want someone to point to a feature in a Lisp and say, "you can write X software only in Z because there's Y feature". I'll even accept "significantly more easily" instead of "only" here. For example: "you can write secure kernels only in Rust because it has direct hardware access and memory safety" (let's stipulate this is all true).


Has anything else notable been done with Arc?

Rather than "Lisp gives you superpowers", maybe the story is actually "there were some very effective developers who happened to use Lisp to build their stuff".


> "what incredible software has this produced", and I can't think of any standouts.

See for example https://interlisp.org , an early Lisp system with IDE developed at BBN and later at Xerox PARC. They got the 1992 ACM Software System Award for pioneering work in programming environments.

Grady Booch once said at an Eclipse conference: 'For those of you looking at the future of development environments, I encourage you to go back and review some of the Xerox documentation for InterLisp-D.'"

I think the historic Interlisp-D system counts for "incredible software".

There is a bunch of incredible software written in Lisp, from language-oriented workstations, parametric CAD systems, databases, etc. Many languages have "incredible" software written with it, you'll find those for Lisp, too, over the decades it exists. But you might need to very specialized domains, like computer algebra systems, autonomous robots for inspecting pipelines, chip design verification or quantum computers.


I might have a big galaxy brain thought here that I'm just scratching the surface of in this thread. I think languages/platforms are less about the technology or features and more about shared values and community. Languages/platforms each have an ethos. They prove it with features (Rust's borrow checker, Perl's regular expressions, PHP's templating) and build a community around that ethos and the shared values.

Are there, from time to time, language features that really set a language apart? Yeah I think so, Ada has a bunch of baller features, Erlang's OTP is pretty unique, etc. I think these are the kinds of things you could point to and say, "I wrote a network server that processes random user-generated text as fast as possible and has zero memory bugs because I used Ada's safety and performance features" or "I wrote a sprawling telephony system with insanely high uptime because of OTP". They're like the materials science advances right, we found a new way to make a metal that will never bend and is virtually weightless, enabling us to build a space elevator.

Is Lisp like this? Probably! Its ideas of dynamic typing, garbage collection, no direct memory access, interpretation, etc. have been nearly entirely co-opted by static languages like Java and dynamic languages like Lua. I guess my argument is that now, I don't really see a differentiator outside of macros. Maybe it's unfair, but I think my threshold here is "we used macros to build AI/something nuts". I don't think that's happened.

Then again I'm not embedded in the Lisp community -- I definitely got everyone to list their favorite Lisp projects here haha. Maybe some of these examples qualify? I'm not gonna run them all down. I just think there's something rich here about community, ethos, and technologies that find their ways through different languages for technical and cultural reasons.


> in the Lisp community

There is no such thing as "a" Lisp community, since Lisp is a term for a wide variety of different languages, each having their own community. Common Lisp is a group of implementations (which are sub-communities), Scheme is a group of implementations / sub-standards (which are sub-communities), there are derived languages (-> Clojure)...

> I think languages/platforms are less about the technology or features and more about shared values and community.

Yes.

> I guess my argument is that now, I don't really see a differentiator outside of macros.

The larger topic is "symbolic computation" and Lisp itself is one application of it. Lisp cannot only be used to implement itself, but a range of languages. "Interpreter" in Lisp actually means "interpreting Lisp", where interpreter for Java means "interpreter for JVM byte code", which is something very different. An interpreter written in Lisp for Lisp interprets source code, which is actually data.

Scheme, Clojure, ML and a bunch of more esoteric ones were first implemented in Lisp. Often languages and language extensions are integrated into Lisp. Racket (a variant of Scheme) makes language implementation one of its core features.

> Maybe it's unfair, but I think my threshold here is "we used macros to build AI/something nuts". I don't think that's happened.

There are many many usages of language extensions via macros, which are "nuts". For example the possibly first parametric CAD system called iCAD was based on Lisp + a dynamic object system, whose user-facing forms are macros. The language Lisp was thus extended to describe complex parametric CAD models. I once heard that Boeing had whole models of complex jets (think 747) described and loaded into Lisp memory. Turbines were described in Lisp and design changes could be generated via code&data changes. The cabin configuration of jets were described and computed with design rules in Lisp.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: