News for hackers. Stuff that matters.
Re:The Lisp curse, now coming to your ecosystem by tomjen3 on Thursday November 05, 2026 @03:14PM (#50383874)
Lisp missed its timing. When it was above and beyond everything else and a totally different world, it was way too expensive and way too inefficient.

Today, when mainstream languages have stolen much from Lisp, the benefit of using a language where you can generally just add a gem, egg, or crate is much higher than the benefit of the one thing that is still unique to Lisp: macros. Reflection is inelegant as hell when you compare, but it will get you almost all the way macros do.

At the same time, typed languages have become much more like dynamic languages. The types have disappeared into var and let statements; they are now inferred rather than repeated. Pattern matching has been added, and more—without compromising the benefits for larger teams and larger code bases.

Purists will disagree, but I haven't seen a real world problem solved in Lisp that I couldn't also solve in other languages.

And yes, I am interested in being proven wrong. I want to know what kind of problems still exist that are that hardcore. But I suspect a big part of it is that those who code in this still think the "hello world" for Java looks something like this:

    public class HelloWorld {
      public static void main(String[] args) {
        System.out.println("Hello, World!");
      }
    }
when in reality it now looks like this:

    void main() {
      println("Hello World");
    }
and in C# it looks like this:

    Console.WriteLine("Hello, World!");
And comes with full first class support for Linux and Mac.

Lisp is an intellectual tower and has given an incredible amount to the programming community in terms of ideas and a playground for people to try things. I'm not denying any of that — it should be celebrated. But my thesis is this: most of that has been moved, copied, stolen, and adapted to mainstream programming languages.

Re:The Lisp curse, now coming to your ecosystem by brlewis on Thursday November 05, 2026 @03:31PM (#50384090)
>Purists will disagree, but I haven't seen a real world problem solved in Lisp that I couldn't also solve in other languages.

Turing completeness makes "I couldn't also solve" an impossibly high bar.

But if what you mean is, you haven't seen macros used in ways that make you wish your day-job programming language had macros, that's fixable.

Re:The Lisp curse, now coming to your ecosystem by Xirdus on Thursday November 05, 2026 @04:30PM (#50384717)
Not GP and not Lisp programmer. But I'm curious about what you said. If you had to name one popular app or web service (>10,000 monthly unique users) that'd be much easier to clone in Lisp than in Python or Rust, specifically due to macros - what would that be?
Re:The Lisp curse, now coming to your ecosystem by brlewis on Thursday November 05, 2026 @05:13PM (#50385226)
I'm not active with any Lisp these days myself, either. Back in Web 1.0 days, when a lot of apps were transforming streaming rows of SQL results into grouped HTML entities, I used macros to implement something akin to SQL's LEAD and LAG, but at the application level. I don't have time, so I have to leave it as an exercise to the reader why it would take more verbosity to implement this in another language.

https://brl.sourceforge.net/brl_4.html#SEC31

Now, as a non-Lisper, I have to wait and hope the maintainers of programming languages I use will take useful syntax from other languages. Back when I was an active Lisper, I could take such syntax myself.

Re:The Lisp curse, now coming to your ecosystem by Xirdus on Thursday November 05, 2026 @05:39PM (#50385518)
Is there any such syntax remaining? Sure, 20 years ago it was a pain to do manipulations of more than 1 element at a time. But nowadays everyone and their dog has some form of iterator combinators that make it a one liner. Even C++, although the line gets quite wide. Is there anything that, as of 2026, you miss having in your day job language (and that language isn't Java)?
Re:The Lisp curse, now coming to your ecosystem by brlewis on Thursday November 05, 2026 @08:32PM (#50387040)
I'm having fun in TypeScript and only casually missing the capabilities of macros. It's Turing-complete, so doing the equivalent things is a simple matter of programming. And I'm almost always processing JSON structures, not SQL result rows, so I don't miss being able to write syntax like `sql-repeat` on a day-to-day basis.
Re:The Lisp curse, now coming to your ecosystem by Xirdus on Thursday November 05, 2026 @10:02PM (#50387638)
Languages are no more Turing-complete than they were 50 years ago. If lack of Lisp macros was such a huge deal back then it affected day to day web development, then surely it must be affecting us all in this day and age too. Arguably, using JSON instead of SQL should make such macros even more important due to the unnesting of data we need to do. So why isn't it?
Re:The Lisp curse, now coming to your ecosystem by brlewis on Friday November 06, 2026 @10:13AM (#50393306)
About today, JavaScript is good at referencing JSON. You don't need macros to make it better at it.

About back then, Perl/PHP/Python/Java/Ruby were never as good at pulling groups out of rows of SQL, but people could work around that by taking more time, writing more code, being more careful. So if you haven't seen macros used to make it better, you don't realize you're missing out on a huge deal. Maybe you just have a vague idea that things could be better, but you're too busy finding and fixing bugs to pursue this thought.

Re:The Lisp curse, now coming to your ecosystem by Xirdus on Friday November 06, 2026 @11:45AM (#50394770)
In other words, as of 2026, this phrase:

> if what you mean is, you haven't seen macros used in ways that make you wish your day-job programming language had macros, that's fixable.

is not true at all anymore? Or is it only true under very specific circumstances (if so, what are they)?

Re:The Lisp curse, now coming to your ecosystem by brlewis on Friday November 06, 2026 @03:40PM (#50398191)
True if you would like syntax that doesn't lend itself to eager evaluation. In the `sql-repeat` example, `group-beginning?` takes an expression that can't be eagerly evaluated. It's evaluated twice, once for the current row and once for the previous row, and the result of evaluation is compared. It can't just be eagerly evaluated for the current row and the result used.

Also true if you want a shorthand syntax for defining a variable where the name of the variable is meaningful. JavaScript takes care of the most common case with destructuring assignment, but with macros you could make such syntax yourself.

Re:The Lisp curse, now coming to your ecosystem by outworlder on Thursday November 05, 2026 @07:55PM (#50386800)
Macros don't make it easier to 'clone' software. They make it easier to write software, any software.
Re:The Lisp curse, now coming to your ecosystem by andyclap2 on Friday November 06, 2026 @01:56PM (#50396694)
And arguably harder to read and maintain other people's software.

Don't get me wrong I'm a macro fan. I've worked with some elegant codebases using metaprogramming but it's been challenging bringing people up to speed with super clear efficient - but novel - code,

Other projects that were just down the line Java boilerplate built on a well understood library worked just as well in other ways.

Personally I think reducing cognitive load is key, I've found people don't have the energy to work with clever code, even if it makes writing it a delight.

... and then llms happened, and I now don't write code at all but closely review a fire hose of mediocrity that gets the job done. I don't want that too magical.

Re:The Lisp curse, now coming to your ecosystem by iLemming on Thursday November 05, 2026 @06:13PM (#50385902)
[delayed]
Re:The Lisp curse, now coming to your ecosystem by tiberious726 on Friday November 06, 2026 @03:39AM (#50389710)
Or just "Hello World" running under the repl
Re:The Lisp curse, now coming to your ecosystem by vindarel on Thursday November 05, 2026 @07:36PM (#50386640)
> the one thing unique

it's the developer experience

(and the combination of all features, including homoiconic macros)

> a real world problem

You can solve anything with enough sweat ;)

One example? Routific's core algorithm is written in CL (source: its author on HN). Why not Java, like everybody on his field at this time? Because it was too tedious (there's a blog post somewhere). His prototype evolved in efficient production code, now the heart of the company.

> my thesis: most of that…

agreed on "most". Many features appear here and there in other languages. But there's the parts and the whole.

And the living platform ("stop writing dead programs"), still unique (with Smalltalk).

Re:The Lisp curse, now coming to your ecosystem by pjmlp on Friday November 06, 2026 @04:06AM (#50389931)
As big Smalltalk / Lisp / ML languages fanboy, I fully agree with you.

In fact the main reason I hang around Java and .NET as my main tools, is that those development environments have taken many key features from those programming languages and development experience, to the point that where they still lose to them isn't that much relevant.

Additionally, now with AI code generation, the actual programming language matters even less, natural language can be translated to whatever programming language one feels like, at the whim of a Markdown paragraph describing the desired output, assuming it is supported on the model being used.

However it is kind of sad that we lost the last AI wave from Lisp/Prolog to Python, losing good machine code generation in the process.

Re:The Lisp curse, now coming to your ecosystem by Capricorn2481 on Friday November 06, 2026 @06:51AM (#50391251)
> And I have seen many real problems solved with Lisp, regardless, that is why commercial Lisps like LispWorks and Allegro are still in business

Can you think of some domains where Common Lisp is a better choice than other languages? I have enjoyed Clojure for a lot of things, but I have not really found the features of SBCL useful for the kind of work I do.

For instance, restarts without unwinding the stack are cool, but for a server that's going to be running in production, it's not something I really leverage. I could use conditions to change the context of code called downstream, but I just haven't had a reason to do this yet.

Re:The Lisp curse, now coming to your ecosystem by pjmlp on Friday November 06, 2026 @07:24AM (#50391530)
Siscog, a Portuguese company well known in the community.

https://www.siscog.pt/en-us/

This is an old blog entry about their Lisp history, https://www.siscog.pt/en-us

https://www.siscog.pt/en-us/blog/35-years-of-lisping-at-sisc...

Then you have ITA Software bought by Google, and the reason they have Lisp style guide,

https://www.itasoftware.com

https://google.github.io/styleguide/lispguide.html

Autocad has used Lisp as main scripting language for quite some time, although they also do .NET as well nowadays,

https://help.autodesk.com/view/OARX/2026/DEU/?guid=GUID-037B...

Note that everyone talks about SBCL, but forget that the ones that survive the Lisp machines like experience are LispWorks and Allegro Common Lisp,

https://www.lispworks.com

https://www.lispworks.com

Which if you want to have a taste how it looked like back in the day, some folks are trying to keep Interlisp-D memory from Xerox PARC alive.

https://interlisp.org

https://primer.interlisp.org/introduction