Python from Wise Guy's Viewpoint

Joachim Durchholz joachim.durchholz at web.de
Mon Oct 20 14:55:23 EDT 2003


Pascal Costanza wrote:

> Joachim Durchholz wrote:
> 
>> Multimethods, on the other hand, are indeed powerful, but they are 
>> also dangerous.
> 
> Life is dangerous.

OK - I agree that danger is a factor only if better alternatives are 
available.

>> Multimethods are just a case where problems disguise themselves as 
>> coding errors - looking at the sophisticated user-definable machinery 
>> for selecting the right method during multimethod dispatch, it seems 
>> like these problems indeed showed up, and were "solved" by adding 
>> further baroqueness to the language. To the point that reading the 
>> source code of a function will not reveal what's actually happening, 
>> because some quirk in multimethod resolution strategy may select 
>> entirely different subfunctions than those that the reader would have 
>> expected.
>> From a software maintenance perspective, this is pure disaster.
> 
> Is this based on actual experience, or are you just guessing?

Guessing.
Educated guessing though.
I admit that practical experience would be better. But my time budget is 
limited, so I have to rely on guesswork. (Like most programmers.)

However, I think that the problems will usually be attributed to the 
wrong reasons. Most people don't look past immediate causes of their 
software failures (that's why I gave the C buffer overflow problem - not 
because C buffers are similar to multimethods, they aren't, but to 
demonstrate the mode of thinking that attributes common problems to 
other places than their real roots).

Of course, if multimethods are used rarely, the problems will be rare.

>> In practice, most programmers aren't great, they are average. Assuming 
>> a halfways sane distribution, 50% of all programmers are even /below/ 
>> average - and their services are still very much in need.
>> How should they get their work done?
>> Educating them isn't an option - if that were a possibility, it would 
>> have long been done.
> 
> No, because people are already educated under the assumption that they 
> are not bright.  This assumption is very deeply rooted in our society,
> but I don't see any evidence that it has actually improved anything.

No, but there's nothing to improve here.

 > To
> the contrary, it seems to me that people stay "average" _because_ they 
> are treated this way.

Only in some cases. The majority of people slackens down and refuses to 
learn after some point in life. Some do this at an age of 20 years, 
others wait until they are 60, and some stay interested and alert for 
their entire life - but they are a minority.
Heck, I myself feel the temptation to ease down...

 > IMHO it's very cynical to assume that other people
> are less bright than oneself.

It's not brightness. It's willingness to learn.
Besides, I never said I'm brighter than others - I'm most certainly not. 
I do have a knack for system design, which is offset by deficits in many 
other areas (which are irrelevant to technical newsgroups, so they don't 
stick out).

> Did it ever occur to you that learning a language designed for experts 
> can make you a better programmer?

Learning /any/ language with a yet-unknown paradigm will make you a 
better programmer. Actually I learned a lot from (in chronological 
order) Lisp, Prolog, Smalltalk, Eiffel, and Haskell.
This doesn't mean that I think that I'd want to use all these languages.

Regards,
Jo





More information about the Python-list mailing list