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.