3 ms·
This is precisely correct IMHO. Lisp was designed for single programmers managing their entire stack (including the compiler itself) rather than for teams mostl
by dreamcompiler 7y ago
This is precisely correct IMHO. Lisp was designed for single programmers managing their entire stack (including the compiler itself) rather than for teams mostly gluing libraries together. Modern software engineering practices are focused on lower-level languages that don't give programmers the power of Lisp.
[Herein I mostly mean Common Lisp when I talk about Lisp. I have no experience with large projects in Clojure or Scheme.]
Most modern software -- Lisp programs included -- is written by multiple programmers in both coordinated and uncoordinated teams. Lisp can easily adapt to team programming but SWE needs to be augmented to handle programming projects that operate at a meta-level, which is natural with Lisp. If you write code at a meta level with ordinary SWE it can lead to disaster.
SWE needs tooling, procedures, and policies to deal with macros, package naming, bootstrapping, multiple-inheritance classes and first-class methods, etc. before it can really support Lisp. Lisp projects that have added such SWE features manually tend to succeed; those that don't tend to have difficulty with Lisp. My point is the team has to do the SWE work; SWE tools operating in default mode tend not to be good enough for Lisp.
- lispm 7y ago> Lisp was designed for single programmers managing their entire stack Funky, McCarthy had a whole team working on and with Lisp.
- dreamcompiler 7y agoSo did Symbolics. And most of those programmers had full-stack mastery. That's not the case with modern software engineering projects. Nor did McCarthy or Symbolics have to deal with the manager-friendly buzzword salad that permeates most software projects today.
- lispm 7y ago> those programmers had full-stack mastery. After many years working in that environment...