I really hope that extensible languages are the future. It is unfortunate that a majority of their users had no clue on how to properly extend the languages. It's about a time to fixe it.
> resulting code was so hard to read,
DSL code is the easiest to read and maintain. No "general purpose" language would ever match this.
I don't think so. As the article states, this is a social/community issue, if every application has it's own language and syntax that is a huge barrier for others coming to work on it.
You might not care about that but most large pieces of software are not written by one person. Beyond that you come to issues of code and skill reuse.
A lot of people dislike the expressibility of Go, but it's hard to write code that someone else can't easily come and read and understand.
> if every application has it's own language and syntax that is a huge barrier for others coming to work on it
And this is quite obviously not true. A well designed (note the emphasis!) DSL makes any app/problem domain/library/whatever much more accessible than any kind of a "general purpose" language can. Simply because DSL does not obscure the essence of the problem.
> Beyond that you come to issues of code
Code reuse with DSLs is way beyond anything the inferior languages can achieve. I witnessed cases where 30+ years old DSLs got revived by reimplementing them from scratch, immediately making an entire (huge) code base available on a new platform, with new tools and bells and whistles.
> and skill reuse.
One should never care about those pitiful "language" skills. They're worthless.
No, it's more of a No True Scotsman. People have written DSLs that are unreadable, but those DSLs weren't Well Designed(TM). So their failures don't count against DSLs, because only well designed DSLs count.
I think empirical evidence is that DSLs are easy to make not readable, especially as they evolve. Then again, that's true of almost everything, including assembly language programming, structured programming, object oriented programming, and functional programming (did I miss anything?).
> As the article states, this is a social/community issue, if every application has it's own language and syntax that is a huge barrier for others coming to work on it.
Every application already has its own vocabulary, which is a huge barrier for others coming to work on it (seriously: try to check out the Linux kernel, or Firefox, or the Python interpreter, and try to start hacking on them).
Macros and custom syntax can help make that vocabulary more understandable, in the same way that functions can help make control flow more understandable.
> resulting code was so hard to read,
DSL code is the easiest to read and maintain. No "general purpose" language would ever match this.
> with program-specific syntax for each program.
As if it's something bad.
> Don't go back there.
You failed to understand the entire concept.