Nick Sabalausky wrote:
Yea, that's a good example of why I've grown a distaste towards hard-and-fast religious design strategies. The designer inevitably comes across cases where it just doesn't work particularly well, and then they're forced to either stay true to their misguided principles by accepting an awkward problematic design, or contradict their alleged principles and go with a better design. And when they do the latter, that runs the risk of causing problems in other areas that had been relying on the old principle being rigidly followed.

D has design principles, but those principles are often contradictory. I don't see a good reason to follow a design principle out of principle if it destroys the utility of the language.

For example, consider:

    version (unittest)

'unittest' is a keyword, not an identifier. Making this work requires a special case in the grammar. But the alternatives,

    version (Unittest)
    version (unit_test)
    version (unittests)

etc. are all much worse than simply violating a principle and putting the special case in.

Reply via email to