News for hackers. Stuff that matters.
Re:The Programming Language Conundrum by WalterBright on Saturday March 30, 2019 @07:36PM (#19532672)
None of these enable ordinary D code to not be ordinary D code, which is the crucial difference.

Similarly, operator overloading is deliberately constructed in such a way as to allow new arithmetic types to be smoothly designed, but to make it clumsy to do things like C++ IOstreams.

Re:The Programming Language Conundrum by FeepingCreature on Monday April 01, 2019 @01:58AM (#19540879)
They do enable expanding the definition of what is ordinary D code. With UDAs, you can write declarative data structures that are more UDA semantics than D semantics. Macros do the same thing, if with more range.