>>>>> Consider whether you really need to use super(). >>>>> >>>>> http://fuhm.net/super-harmful/ >>>> >>>>Did you actually read that article, understood it, went through the >>>>tons of responses from python-dev team members, including Guido > > "Tons" of responses?
This was mentioned already, but just to repeat: one good source, for example, apart from the python-dev list: http://www.artima.com/weblogs/viewpost.jsp?thread=236275 > I count 16, about a third of which are written by James Knight himself > (the author of the page you are ranting against), and of the remaining, > about half are low-to-zero information content, e.g. Tim Peter's joke > about renaming the page for better marketing value. > > It's especially telling that even Guido, the most vocal critic of the > article, is critical of the *title* but not the content. In his first > post, he says: "I agree with the best practices in James's > Conclusion...", and suggested that if the article was called "Multiple > Inheritance Pitfalls in Python" he'd be much happier. > > >>> Yes. Why the knee-jerk reaction? >> >> Because throwing around that link carries about the same amount of >> information as "perl is better than python", "my IDE is better than >> yours", "vim rulez!", "emacs is cooler than vim", etc, etc. > > This is clearly not the case when even the most vocal critic agrees with > the article's recommendations. > > >>> I simply pointed out a resource which might be helpful to someone >>> trying to learn to use super. >> >> It will certainly not be helpful to anyone trying to learn the usage of >> super. > > I've read it, and found it very useful. > > >> The person who wrote that essay is simply misunderstanding the >> concept, as has been explained countless times by the python dev team. > > "Countless". Is that more or less than the "tons of responses" above? > > >> Hence, it only increases confusion, adds to the noise and spreads false >> alarm. > > So you say. > > >> Honestly, I don't understand how this thing got so much out of control. >> If anyone starts an intelligent question or remark about super, this >> essay is thrown in no matter what. Anyone can explain why? > > Because inheritance is potentially confusing. Multiple inheritance is > even more confusing. Multiple inheritance with diamond diagrams even more > so, and multiple inheritance with diamond diagrams and non-cooperative > classes are simply impossible to get right. > > Because there are many pitfalls to inheritance in Python, and they aren't > obvious: who on earth would imagine that calling __init__ or __new__ with > positional arguments could be dangerous? James Knight's article is a well- > written, understandable description of some of them, in one place and > with a catchy title. Of course people are going to link to it. > > And finally, because people do wrongly get the impression that using > super will magically make those problems go away. I know this, because I > was one of them. > > (I went through the anger period, sure that Knight must be full of it. > How could anyone suggest that Guido made a super that isn't perfect? I > got past that once I realised just how complex inheritance actually is. > Currently I'm in denial, writing code with super and hoping that it will > Just Work but not pushing it too hard in case it doesn't.) > > > > -- > Steven > -- > http://mail.python.org/mailman/listinfo/python-list > -- Psss, psss, put it down! - http://www.cafepress.com/putitdown -- http://mail.python.org/mailman/listinfo/python-list