3 ms·
The rule is referring to application plugins and extensions. In the early 90s, there was an antipattern in lots of large applications to evolve an extension lan
by d-us-vb 3y ago
The rule is referring to application plugins and extensions. In the early 90s, there was an antipattern in lots of large applications to evolve an extension language that was originally just a dialect of a config language of some kind. Then the developers would try to add if/else without changing the syntax of the config language, and then add functions, and before long, you have an overcomplicated yet poorly specified and slow implementation of something almost but not quite entirely unlike Lisp.
This same phenomenon is the reason why John Ousterhout wrote Tcl and the GNU project started Guile.
- AnimalMuppet 3y agoThink in terms of enterprise apps. Jira, say. But with enterprise stuff, you can't totally insist that the company do it your way. Too many companies have custom steps at points in their workflow. So you need the ability to do some custom process at some points in your enterprise app. So you needed more than just a configuration file. You needed a configuration file that could contain code. That's what brings you to Lisp - the ability for a data file to contain code that could be imported and executed by a running program.
- jnxx 3y ago> This same phenomenon is the reason why John Ousterhout wrote Tcl and the GNU project started Guile. Except that Guile is an implementation of Scheme, which is essentially a somewhat minimalist variant of Lisp. So in this case, a real programming language was included intentionally as configuration language. And this is the same concept as why GNU Emacs is an editor written in Lisp on top of C routines - very similar how data science is often done in Python on top of Numpy and several other packages.