4 ms·
> If each LISP team is using their own DSL Lisp already comes with several different 'DSL' built-in: * object-system CLOS * format strings with control st
by lispm 8y ago
> If each LISP team is using their own DSL
Lisp already comes with several different 'DSL' built-in:
* object-system CLOS
* format strings with control structures
* LOOP
If one programs in a language with flexible syntax, then a programmer has to learn how to deal with that:
* what a the basic language extension patterns?
* how can one debug it?
* what a typical pitfalls?
* what is good design?
* how to document them?
* how to present syntax errors to the user?
Language extension suddenly is a developer activity and not a language designer activity.
Much of the stuff in the Java-world, which has used DSLs with different syntax (like being based on XML), can be done directly in Lisp.
A Lisp team will need to learn how to deal with that. There are Lisp code-bases which have been maintained for decades.
Even the SBCL compiler, which is written in Lisp, has its roots in code from the 80s (the Python compiler of CMUCL - unrelated to the later language Python).
Macros make things more complex, but the fear that macros make team programming or development of long-living code impossible is just wrong.