[Python-ideas] A way out of Meta-hell (was: A (meta)class algebra)

Petr Viktorin encukou at gmail.com
Fri Feb 20 14:33:05 CET 2015


On Fri, Feb 20, 2015 at 11:11 AM, Stephen Hansen <me+python at ixokai.io> wrote:
>> > I am trying to solve this problem. What I posted was just one simple
>> > idea how to solve it. Another one is the idea I posted earlier, the
>> > idea was to add metaclasses using __add__. People didn't like the
>> > __add__, so I implemented that with a new method called merge,
>> > it's here: https://github.com/tecki/cpython/commits/metaclass-merge
>> >
>> > Instead of yelling at me that my solutions are too complicated,
>>
>> Hello,
>> I am very sorry that my post came across as yelling. I had no
>> intention of that, though on re-reading it is rather harsh.
>> I will try to be less confrontational in the future.
>
>
>
> No. I'm sorry, but this needs to be responded to.
>
> I'm a lurker, and find this discussion barely interesting at its best --
> I've never had to combine metaclasses and no compelling case has been shown
> to my mind to interest me in fixing a so-called problem.
>
> That said: In no way, shape or form did Petr "yell" at you. In no way shape
> or form was his response not an entirely technical argument made with detail
> and consideration. Its wholly inappropriate to respond to a criticism or
> critique with an accusation of "yelling" or implying your point of view is
> being bullied when its simply someone showing disagreement.

No, Martin had every right to call me out. I have offended, thus I was
rude. It was my mistake.
That said, I'm rude quite often – when I misjudge someone's
sensitivity for rudeness, chances are I'm rude. It happens, and I am
honestly sorry for it, so I try to correct it.
You might also notice that there was nothing I lost by apologizing.
And I would have nothing to gain by questioning Martin's right to feel
offended.

> No one yelled. No one was in any way even kind of abrasive or rude. Someone
> disagreed and laid out why.

Nonsense. Rudeness is a spectrum; it is impossible to be absolutely
non-abrasive, just as like no code can be absolutely elegant.
I think that strictly adhering to some expected threshold of rudeness
in a list like this is harmful. It keeps some people out of the
conversation. It is much better to take individual people into
account. Being called out when something I write turns out to be
offensive is necessary for calibrating the proper level of rudeness.
I'd like to thank Martin for saying it directly, so I had a chance to
defuse a grudge promptly.

> To come back on them with an accusation of yelling-- bullying, really-- is
> inappropriate, at best. Please don't do it.
>
> That said: I really don't think you've made a case for what this is solving.
>
> I've used metaclasses many times, and have never run into this issue. I know
> there's some problems when Python is bridging with foreign object models--
> ie, QT-- but does this really solve it? Is it really needed, and what's
> easier? To my reading of the thread previous, there were several people
> thinking that metaclasses were nuanced and problematic, but not that the
> problems you're trying to solve are fixable or even meaningful in context.
> People saying "there are issues with metaclasses" do not create a consensus
> to solve it by... this... thing... you're proposing is an their consensus. I
> don't know what its supposed to answer.
>
> All in all, this entire thread just makes me disinterested immediately as
> "not a problem", personally. What's wrong that you're solving? You want to
> combine metaclasses -- but that entire idea seems slightly nonsensical to me
> because how do you know what any metaclass will do?
>
> Meta-metaclasses sounds like a rabbit hole without a destination in mind.

You might not have run into the problem at hand, but it clearly is a
problem for others. This thread is looking for a solution that would
not be unnecessarily complicated for people who don't care.

I think that at this point, the discussion is past the questions you
are asking. Most have been asked, and mostly answered, in different
words above. If you find one that hasn't, could you ask a more focused
question?


More information about the Python-ideas mailing list