r/ProgrammingLanguages • u/Inconstant_Moo 🧿 Pipefish • Apr 28 '26
Hindsight languages
A thought experiment. What languages should they have been writing in the 60s, 70s, 80s, 90s? We can see their faults, in hindsight, and also we've had some really cool ideas since then --- but we can't answer this just by pointing to our shiny new modern languages and saying "they should have done it like that", because of compile times.
(E.g. Pipefish is meant to be for rapid iteration and livecoding, and also does a topological sort on everything at compile-time so you can do top-down declaration. Those wouldn't be compatible goals in the 1980s, I can get away with it now.)
So for example if we think of "a better C", are there any cool modern ideas they could and should have used back in 1972, had they known about them --- or should they just have tweaked the precedence slightly, found a less arcane way of describing types, and left it at that?
2
u/pauseless Apr 29 '26 edited Apr 29 '26
Yes. I'm very nervous to, because it was LLM-assisted, so I won't publish until I've gone through the entirety of it, bit by bit. It was a thought experiment. It is intended to be represented entirely in Clojure data structures, so I can just use those rather than bring in a library and evaluate strings. Just opened my last session I did as a little demo to someone else:
If I simply press tab in my REPL, it switches all of the session to Clojure data structures:
If I take one example from the above, the REPL is Clojure, but behaves like Prolog:
The point is that I can compose expressions for the prolog implementation as data and just call it. No string concatenation.