>By "possibility" I mean "using a minimum of logic, a novice Perl programmer
>still might get confused."  If someone is confused by either of those last
>wo examples, well, I don't want that person working on my code.  :-)

I take issue with being obliged to write so that the "novice" programmer
will understand my code easily, and this applies to any programming
language.  For one thing, the object of the game is to get beyond the
"novice" stage as quickly as possible, and that will only happen by looking
at lots of non-novice code.  Languages are generally designed with advanced
syntax, features, and capabilities for a good reason... these advanced
features make the program more efficient or readable or maintainable, among
other things.  These advantages should not be sacraficed lightly, all in the
name of the "novice programmer".

For example, I've had someone tell me that autoincrement operators (++ and
--) are confusing to novice C programmers, and therefor I should not use
them.  Not surprisingly, the person who told me this was a novice C
programmer himself (although he had experience in other languages).  That
type of restriction, clearly, is ridiculous.

One should not, of course, go to the other extreme and consistently write
code that only an obfuscation expert or "language lawyer" would be able to
correctly interpret.  One should assume that the reader of the code will be
reasonably familiar with the features of the language and its common idioms.

Reply via email to