This post (When not to comment code) has a great discussion about commenting styles.
I agree with the sentiment to commenting the intent of the code ("why") rather than the "what".
It occurred to me that perhaps we should be placing the comments after the code, like this:
_checkForUpdatesThread = new Thread(new ThreadStart(updateManager.CheckForUpdates));
_checkForUpdatesThread.Start();
// since CheckForUpdates() can take up to a minute to execute
Rather than:
// Start CheckForUpdates() on its own thread, since it can take up to a minute to execute
_checkForUpdatesThread = new Thread(new ThreadStart(updateManager.CheckForUpdates));
_checkForUpdatesThread.Start();
This allows the reader to skim through the code, concentrating on the actual code first - which is hopefully so beautiful that no-one needs to look down at the comments. If the reader finds themselves asking "Why the hell?!?" they can look down to the comments to see what the original author was thinking.
To help enforce the comment providing intent ("why"), it may be useful to always start the comment with "because", "since", "as", "instead of" or similar.
Has anyone seen this done in practice? Any thoughts on whether it's a good idea?