enumerate improvement proposal
James Stroud
jstroud at mbi.ucla.edu
Mon Oct 30 18:24:09 EST 2006
Diez B. Roggisch wrote:
>> Okay, I've googled "leaky abstractions" (as was probably your intended
>> affect with your silence), read the famous essay, and still
>> don't know what you mean and how it applies to what I have described.
>>
>> Do you plan to justify your statement or emptily accuse people of
>> violating
>> esoteric principles?
>
>
> While I can't claim to know what the effbot thinks (the
> skull-socks-wearing-python-coder-mindlink-technology is yet to be
> developed), I think it's pretty clear what he is after here:
>
> Computers compute offsets into data zero-based. Some languages like
> pascal completely abstract that away from the user, but python doesn't.
>
> So if your colleague/boss/whatever insists on indices being one-based,
> this abstraction you introduced for her pretty fast leaks pretty badly.
> Consider this simple example:
>
> for offset, item in enumerate(some_list, start=1):
> if item.is_the_chosen_one():
> chosen_one_offset = offset
>
> the_chosen_one = some_list[chosen_one_offset]
>
> And bang, its Judas not Petrus who gets the pearly gates inc. stock
> options.
>
> Diez
Thank you for this explanation. Very illuminating. I think understand
this idea well and the thought of 1 basing this function makes me cringe
as much as the next guy (though I lacked the vocabulary to explain
exactly why I cringe).
But you see, weaning this university faculty level economist (who
already has her own way of doing everything...and to whom I happen to be
married) from the traditional economics tools of gauss and sas towards
the more sane and flexible tools of python, numarray, and rpy has been a
multi-stage process. Tweaking the chosen abstractions to not be as leaky
(thank you and thank Fredrik for introducing me to this vocabulary) is
still one of the things I'm working towards. I want to solidify the
conversion before I concentrate on nuance.
So, before too much criticism, I challenge even the most skilled python
programmer to find his or her own faculty economist (or statistician or
physicist) and get them to radically change their computational tools.
When you've walked a mile in my shoes, leaky abstractions won't seem
like such a big deal after all.
James
--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095
http://www.jamesstroud.com/
More information about the Python-list
mailing list