bewing wrote:I am an inventor, not an engineer. I scoff at engineers.
Unless you have some strange notion of what an engineer is (which is probably the case, since it seems implied that engineers are not inventive), there's a bit of irony in scoffing at the people who've made it possible for you to announce on a public forum that you scoff at them.
bewing wrote:If you always follow the standards, you will never ever discover a significantly better way of doing anything.
What do you mean? If you can find an objectively better way of doing something which requires you to break the standards, that would probably be grounds for proposing a change in future standards. If you just mean "significantly better" in the sense of "I like it better," then that seems rather arbitrary, and the only difference between writing code in the way you like and implementing the same algorithm in compliance with standards is that the standards-compliant code is guaranteed to compile correctly among future versions of the compiler.
bewing wrote:The reason the shortcuts exist in the first place is that programmers who are willing to experiment a little have found those shortcuts to be a significant improvement to the code, in some way.
Well, it depends to which "shortcuts" you are referring; some shortcuts may be functionality supported by a specific compiler (usually with a corresponding command-line switch to enable/disable the feature), but other shortcuts may just be an error in the compiler--some small implementation detail. The second type of shortcut is the more dangerous, because when the error is fixed, your code breaks. The first type of shortcut is usually okay if you don't care about other compilers at least for the time being, and if it's a good enough feature, it will probably find its way into a standard by means of a proposal (which, get this, must follow technical writing standards).
bewing wrote:Religiously avoiding them is pedantic and shortsighted.
Pedantic, maybe, but shortsighted? Recall that standards-compliant code is guaranteed to compile correctly (barring any compiler bugs, of course).
bewing wrote:Solar wrote:
In a programming language, there are only two ways to do anything: The correct one, and all the others.
No, there are a million ways of doing everything. 99.9% of it comes under the header of "individual taste". What some committee considers "wrong" is just a matter of the personal tastes of a majority of the people who happened to muscle their way onto the committee. To follow blindly is to be a sheep.
I think there's a bit of a disconnect between you and Solar here. A computer scientist/engineer not following standards is akin to a lawyer composing a legal document which contains typos, slang, invalid grammatical constructs, etc. Sure it may be possible to derive what the lawyer
probably meant, but some is left to interpretation, to say the least.
bewing wrote:
And because they were good, they were accepted into the standard (like // was).
Until enough programmers break the rules, no change
ever gets added to the standard. You argument is circular, and therefore irrational.
Not true; it's not until a (common) problem is found that cannot be satisfied by the current standards. For example: variadic templates are supposed to be added to the C++0x standard, not because some rebellious programmers demand it, but because there are some problems that require very messy (often incomplete) solutions without variadic templates (e.g, boost::bind).