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
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • 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)

  • 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.

  • 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...

  • 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.

  • 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