>
The ways in which Lisp doesn't scale (people-wise) are well knownWell, memes about Lisp not scaling people-wise are well-known on forums like HN.
The actual data on this is lacking, like reports about someone having actually gathered five hundred Lisp developers onto one project and failed.
> each application essentially being its own programming language
Meme-fueled nonsense, I'm afraid.
Every complex application in any language is its own programming language.
New types and functions introduce new syntax, just like macros, along with new semantics.
So you know C? Okay, what's this, from the Linux kernel?
struct usb_host_endpoint {
struct usb_endpoint_descriptor desc;
struct usb_ss_ep_comp_descriptor ss_ep_comp;
struct usb_ssp_isoc_ep_comp_descriptor ssp_isoc_ep_comp;
struct list_head urb_list;
void *hcpriv;
struct ep_device *ep_dev;
unsigned char *extra;
int extralen;
int enabled;
int streams;
};
When and where is this allocated? What does it represent? How do you use it?
Guess what, this is new syntax. No, wait, what, it's just using the regular C grammar, right? How can it be new syntax? The same way that a Lisp program have new syntax if continues to be made out of parentheses, symbols, strings, numbers that conform to a rigid grammar.
The new syntax is in the schemas built with the definition abilities provided in the underlying fixed grammar.