But other than a Skyscanner predecessor (VIA), a computer algebra engine, and Grammarly, are there any other modern high profile lisp powered products?
Okay, other than Skyscanner, Grammarly, HackerNews, Emacs, CircleCI, Metabase, Crash Bandicoot, Nubank, other Clojure projects etc, what has Lisp done for us?
Or, to lose the Monty Python snark, "Aside from the same handfuls of projects, counted on the digits of two hands, and always reiterated anytime somebody asks for high profile Lisp projects, what other high profile code is there from a language whose proponents always advertise its huge productivity gains?"
Crash Bandicoot was Lisp, but the greatest PSX game (Metal Gear Solid) was written in C, so I’ll use that to justify my programming opinions to others.
Seriously, you really aren't aware of the association of Lambda with gay rights? Are you a native English speaker or an American? It's easy to google, widely known, and well documented. I'm glad for the opportunity to educate you!
I've also heard conservatives try to implausibly deny they ever heard of such a thing as the "gay lisp", too, but that ignorance-based excuse doesn't hold any water, either.
But I suppose there are some home-schooled Fred Flintstone conservatives living under a rock in Bedrock (or Florida or Texas) who have carefully cultivated their ignorance about gay history and culture, and who have never met any gay people (or are so openly homophobic that most gay people refuse to come out to them out of fear), and that their deep ignorance untainted by the facts is part of the basis for their rampant homophobia and terrified moral panic.
>The Lambda Legal Defense and Education Fund, better known as Lambda Legal, is an American civil rights organization that focuses on lesbian, gay, bisexual, and transgender (LGBT) communities as well as people living with HIV/AIDS (PWAs) through impact litigation, societal education, and public policy work.
>Lambda: In 1970, graphic designer Tom Doerr selected the lower-case Greek letter lambda (λ) to be the symbol of the New York chapter of the Gay Activists Alliance.[5][6] The alliance's literature states that Doerr chose the symbol specifically for its denotative meaning in the context of chemistry and physics: "a complete exchange of energy–that moment or span of time witness to absolute activity".[5]
>The lambda became associated with Gay Liberation,[7][8] and in December 1974, it was officially declared the international symbol for gay and lesbian rights by the International Gay Rights Congress in Edinburgh, Scotland.[9] The gay rights organization Lambda Legal and the American Lambda Literary Foundation derive their names from this symbol.
>The Encyclopedia of Homosexuality has the following entry on Lambda:
>In the early 1970s, in the wake of the Stonewall Rebellion, New York City's Gay Activists Alliance selected the Greek letter lambda, which member Tom Doerr suggested from its scientific use to designate kinetic potential, as its emblem. (Curiously, in some ancient Greek graffiti the capital lambda appears with the meaning fellate, representing the first letter of either lambazein or laikazein.) Because of its militant associations, the lambda symbol has spread throughout the world. It sometimes appears in the form of an amulet hung round the neck as a subtle sign of recognition which can pass among unknowing heterosexuals as a mere ornament. Such emblems may reflect a tendency among homosexuals toward tribalization as a distinct segment of society, one conceived as a quasi-ethnic group.
>In More Man Than You'll Ever Be by Joseph P. Goodwin (Indiana University Press:Bloomington, 1989) on page 26, Goodwin writes:
>The lowercase Greek letter lambda carries several meanings. First of all, it represents scales, and thus balance. The Greeks considered balance to be the constant adjustment necessary to keep opposing forces from overcoming each other. The hook at the bottom of the right leg of the lambda represents the action required to reach and maintain a balance. To the Spartans, the lambda meant unity. They felt that society should never infringe on anyone's individuality and freedom. The Romans adopted the letter to represent "the light of knowledge shed into the darkness of ignorance." Finally, in physics the symbol designates and energy change. Thus the lambda, with all its meanings, is an especially apt symbol for the gay liberation movement, which energetically seeks a balance in society and which strives through enlightenment to secure equal rights for homosexual people.
And then of course there's the purple (another classic gay color) cover of Structure and Interpretation of Computer Programs, with the two magic dudes dressed in drag with a lambda symbol floating between them.
> I've found that a lot of social conservatives tend to be unconsciously afraid and ashamed of Lisp out of moral panic due to its implicit associations with homosexuality (the gay lisp stereotypical speech attribute, and lambda being associated with gay rights).
This is hardly believable to me. How did you arrive at that conclusion? Isn't the community of Rust, a language I think that you can safely call a lot more popular than Lisp these days, also very vocal about supporting LGBTQ+ rights?
But Lisp has a much longer tradition of terrifying social and linguistic conservatives since 1959.
And look at all the social conservatives desperately fighting against the inclusivity of the Rust and other communities, which kind of proves my point that it terrifies and threatens them.
And gimp and AutoCad (ok, not anymore)
But I would like to say also: is it a solid/sound metric “how many well know projects use it”?
There where extremely popular junk languages for decades, that are mostly regarded as crap today.
That's not what I mean. It's up for debate whether Clojure is a real Lisp, but that aside, they're farther apart in paradigms than most languages are. One is an immutable functional language running on a JVM and the other is a hodgepodge of OOP concepts and low level programming capabilities.
I don't mean to say this as a dig on Lisp, but the reason you didn't just list Clojure projects or just CommonLisp projects is because we would transparently see how few have actually worked for either of them. So when you lump them together, it comes off like we're scraping the bottom of the barrel for examples, and that's not even considering how much these companies actually use Lisp or have continued using it.
Fairly certain Raytheon uses CL in their signal processing pipeline for simulating ICBM missile defense so if you not melt down in WW3 you got lisp to think for that, at least partially.
Fully expect the first HN thread while we climb out of the ruins to be though 'what has lisp ever done for us, it doesn't even run my web app'
The big one that I always remember is Crash Bandicoot - Naughty Dog I think had their own version of Scheme and then switched to Racket at some point. Nubank are also a semi-high profile company who use a lot of Clojure.
Of course, if you ditch the "modern" requirements, I'm sure there is more web infrastructure and scripts supported by Common Lisp than people would want to admit. . .
according to any Andy Gavin, the cofounder of Naughty Dog and a MIT AI lab alumni, crash 1, 2 and 3 were written on GOOL/GOAL[0] which was a home-brewed lisp. According to Franz themselves, the language was hosted on allegro common lisp[1]. the language gave him an ability to push ps1 platform to its limits by leveraging the kind of thinking that's part of lisp lore: incremental recompilation of a running ps1 instance using a remote little language written in and hosted on a Common Lisp dynamic environment. the previous sentence describes a poorly understood practice that of a dynamic environment leveraged development that was part of lisp machine and smalltalk machine and a handful of other now forgotten approaches. in a sense crash was not just "written in lisp", it was written leveraging lisp machine like thinking, that Gavin would've been familiar with from his MIT AI days.
when naughty dog got sold, all the remaining Gavin lisp systems were eventually stripped, so that the company for all intents and purposes became a standard c++ shop. some time later some hipsters wired plt scheme[2] as a scripting language for the Naughty Engine 2.0. unlike the original Gavin approach this is not some deep leveraged architectural decision, and it being lisp is pretty irrelevant to the sort of capabilities it provides. imho scripting language for a game engine selection is a lipstick on a pig kind of process, as demonstrated by various basic-like potato languages that came with legendary triple-As.
It's the Reddit story all over. Lisp devs know Lisp + X, but everyone else only knows X, so we'll use X instead -- even if it's inferior and causes issues down the line.
This isn't really limited to Lisp though. It applies to quite a few languages with the excuse of "market forces" where "market forces" really means "we want to makes sure our devs are easily replaceable cogs" (using a niche language actually pressures both sides to stick together because the dev can't easily find a new job and the company can't easily find a new dev).
It's slightly different: Naughty Dog had proven that they can deliver commercial successful applications (novel platform games on the Playstation with excellent content) using Lisp. They had their own IDE on top of Common Lisp and as a delivery vehicle a Scheme-like runtime.
They were bought by a much larger C++-Shop (Sony) and were trying to get the benefits from a larger eco-system. In the end they were bought for their talent, their experience, their brand - but not for their technology.
For Naughty Dog it could also have been the right moment, since from a certain point in time the game platforms are getting so complex that making custom inhouse game runtimes may no longer make sense for smaller game studios.
Reddit OTOH had never delivered anything commercially successful in Lisp, little experience with Lisp, but heard that it could be cool. They used unproven tech. Naughty Dog used proven tech and had enough experience to do low-level systems programming for a brand new game platform. Which is really an outstanding achievement. Reddit had only a rough prototype in Lisp, Reddit then switched inhouse to other technology.
Naughty Dog only switched because they were bought out by Sony who then demanded that they change languages.
Reddit was merged with another YC company. That company used Python, so they switched everyone to Django. Last I knew, most of Reddit’s outage woes were still due to the outdated ORM they are stuck with. In any case, Common Lisp is hardly “unproven Tech”.
> Naughty Dog only switched because they were bought out by Sony who then demanded that they change languages.
To reuse a larger code-base, instead of working on their own new platforms for the next systems.
> In any case, Common Lisp is hardly “unproven Tech”.
Common Lisp is a language. Software is running on implementations and SBCL was relatively new then (2005).
They used SBCL which at that time was not used to implement such websites.
Naughty Dog used Allegro CL, which was already used in a bunch of 3d/OpenGL applications. Their own runtime was custom build and required real deep expertise in implementing a GC-less Scheme for an embedded platform.
Reddit could have switched to a paid Common Lisp variant without any trouble if they'd actually had issues. The people there said they moved to Python because that's what the other team knew. I don't see a reason to argue otherwise.
The argument behind the Naughty Dog switch was also pretty clear. Sony wanted to be able to move devs between projects easily and everything else used C++, so they'd rather force Naughty Dog to use C++ than tell everyone else to learn Common Lisp. To my knowledge, there was zero discussion on the merits of one or the other and it was a business call.
Further, the reams of custom code Naughty Dog now has written on Racket points to them still loving lisp and not minding if they have to invest a lot of effort into being able to use it in their designs.
> Reddit could have switched to a paid Common Lisp variant without any trouble if they'd actually had issues.
I thought they had issues. Didn't they?
Paid Common Lisp variants tend to get expensive and even for those, the main applications rarely were high-traffic websites with UI frameworks.
Take ITA Software / Google, they were developing core business logic of the flight search engine in Lisp - the product than ran/runs in SBCL. They had a team of 100+ people and a bunch of the top Lisp talent of that time. They also invested a lot into improving SBCL.
> Sony wanted to be able to move devs between projects easily and everything else used C++, so they'd rather force Naughty Dog to use C++ than tell everyone else to learn Common Lisp. To my knowledge, there was zero discussion on the merits of one or the other and it was a business call.
A business call is based on assumptions: larger ecosystem, more libraries, shared runtimes, etc. That's all much more economical than doing it alone as a small studio.
> Further, the reams of custom code Naughty Dog now has written on Racket points to them still loving lisp and not minding if they have to invest a lot of effort into being able to use it in their designs.
Of course they love Scheme and they were then back creating their own content delivery tools. But they stopped implementing runtime things like core 3d graphics animation frameworks for new CPUs/GPUs, etc.
Things were more complicated than that with Reddit from what I've read (and from a now defunct blog post they wrote not to mention various talks and interviews from devs who were there at the time).
Their devs were using Macs in 2005 which ran on PowerPC. Their servers were x86, but running FreeBSD (honestly, that was a tall ask for most languages in 2005). They had an issue finding threading libraries that worked on that OSX/PPC and FBSD/x86 combo. They further complained that there weren't tons of libraries available for use either. Finally, they also made some bad architecture decisions unrelated to Lisp.
The switch is still a weird one if you move aside from the new team not knowing or wanting to learn Lisp. Python isn't threaded at all, so they could have stuck with non-threaded CL and still have had 100x faster code. Likewise, they wound up rewriting all the python libraries they were using because those libraries turned out to have tons of issues too.
Naughty Dog continued using Lisp for game development throughout the Uncharted series at least, I'm not sure about The Last of Us but I would be very unsurprised if that changed.
They just stopped having the game written nearly purely in custom Lisp dialect, instead only mostly - effectively switching from GOAL setup of Jak&Daxter run-time to similar approach to GOOL in Crash Bandicoot - core written in C/C++ running considerable portion of game logic in Lisp (variant of PLT scheme in Uncharted).
Uncharted dev tools were also built in PLT Scheme (aka Racket).
To clarify, Naughty Dog has still been using LISP-based scripting and asset definitions in their recent games[1]. (Though I count The Last Of Us as recent so I guess that shows how often I play games.)
Some people do not realize this, but the thing you build when you compile an Emacs distribution is not a text editor. It's just a specialized lisp interpreter that has primitives for handling things like frames, buffers, and other UI-type stuff like detecting key chords, plus some math and stringy stuff, and a few other bits and bobs. The editor itself is written in Elisp.
To illustrate, this is what I get when I run `sloccount` on the source download of Emacs 28.2 from gnu.org:
It's basically 75% elisp, 25% C, and more or less all of that C code is either implementing the lisp interpreter itself, or interfacing to system libraries. Using Emacs is really the closest you can get these days to working on one of the old LISP machines from the 80s, except it's more fun.
> It's just a specialized lisp interpreter that has primitives for handling things like frames, buffers, and other UI-type stuff like detecting key chords, plus some math and stringy stuff, and a few other bits and bobs.
One day, it may actually include a decent text editor too! But for now, it's the end-luser's responsibility to cobble one together from the provided parts.