On 3/16/12 8:16 PM, Daniel Murphy wrote:
"Andrei Alexandrescu"<seewebsiteforem...@erdani.org> wrote in message
news:jk0naq$257e$1...@digitalmars.com...
But why duplicate doItSlowWay(); which may be an arbitrarily long
sequence?
If duplicating that block is a problem, there are other ways to do it.
[snip]
This is in the same vein: "let's avoid else".
This seems to accomplish little more than "well I didn't use else".
Again: what exactly is wrong with specialization?
The advantage is, that when you write the code, you have _no idea_ what
platform/os it might need to run on in the future. You _cannot_ know which
version is most appropriate for _all_ new platforms, or even if any of them
will work at all.
Oh yes I do. Often I know every platform has e.g. getchar() so I can use
it. That will definitely work for everyone. Then, if I get to optimize
things for particular platforms, great. This is the case for many artifacts.
The only time to make this decision is when implementing
support for a specific platform, and this pattern forces you to consider
each place where platform specific behaviour is required. When doing things
like this, 100 false positives are much faster to fix than a single false
negative causing wrong code/corruption.
I just find it difficult to get convinced about this. Walter has often
talked my ear off about this dogma and never produced a convincing argument.
Andrei