I think âchaosâ is a good choice of word here. I left the OO mindset mainly because it assumes you can create a formal system around the world. Its demands for strict static typing and âcorrectnessâ, its myths and claims about design and refactoring patterns, and many more doctrines and precepts all have that same notion about âdefining the worldâ to them. No matter that the dream of a âprovably correctâ program that can be statically verified before it runs hasnât really gone anywhere (in terms of wide spread practical applications), no matter that the overhead of âtyping the worldâ and unit testing it leads to a Sisyphus-hell of perceived order and security. No thought given to truths known all around the world for thousands of years, that there is a balance of chaos and order in the world, and human strife takes place in that equilibrium. Dynamic languages and LISPs in particular share certain chaotic aspects, and I think most developers would agree that they are rather sharp knives, if we want to imagine the static approaches as blunt hammers. But the universe is far from static, and much of its rules have turned out to be more relative, less absolute, more dynamic and less static, especially recently. A language like Javascript lets you hack away a solution to a problem without much ceremony and upfront specification (but has a myriad of solutions to add that later), which is probably what a large portion of projects today require. Most of my own have turned out to change so dramatically year over year (or even month) that any specification or formal system I mightâve laboriously established would have cost me orders of magnitude more on top in maintenance/rewrites.
I think what many seasoned developers appreciate in a LISP is in part its appreciation and reflection of this pervasive âunknowabilityâ. Clojure goes even further with this (open maps, extensible protocols, motivation behind spec, and many other design choices). I think at some point or other weâre going to have to accept that static design and formal systems are very nice for any formally specified, well defined context, but quickly become extremely costly and bloated when used in the maelstrom where chaos and order meet.
To me the âLISP curseâ is exactly that - using it you have to face how few assumptions you can actually make about your problem space/the world. It doesnât easily let you escape into that illusion of well-boundedness and predictability, there is no go-to approach for solving a particular problem - most answers to any question will be very elaborate and start with âit dependsâ. It requires a developer to leave that comforting notion, and syntax is of course an easy excuse.
I am actually so happy that this post got any replies at all. I think I had a typo in the subject line. Should have been âDoes anyone know anything about being like an octopus?â
It was supposed to be a request for marine biology and more specifically, people who work with clojure and work with octopus research.
The metaphor was secondary.
But actually, I love that there are people in the clojure community that think of themselves as an octopus.
It is a relief to finally be around people who are as weird as I am.
Itâs interesting that many marine creatures have their freshwater counterparts. There are even freshwater dolphins. But there is not a single known freshwater cephalopod.