3 ms·
Re: Only to realize that the author defined it's own little world. Lisp makes it easy to shape a sub-language to fit your own head well. The problem is, few ot
by tabtab 8y ago
Re: Only to realize that the author defined it's own little world.
Lisp makes it easy to shape a sub-language to fit your own head well. The problem is, few others can figure out YOUR head. Communication conventions are not always pretty or efficient, but they work because they are conventions. If you place parsimony (compact abstractions) above inter-human communication, then all you get is isolated parsimony.
- lispm 8y agoOne can document sublanguages, too. The Common Lisp standard for example defines sublanges like LOOP, FORMAT, the Pretty Printer, CLOS, etc. The better embedded languages in Lisp often follow conventions: see for example CLOS and the various conventions it follows from naming to integration. The actual problem is that defining sublanguages for most developers is not something they have learned. The result is a multitude of languages for similar tasks with their own infrastructure. For many programmers it is normal to wait for new language constructs for several years - while they work around this by combining language built-in constructs (extreme: creating lots of bloat - see Java), by using preprocessors (upto transpilers of different languages - see Java and Javascript for languages transpiling to those). There is some complexity in Lisp providing features for embedding languages. But there is also complexity in working around that with languages not very good in embedding. See for example Clojure, a language which provides functional programming idioms on top of Java - the integration is great - but many developers are not satisfied about the integration when it comes to debugging - see the complexity for example of stack traces in a layered language design.