Ask HN: “Enabling” vs. “Restricting” in Programming
A long time ago, around the time Joel Spolsky was the top programming blog, I read an article that split programming languages (or was it programmers?) between "enabling" and "restricting". Or they may have used slightly different words.
But basically, "enabling" languages are about giving a lot of power to the programmer and trusting him to use it right. Today it's exemplified by the Rails doctrine of "provide sharp knives" except the article I read predated that manifesto by a few years.
And "restricting" languages were about protecting the programmer from himself, enforcing strict interfaces, strict private/public, and in general restricting/guiding the programmer to the way that is considered correct design by the language. IIRC this was exemplified by Java.
Has anyone read or remember something like that? Sounds like Steve Yegge's wheelhouse. Possibly this post https://gist.github.com/cornchz/3313150 but there are plenty more https://ratfactor.com/yeggedex Oh, that's very close. And a Steve Yegge blog post fits the era I'm thinking about. I think what I read was less rambling, with a narrower topic, but it was very very close to this conservative/liberal duality. https://wiki.c2.com/?BondageAndDisciplineLanguage Closest I know of, but many people have probably written on this topic. That's interesting. A bit all over the place, but that's expected of C2 :-) There was this talk ("Capability vs Sustainability") from 2012: https://www.youtube.com/watch?v=NftT6HWFgq0 Very nearly exactly what you're describing; not sure if it's the same thing you were thinking of, or just part of a similar thought-wave at the time.