writing lisp programs is odd

Lately I have been messing around with some lisps, not because I need a new language to fill the never ending urge of just "playing around with one more language I promise", but because they have been occupying my mind for quite a while now.

The reason for this is that lisps to me, have been something I both love and adore while actively ignoring. When it comes to making gui's, small scripts, or embedding a project with an extention language, I always reach for a lisp. The reason being that they are easy to write and fairly pleasent, while still being flexible enough to the point u can do bassicly anything in them.

But on the other paw I cannot FATHOM writing large or even reasonably sized project in lisp. I think it might be due to me not knowing how I would even start organizing my code in a lisp but the idea always eluded me. Why use a lisp when languages like ocaml and rust are right there. But I kind of want to change that, or more like I want to explore what I have been avoiding.

After I finished some of the projects I am currently working on I would love to try writing some more lisp code for bigger projects. The reason I want to is so that I can see both if my previous prejudice about lisp is justified or if I just hadn't written enough of it yet. But also since even though I only write lisp for small things, anytime I use lisp I feel pleasantly suprised by how nice practically any lisp API is.

I tried ou hunchtoot, a common-lisp web server library, and yet again I was suprised by how nice and consice the API was to use:

(require :asdf)
(asdf:load-system "hunchentoot")

(defpackage :my-web
  (:use :cl :hunchentoot))
(in-package :my-web)

(defvar server-port 8080)

(define-easy-handler (home :uri "/") ()
  (uiop:read-file-string "www/index.html"))

(defparameter *server*
  (make-instance 'easy-acceptor
                 :port server-port))

(start *server*)

(write-line (format nil "running server on port ~a" server-port))


;; just infinitelly looping while the server runs
;; otherwise our program will just exit
(loop (sleep 3600))

So yeah, I think I'll try out some lisp for bigger things once I get the time, I already really like lisp for small scripts and GUI's, so why not see if it's worth using elsewhere.

Created: 2026-07-08 Wed 00:50