>Why choose to carve out this added support for a single family
> of algorithms rather than add in some more general
> metaprogramming abilities that enable better EDSLs?
It is The Swift Way™
The answer is always to add something to the language and the compiler, the question seems to be largely irrelevant.
Of course, that's a consequence of not heeding Alan Kay's advice from 1998, that when you design a new
language, you need to focus on the metasystem first, the rest will follow.
When you don't do that, every new requirement comes as a surprise that you need to hack into the compiler somehow. Objective-C compatibility: hack the language; Python integration: hack the language; SwiftUI: hack the language; Differentiable Programming: hack the language.
And of course, each additional hack makes the already not-to-elegant base language even more difficult for implementing stuff without hacking the language.
What kind of a metasystem would we need in order to not have to hack the language for all of these features? That, detective, is the right question!
> of algorithms rather than add in some more general
> metaprogramming abilities that enable better EDSLs?
It is The Swift Way™
The answer is always to add something to the language and the compiler, the question seems to be largely irrelevant.
Of course, that's a consequence of not heeding Alan Kay's advice from 1998, that when you design a new language, you need to focus on the metasystem first, the rest will follow.
http://wiki.c2.com/?AlanKayOnMessaging
When you don't do that, every new requirement comes as a surprise that you need to hack into the compiler somehow. Objective-C compatibility: hack the language; Python integration: hack the language; SwiftUI: hack the language; Differentiable Programming: hack the language.
And of course, each additional hack makes the already not-to-elegant base language even more difficult for implementing stuff without hacking the language.
What kind of a metasystem would we need in order to not have to hack the language for all of these features? That, detective, is the right question!
https://www.youtube.com/watch?v=ZKxr0wyIic4