Should the syntax for disabling code differ from that of normal comments?
- by deltreme
For several reasons during development I sometimes comment out code. As I am chaotic and sometimes in a hurry, some of these make it to source control.
I also use comments to clarify blocks of code.
For instance:
MyClass MyFunction()
{
(...)
// return null; // TODO: dummy for now
return obj;
}
Even though it "works" and alot of people do it this way, it annoys me that you cannot automatically distinguish commented-out code from "real" comments that clarify code:
it adds noise when trying to read code
you cannot search for commented-out code for for instance an on-commit hook in source control.
Some languages support multiple single-line comment styles - for instance in PHP you can either use // or # for a single-line comment - and developers can agree on using one of these for commented-out code:
# return null; // TODO: dummy for now
return obj;
Other languages - like C# which I am using today - have one style for single-line comments (right? I wish I was wrong). I have also seen examples of "commenting-out" code using compiler directives, which is great for large blocks of code, but a bit overkill for single lines as two new lines are required for the directive:
#if compile_commented_out
return null; // TODO: dummy for now
#endif
return obj;
So as commenting-out code happens in every(?) language, shouldn't "disabled code" get its own syntax in language specifications? Are the pro's (separation of comments / disabled code, editors / source control acting on them) good enough and the cons ("shouldn't do commenting-out anyway", not a functional part of a language, potential IDE lag (thanks Thomas)) worth sacrificing?
Edit
I realise the example I used is silly; the dummy code could easily be removed as it is replaced by the actual code.