6 ms·
I'm not a Ruby user, but its dynamic OO nature reminds me of the Smalltalk and Self tradition, and those languages certainly do stick to a "beautiful philosophy
by chriswarbo 10y ago
I'm not a Ruby user, but its dynamic OO nature reminds me of the Smalltalk and Self tradition, and those languages certainly do stick to a "beautiful philosophy", something like 'it's method calls all the way down'.
Other beautiful philosophies include:
- Logic programming. Although Prolog strayed from the path in the name of efficiency, approaches like minikanren seem more "philosophically pure".
- Term rewriting. I've only used it in the form of Maude, but Pure looks like a more practical implementation.
- Proof assistants. The (tongue in cheek) philosophy is something like "once it compiles, we don't even need to run it". Agda is probably the most "pure" example which is still maintained. Less elegant examples are Coq, which uses imperative metaprogramming, and Idris which has no qualms with switching off checks in the name of pragmatism.
- catnaroek 10y agoAgreed about Prolog. I missed that one. I know neither Maude nor Pure, so I can't comment. Coq is ridiculously powerful, but hardly beautiful.
- im_down_w_otp 10y agoAre we not doing, "Phrasing." anymore? Guys? Guuuyyysss? .... Danger zone!
- chriswarbo 10y ago> Coq is ridiculously powerful, but hardly beautiful. I agree, hence my qualification that it relies on an imperative layer (Ltac) to do anything useful, like dependent pattern-matching. I've edited my potentially ambiguous phrasing.
- snaky 10y ago- Concatenative and tacit programming. Forth, APL, Joy, Unix pipes, Haskell's point-free style to name a few