Aesthetics of Clojure/Lisp - Resources to look at?

Hello! I have an essay to write about aesthetics/beauty. Since there are no restrictions on the topic, I am thinking about writing my essay on Clojure/Lisp.

Are there any resources I might want to consider reading?

I know there some resources like An Intuition for Lisp Syntax

5 Likes

There’s some good reading in Love Letter To Clojure (Part 1) | Gene Kim (itrevolution.com)

1 Like

As for books, Lisp in Small Pieces is a nice dive into lisps, building many different lisp interpreters and compilers. Elements of Clojure talks about stuff that might interest you as well.

I’m really curious about how this thread will end up. The topic may be interpreted in a ridiculously wide sense, so I guess the responses you’ll get here will be mostly according to individual taste. Which might just be expected when we’re discussing aesthetics!

introspectability and generality are to values I see in Clojure systems that are easily ignored in, let’s say, Go and Javascript. We might make our data model introspectable (data driven programming), or make our runtime introspectable (REPL). Bret Victor’s Learnable Programming is an introspectable essay I could read over and over and over.

I find generality a bit harder to pin down. But instead of slapping feature on feature on feature, try to build a model, a layer underneath the features.

I hope you’ll get replies from @jackrusher and @dave.liepmann. I remember one of them saying something along “we’re working together because we share an aesthetic”.

I have an essay to write about aesthetics/beauty.

Might I ask in what subject/context? Philosophy? Art of some kind? A “Clojure aesthetic” might be hard to explain without going into technical details.

I am taking a humanities module, so I guess it could be philosophical in some nature. For instance, I might want to bring in Heidegger’s Aesthetics somewhere in my essay. But I am generally interested in what others find aesthetic/beautiful as well! :slight_smile:

With regards to going into technical details, my professor doesn’t have any issues with us doing so. He left the topic completely open in that sense. He does, however, realise that his lack of understanding might leave him unable to evaluate some of our essays well, which is why he plans to seek the help of some of his colleges or friends, where necessary.

Interestingly enough, the idea of whether we need context/understanding when seeing something as aesthetic is part of what we discussed in the course.

(If you really want exact specifics, I am taking the course here - 02.138 On Genre and Judgement: Cultures of Appraisal - Humanities, Arts and Social Sciences (HASS))

2 Likes

In «The mind behind Linux | Linus Trovalds» TED interview, Linus discuss about «good taste».

You should check out the content here: https://wiki.c2.com/?LispLanguage

And I recommend the linked pages as well, like: https://wiki.c2.com/?LostInaSeaofParentheses and https://wiki.c2.com/?EssExpressions

As for me, I think there is something about the conceptual symmetry of Lisp and it’s recursive nature as well.

Symmetry and Recursion I feel are everywhere in natural structures like Fractals. Repeating patterns, with the same pattern repeated within itself, and again… Those things have a kind of natural aesthetic.

Compare:

(foo bar)

to:

foo(bar);

The former is symmetric, the latter is not. The former can be repeated inside itself as well, while the latter will change appearance when doing so:

(foo (foo bar))

foo(foo(bar));

Because of its semicolon, when repeated inside it doesn’t have it, when outside you need it.

And I would say, like with Fractals, there is a kind of mental aesthetic when you realize that it can all be easily formalized as a mathematical formula. The Lisp syntax being easily parable and manipulated by programs gives me that same kind of meta-giggle.

It’s symmetric, it’s recursive, it repeats its pattern within itself, and it can be easily understood and manipulated by computers.

That said, I think it can also be noisy to some. Visually it does not look like prose, more like noise.

Bit if you were to frame a piece of code on canvas and put it up in a coffee shop, would you rather frame some Java or some Lisp? I think most bystanders that know nothing of programming would be more captivated by a frame of some Lisp code. I think it has a bit more of that “hacker aesthetics”, and the unfamiliarity of its visual, the noise of so many parenthesis, that I have no idea what this could be!! I think that will be more interesting to bystanders, than seeing some python where they might even be like… Oh it’s just like english, I think I can figure this out easy.

Some thing that bothers me though, is that there is some asymmety in the nesting, the tendency for things to go to the right, the “rightward drift” of Lisp.

It annoys me because it isn’t symmetric in the vertical:

foo = a
bar = b
ret = foo + bar
return ret

It looks more symmetrical in the vertical, it’s blocky, aligned, where as.in Lisp:

(let [foo a]
      bar b
      ret (+ foo bar)
  ret)

Lisp wiggles, your eyes go right and down and back left. I think this is one of its visual issues in terms of aesthetics.

Just rewriting:

(
let
[
foo bar
bar b
ret (+ foo bar)
]
ret
)

Gives it more vertical symmetry and I think.is visually more pleasing though now figuring out the scopes as a programmer reading the code gets hard.

1 Like

This is going to sound off-topic, but you might want to look at Roald Hoffmann’s article “Molecular Beauty”, which should be available, for example, at his website. Hoffmann is a theoretical chemist and generally creative person. “Molecular Beauty” conveys his view that certain molecules are beautiful. In some of the examples Hoffmann gives, the beauty lies in the molecules’ two-dimensional or three-dimensional structure, but in some of the examples, it also resides in the functionality of the molecule–the way it behaves, or the reason that its parts hold together as they do. It’s that kind of beauty in how things work or how they can work, that might be analogous to what can be found in lisps–and in Clojure in particular. (I also find properly indented lisp code to be visually pleasing.)

Some links Solfender (Solf) shared on Clojurians Slack:
“William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC] - YouTube
(and an article about the video, I haven’t read it though: The Most Beautiful Program Ever Written)”