Given time, a Turing Complete Language will eat every domain specific language adjecent to it.
Even on the web, where declerative, domain-specific languages had a 20 year head-start, JavaScript is eating HTML and CSS.
Why? Turing Complete Languages are universal-machines:
- They can replace any domain specific language
- They transfer optionality from the platform implementation to 3rd party developers
Advantages of declarative, domain specific languages (DSLs):
- USLICE
- Sidesteps security, privacy, and performance problems
- Implementation is decoupled from intent. The platform/OS has the option to optimise the performance of the implementation over time
- Accessibility and other features can be baked into the Language, rather than bolted on as a feature
Problems with general purpose languages (GPLs):
- Security, privacy, and performance problems. They can be mitigated with difficulty, but are at some fundamental level, unresolvable
- A Turing Complete Language is a black box. There could be anything in there. The platform cannot optimise, reimplement or recontextualise scripted applications for other contexts without the risk of breaking things.