3 comments

  • vindarel4 hours ago
    I like History but I&#x27;ll comment about Lisp in web apps today, if I may. We have a choice of web servers and web libraries (<a href="https:&#x2F;&#x2F;github.com&#x2F;CodyReichert&#x2F;awesome-cl&#x2F;#web-development" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;CodyReichert&#x2F;awesome-cl&#x2F;#web-development</a>), and we live in happy times where HTMX or Datastar are great fit for Lisp -as with any stack. See these Datastar examples built in CL: <a href="https:&#x2F;&#x2F;github.com&#x2F;fsmunoz&#x2F;datastar-cl" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;fsmunoz&#x2F;datastar-cl</a> I use and like the Mito ORM too, which comes with automatic migrations and, since last year, a composable query engine (SxQL).<p>Here you will find some screenshots of some of today&#x27;s web applications built in CL: <a href="http:&#x2F;&#x2F;lisp-screenshots.org&#x2F;" rel="nofollow">http:&#x2F;&#x2F;lisp-screenshots.org&#x2F;</a> and here an opinionated tutorial: <a href="https:&#x2F;&#x2F;web-apps-in-lisp.github.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;web-apps-in-lisp.github.io&#x2F;</a> One example: ScreenShotBot <a href="https:&#x2F;&#x2F;screenshotbot.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;screenshotbot.io&#x2F;</a> a successful open-source product and company. It now replaced Facebook&#x27;s automatic screenshot testing tool (source: their blog). So, web apps in Lisp are possible -with a right amount of learning time and elbow grease.<p>The incremental development and interactive top-level are still precious and unmatched.
  • neilv2 hours ago
    I contributed to a contemporaneous large and complex system in Lisp (Scheme) that used most of those.<p>It was one of those things where 1-3 programmers, working with the right tools and thinking, could out-perform all competitors, no matter how much resources competitors threw at the problems. (I can&#x27;t take credit for the initial architecture and implementation: that was all someone else.)<p>The system actually outlived Viaweb by decades, and I suspect still uses Scheme for a lot, especially for the necessarily complex backend.<p>(Half the problem for Scheme uptake was that most students only saw it school, as presented by a CS professor in an intro class, and then they did annoying homework, so they hoped never to use it again. They should&#x27;ve seen what we did with it, making it fly in ways that a CS professor wouldn&#x27;t in first-year classes, compared to how it would&#x27;ve been done in other languages at the time.)<p>&gt; <i>One way we used macros was to generate Html. There is a very natural fit between macros and Html, because Html is a prefix notation like Lisp, and Html is recursive like Lisp. So we had macro calls within macro calls, generating the most complicated Html, and it was all still very manageable.</i><p>We just used lists and functions for HTML. And often with quasiquote, when we wanted to splice &quot;dynamic&quot; bits into a substantial chunk of &quot;static&quot;.<p>I didn&#x27;t try to use macros for HTML until a decade after this talk. I liked the simple DSL, and leaning on buffered I&#x2F;O ports and string ports, but nobody else seemed to like it as much as I did (maybe because they didn&#x27;t have a prolific colleague doing 10x code-writing in a rather more delicate way of generating HTML):<p><a href="https:&#x2F;&#x2F;www.neilvandyke.org&#x2F;racket&#x2F;html-template&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.neilvandyke.org&#x2F;racket&#x2F;html-template&#x2F;</a><p>(Don&#x27;t look at the code, though. I wrote it before Racket got submodules, which are great if you have a strict, non-CL-ish module system and syntax extension mechanism that otherwise make some things much harder than in CL. I have a TODO note in there to refactor it with submodules, but I had to redirect my time towards other languages, for reasons having nothing to do with language merit.)
  • gwern5 hours ago
    Anyone know how redundant this is with the pg essays on his website? Not sure I&#x27;ve seen much about &#x27;Rtml&#x27; or other technical details of Viaweb before.