3 ms·
Greenspun's Tenth Rule of Programming
- ncmncm 5y agoThe older this gets, the clearer it becomes that it never meant anything to begin with.
- dunmalg 5y agoYeah, it's a bit of a tautology. It amounts to "complex problem solving tools tend to converge with existing tools for addressing similar complex problems as their level of complexity approaches parity".
- ncmncm 5y agoMoreso: Powerful tools tend to Turing completeness. Greenspun identified Lisp as the ideal Turing-complete language. Because it was his personal favorite. Because, like other Lisp fans, he learned it young, and it symbolizes, for him, his youth.
- axiosgunnar 5y agoFunny how a joke gets it‘s own Wikpedia article but so many things worthy of one are deleted by the editors due to a percieved „lack of notability“
- dunmalg 5y agoA) I think this is one of those jokes that has enough of a core of truth that it isn't entirely a joke. Murphy's Law is likewise a joke, but it speaks to a core facet of reality, so it also gets treated seriously. And B) there's the fact that Greenspun's 10th Rule is written using just enough technical jargon that the vast majority of non-programmers don't see the joke, and therefore take it as a serious assertion. If he had said "C/Fortran programmers keep reinventing the wheel, only square shaped and crooked, while the round wheel Common Lisp already exists", they'd delete it as a joke.
- leephillips 5y agoWell, who cares? That’s just an opportunity to publish the article on your own website. If it’s really worthy of note then your site will become the destination for people who want to read about it.
- analog31 5y agoThough a joke, it does touch on something I've seen happen multiple times. A program goes from having human readable config files, to having a little built-in scripting language. An app that I use has built-in editors for 5 different languages, because each language evolved within a different section of the software. One of the languages is a crude version of BASIC. Plus there are instructions for interacting with the software via two different inter-process communication architectures: DDE and something else. Naturally it brings the risk of second-system effect, but were this program to be written from scratch today, they'd probably just choose a scripting language from among the many interesting FOSS offerings, and use it across the board.
- pydry 5y agoI've seen the little gleam in programmers' eyes when they declare that "what we really need here is a mini language" more than once. It's a trap.
- michaelcampbell 5y agoI've grown from loving "little languages" as noted by Programming Pearls, to despising DSL's. Not for any overarching philosophical reasons, but mainly because modern DSL's are just awful. Maybe I've just come across bad ones.
- whalesalad 5y agoI shared this because I was trying to find "Virding's Rule" but came up short. Finally found it (http://steve.vinoski.net/blog/2008/02/07/wiger-on-erlang-style-concurrency/ http://steve.vinoski.net/blog/2008/02/07/wiger-on-erlang-sty...) Any sufficiently complicated concurrent program in another language contains an ad hoc informally-specified bug-ridden slow implementation of half of Erlang. raises hand guilty as charged