OT: Crazy Programming
Alex Martelli
aleax at aleax.it
Mon May 13 08:34:23 EDT 2002
Max M wrote:
>> Imagine two painters. One spends half his time at arts supplies stores,
>> checking out the tiniest differences between different models of
>> brushes, different brands of paint, canvases prepared with minutely
>> distinct processes yielding minute roughness and absorption differences,
...
> So there really is a lot of craftsmanship in writing good code.
There can be -- as there can be in painting. But given a finite amount
of time and energy to spend on all kinds of issues altogether, what IS
the allocation of these "scarce resources" that's likely to have the
higher overall returns -- spend more time/energy on worrying about what
kind of brush is fractionally better, or on what to portray and how?
The overall cultural bias of today is towards "gadget-o-mania" -- the
quest for the Silver Bullet, the gadget / trick / technology / toy that
will solve every problem. And, sure, the technology does matter, A
BIT. A good golfer uses good clubs, a good runner good shoes, a good
bridge player a good bidding system, a good "human networker" uses a
good mobile phone, a good coder uses good idioms of his or her chosen
programming language. But it's easier to overdo the attention to such
tool-level details, than to make the opposite mistake. I've seen too
many bridge players worrying to death about a pluperfect bidding system
rather than choosing a solid, sensible one, and focusing on using it
effectively in real life, which is in fact a far more important task.
Golfers tell me the same about their ilk, runners about theirs, etc --
and again from personal observation the same phenomenon is amply in
evidence in programming, too.
I sympathize -- the tools-level part is just SO interesting and fun,
I, myself, would be quite prone to spend all my bridge-available time
and energy on bidding-system issues, all my programming-available
time on clever idioms, classes, extensions &c, and so on, and so forth.
Exactly *because* overdoing the tools-level concerns is by far the
likelier trap, Python's culture, that de-emphasizes them in favour
of real design and architecture issues, is such a boon to most of
its practitioners. *Do the simplest thing that can possibly work*.
Alex
More information about the Python-list
mailing list