At every company I've been, I see source code with old code commented out instead of deleted. In a sense, this is almost using commenting like a primitive form of version control. I see pros & cons to this approach:
Pro:
- In environments where requirements constantly change, some developers are more comfortable seeing how the chuck was previously written so that they can easily revert.
- You may be intending to switch back to the previous code, and it's easier to see it if the code is commented out, as opposed to digging through version control.
Con:
- As Steve McConnell suggests in Code Complete, the purpose of comments is to show the intent of your code. Using comments as version control can be misguided.
- It can imply a lack of confidence. If the code is really no longer used, why not just delete it and make your code leaner.
- It can bloat the source code very quickly, requiring future developers to read through more.
I think ideally old and obsolete code should be removed instead of commented out (makes for leaner, easier-to-read code), but I can see the other approach in certain development cultures.