Skip to content

Comment on Relic: Functional relational programming for Clojure(Script)parent

Comments

While I love Clojure, these ideas already existed in other languages. For example, Mozart/Oz basically integrates all major paradigms [1].

It's a bit of a tragedy it has been mostly abandoned. I wish a Lisp, such as Clojure, emulated Mozart/Oz semantics.

[1] https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf

Mozart/Oz [...] a bit of a tragedy it has been mostly abandoned

Agreed. But wow the documentation was a mess. So much language progress these last decades has been around increasing minimum expectations for ecosystem.

Poplog (integrated CommonLisp, prolog, ML, an a C-like; 1980's) is another on my list of roads regrettably not taken. Killed by commercialization. Which also zombied CL.

Basically any Expert System Shell in Lisp in the 80s/90s was a multi-paradigm programming system (ART, KEE, KnowledgeCraft, KnowledgeWorks, Babylon, and many others). There were also a bunch of functional/relational languages like Relfun, AP5 in Lisp. There are/were also a multitude logic/relational languages in Lisp.

If you had a unix, and didn't have several hundred to thousand (adjusted) dollars, in the mid to late 1980's and early 1990's, there was... very little. Gcc and CMUCL eventually existed and later became usable. My very fuzzy recollection is Poplog was available early on and cheapish but barriered (have your academic department negotiate with ours for a site license), then commercial. Over those years, I repeatedly searched for an environment to live in, and repeatedly came up empty. And repeatedly thought: Poplog could own this space, could be the obvious no-competition language choice for non-commercial non-proprietary development... but is trading that potentially massive impact for unicorn dreams and subsistence funding. Imagine a different mid 1990's, with gcc, and then python and perl and C++, struggling TCL-like to gain traction against a widespread active accessible portable powerful poplog/CL/ML tooling and community.

Waldek Hebisch, who is the maintainer for the Fricas computer algebra software, also maintains a 64-bit version of Poplog for amd64/x86_64:

https://github.com/hebisch/poplog https://www.cs.bham.ac.uk/research/projects/poplog/freepoplo...

Holy crap, that figure 2, showing all the programming paradigms and how they relate to each other is incredible.

The extended version of this is the book Concepts, Techniques, and Models of Computer Programming [1], which is just incredibly good.

There's also a summary poster [2].

Actually, CTM was in Rich Hickey's reading list when he designed Clojure [3].

[1] https://www.info.ucl.ac.be/~pvr/book.html

[2] https://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng201.pdf

[3] https://www.goodreads.com/list/show/137472.Rich_Hickey_s_Clo...

Thank you for the recommendation!

Wow that paper has a cool footnote about the “empty paradigm”:

Of course, many of these paradigms are useless in practice, such as the empty paradigm (no concepts)[1] or paradigms with only one concept.
[1]: Similar reasoning explains why Baskin-Robbins has exactly 31 flavors of ice cream. We postulate that they have only 5 flavors, which gives 2^5 − 1 = 31 combinations with at least one flavor. The 32nd combination is the empty flavor. The taste of the empty flavor is an open research question.

I don’t remember whether it was Rod or Todd, but “unflavored [iced milk] for me!” was in fact a Simpsons gag.

Link looks great; thank you.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.