Too Long; Didn't Read
There are 56 code smells that make us doubt the quality of our development. Most of these smells are just hints of something that might be wrong. We want our code to behave different on different environments, operating systems, so taking decisions at compile time is the best decision, isn't it? We need clean code and we must leave premature optimization buried in the past. We need to remove all compiler directives, model it with objects, make a serious benchmark instead of doing premature optimization. This technique was used when CPU were scarce, and nowadays, we need to leave it buried in past.