I played with Erlang for a time. Erlang was strict with write once variables. You handle it recursively. There are NO global variables but what you do to say add numbers is you pass your variable to an add function and it returns a new variable and the old one is gone. (Or something like that) It was a few years ago, but it wasn’t that hard to get used to. In essence you are passing copies of the data around.
The benefit Erlang gives you is massive concurrency. The problem I had is that there is a bit of a cliff in programming where you are making trivial applications and then BAM you need to make something with a little substance. I had trouble making that jump, but I could make a bubble sort algorithm that could run on all 16 cores of my computer.
There is a new kid in town (because of course there is) Elixir. It is a new language built on top of erlang that has a seemingly good community and I think Microsoft has released an open source IDE which supports Elixir. I don’t know if Elixir is OOP friendly, but I know that Erlang was decidedly NOT OOP. OOP sucks, but it is what everyone does. In small and isolated instances OOP can be really beautiful mostly it fills you with existential dread.
Thanks to Lemmy, the fediverse and CHATgpt, the programming bug is hitting me again. It is something I am wanting to look at. I am trying to figure out where to dip my toes in. Clojure is ‘LISP’ for the JVM. I have been tempted to try that or Elixir.
Programming can be fun. A bit like this picture…
My meat identifies as vegetables.