{"by":"brandonbloom","id":8924227,"kids":[8924337],"parent":8924093,"text":"Let me rephrase "just hack it": Feature expressions are a low-level primitive for platform switching. If you have cross platform abstractions, consumers of your code shouldn't need to use feature expressions. However, they are very useful in the implementation of such abstractions.<p>As for the programability complaint: I just don't see why it is important. If you are generating code, you can already add/remove content from the generated code. That is: you can always just write a "feature macro"! Feature expressions don't add any power you don't already have: Only affordances for humans.<p>Unrelated thought: Haskell/GHC uses the C preprocessor to address this problem.","time":1421861634,"type":"comment"}