Object Relational Mappers are evil (a meditation)

Ethan Furman ethan at stoneleaf.us
Wed Jan 6 03:41:40 CET 2010

J Kenneth King wrote:
> In many contexts I'm sure there is reason to use Perl instead of Python
> just as there are situations where C is more appropriate than either.
> However, the mark of a poor programmer in my line of reasoning is one
> who cannot recognize such distinctions.
> One must be aware of the benefits and short-comings of their tools.  If
> your tools influence the way you think then you are being ignorant of
> this principle.  And I would suggest that makes you a poor programmer.

Perhaps "influence the way you think" is not the right way to phrase 
it... how about "be the tool"  ;)

We have all seen the struggles that newcomers to a language go through 
as they try (or don't try) to adjust their thinking to the tool at hand 
-- programming Java, BASIC, FORTRAN, or xyz in Python.  Even now Phlip 
is raging against exceptions and the very Zen of Python.

Converting FoxPro to Python is an interesting excercise for me -- 
version 6 at least doesn't have many of the cool things that Python 
does, and consequently thinking in Python while writing FoxPro (when I 
have to) is extremely frustrating; going the other way is a bit of a 
challenge also, although much more rewarding.

For a more concrete example, take sail-boats and speed-boats:  you get 
used to the speed boat, it's quick handling and sharp turns... then you 
take a sail boat out for a cruise -- if you don't adjust your thinking 
from speed to sail, you could very well end up in the rocks.

To sum up:  I agree with your "poor programmer" line of reasoning in the 
second paragraph above, but not with the "tools influencing the way we 
think" line of reasoning -- while I am cognizant of Python's 
shortcomings, I am very much enjoying the changes in my thinking the 
more I use it.


More information about the Python-list mailing list