| ▲ | usrnm 3 hours ago |
| And yet, somehow Lisp continues to be everyone's sweetheart, even though creating literal new DSLs for every project is one of the features of the language. |
|
| ▲ | vkazanov 2 hours ago | parent | next [-] |
| Lisp doesnt have much syntax to speak of. All of the DSLs use the same basic structure and are easy to read. Cpp has A LOT A of syntax: init rules, consts, references, move, copy, templates, special cases, etc. It also includes most of C, which is small but has so many basic language design mistakes that "C puzzles" is a book. |
| |
| ▲ | lmz 2 hours ago | parent [-] | | The syntax and the concepts (const, move, copy, etc) are orthogonal. You could possibly write a lisp / s-exp syntax for c++ and all it would make better would be the macros in the preprocessor. The DSL doesn't have to be hard to read if it uses unfamiliar/uncommon project specific concepts. |
|
|
| ▲ | varjag 2 hours ago | parent | prev [-] |
| It's because DSLs there reduce cognitive load for the reader rather than add up to it. |
| |
| ▲ | usrnm 2 hours ago | parent [-] | | Well-designed abstractions do that in every language. And badly designed ones do the opposite, again in all languages. There's nothing special about Lisp here | | |
| ▲ | varjag an hour ago | parent [-] | | Sure but it's you who singled out Lisp here. The whole point of DSL is designing a purpose formalism that makes a particular problem easy to reason about. That's hardly a parallel to ever-growing vocabulary of standard C++. |
|
|