Gyepi SAM wrote: > > Both. People have to understand the language well enough to write, read, and > maintain programs, but the machine runs it. One has to find the right level > of expression to achieve both goals effectively. In the, infrequent, case of a > conflict I invariably choose people over the machine: sometimes you have to > give up a few cycles to write code other people will grok easily.
You raise another question good here, or at least an aspect I didn't consider in the original question: "Should language features be used even when many people don't understand them?" Yes. I never "hold back" when using a language to some subset of that language that is more widely understood by the masses. If a language has a feature that is designed to solve a problem, I'll use it for that problem, no matter how "obscure" it is. For example, function pointers in C or scalar references in Perl. More than most languages, Perl is packed with "obscure" little features that "Perl hackers" tend not to consider obscure at all, but which baffle "junior" programmers. I think it's great to write "readable" code, but never at the expense of writing the code the right way. If a language has features you can't use because some "other programmers" don't know them, then you either shouldn't be using that language or you shouldn't be using those other programmers. That said, sure, there are plenty of times when one writes code that isn't dwelling on the microseconds: printl("Some line of text with a word pointed out") printl(" ^^^^"); This isn't hard-core algorithmic purity, but it's sane enough. (One might consider constant-folded string concatenation, but a code formatter might not align the strings properly.) _______________________________________________ Boston-pm mailing list Boston-pm@mail.pm.org http://mail.pm.org/mailman/listinfo/boston-pm