It's 2023, so of course I'm learning Common Lisp

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • slyblime

    Interactive Lisp IDE with REPL, Inspector, Debugger and more for Sublime Text 4.

  • I don't know if you're interested in Sublime Text or not but https://github.com/s-clerc/slyblime is pretty good. VS Code also has Alive which I heard is good although I don't use Electron apps.

  • alive

    Common Lisp Extension for VSCode

  • You may be interested in https://github.com/nobody-famous/alive which brings the power of slime to vscode (Mostly, it's relatively new and missing some features, but getting better all the time)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • CSharpRepl

    A command line C# REPL with syntax highlighting – explore the language, libraries and nuget packages interactively.

  • > The repl driven workflow is amazing and the lisp images are rock solid and highly performant.

    do people not realize that basically everything vm/interpreted language has a repl these days?

    https://www.digitalocean.com/community/tutorials/java-repl-j...

    https://github.com/waf/CSharpRepl

    https://pub.dev/packages/interactive

    not to mention ruby, python, php, lua

    hell even c++ has a janky repl https://github.com/root-project/cling

  • cling

    The cling C++ interpreter

  • > The repl driven workflow is amazing and the lisp images are rock solid and highly performant.

    do people not realize that basically everything vm/interpreted language has a repl these days?

    https://www.digitalocean.com/community/tutorials/java-repl-j...

    https://github.com/waf/CSharpRepl

    https://pub.dev/packages/interactive

    not to mention ruby, python, php, lua

    hell even c++ has a janky repl https://github.com/root-project/cling

  • ql-https

    HTTPS support for Quicklisp via curl

  • Solutions for the lack of https:

    - add in https://github.com/rudolfochrist/ql-https (downloads packages with curl)

    - use another package manager, CLPM: https://www.clpm.dev (or the newest ocicl)

    > CLPM comes as a pre-built binary, supports HTTPS by default, supports installing multiple package versions, supports versioned systems, and more.

    - use mitmproxy: https://hiphish.github.io/blog/2022/03/19/securing-quicklisp...

  • CIEL

    CIEL Is an Extended Lisp. Scripting with batteries included.

  • > lots of interoperability libraries

    That's true. For cases when you want to start with a good set of libraries (json, csv, databases, HTTP client, CLI args, language extensions…), I am putting up this collection together: https://github.com/ciel-lang/CIEL/ It can be used as a normal Quicklisp library, or as a core image (it then starts up instantly) or as a binary.

    It can run scripts nearly instantly too (so it isn't unlike Babashka). We are ironing out the details, not at v1.0 yet.

    > handling a runtime error by just fixing the broken code--in-place, without any restarts [from the blog]

    Also (second shameless plug) I should have illustrated this here: https://www.youtube.com/watch?v=jBBS4FeY7XM

    We run a long and intensive computation and, bad luck, we get an error in the last step. Instead of re-running everything again from zero, we get the interactive debugger, we go to the erroneous line, we compile the fixed function, we come back to the debugger, we choose a point on the stackframe to resume execution from (the last step), and we see our program pass. Hope this illustrates the feature well!

  • DCEVM

    Dynamic Code Evolution VM for Java 7/8

  • Umm.. you can throw an exception, you can return to previous call frame, you can reload modified classes. If you want unlimited code modification, you can use dcevm https://github.com/dcevm/dcevm

    https://www.jetbrains.com/help/idea/altering-the-program-s-e...

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • thirteen-letters

    Competitive word scramble in the browser, made for Lisp Game Jam (Spring 2023)

  • Note that Common Lisp doesn’t require functional programming. Mutation, side effects, etc. are fine. I just write imperative code for the most part.

    My code was quick and dirty, so I don’t think anyone will learn anything from it, but it’s here: https://github.com/jaredkrinke/thirteen-letters

  • yesod-persistent

    A RESTful Haskell web framework built on WAI.

  • tools.decompiler

    A decompiler for clojure, in clojure

  • You can kind of do the same as DISASSEMBLE in Clojure.

    There are some helper projects like https://github.com/Bronsa/tools.decompiler, and on the OpenJDK JitWatch (https://github.com/AdoptOpenJDK/jitwatch), other JVMs have similar tools as well.

    It isn't as straightforward as in Lisp, but it is nonetheless doable.

  • JITWatch

    Log analyser / visualiser for Java HotSpot JIT compiler. Inspect inlining decisions, hot methods, bytecode, and assembly. View results in the JavaFX user interface.

  • You can kind of do the same as DISASSEMBLE in Clojure.

    There are some helper projects like https://github.com/Bronsa/tools.decompiler, and on the OpenJDK JitWatch (https://github.com/AdoptOpenJDK/jitwatch), other JVMs have similar tools as well.

    It isn't as straightforward as in Lisp, but it is nonetheless doable.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts