On Sunday, 14 June 2015 at 11:03:49 UTC, ketmar wrote:
On Sun, 14 Jun 2015 10:35:30 +0000, Joakim wrote:

It does require more definitions, but it's worth it. A simple example like yours may seem excusable, but there's no way to limit such logic to just simple instances. Walter is coming from long experience with this, and even with my limited experience with such logic, I'm grateful for it, as dealing with more complex versions of such logic is a royal PITA.

honestly, if i'll want to have a limited language, i'll take Go. removing a power only 'cause it can be abused is not in a "spirit of D", at least as i see it. templates can be enormously abused, but noone claims that they should be removed, as code without templates sometimes easier to
follow, and abusing templates can be a PITA.

Walter explained his thinking behind this decision in five comments on this PR:

https://github.com/D-Programming-Language/dlang.org/pull/243#issuecomment-12883555

I agree with him. You shouldn't be using such logic at the point the code is inserted or elided. It can get very confusing as you layer on logic and is extremely brittle for anything approaching even a medium-sized codebase. You may be able to get away with it for a small codebase, but then you really can't complain about repetition, because there isn't much code in the first place. ;)

Of course, there's always a way out: use static if like Etienne did in his linked file. But that's not a good practice and it's good that Walter is to discouraging it.

Reply via email to