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

Reply via email to