DEV Community

loading...

A year of strife in Perl

leontimmermans profile image Leon Timmermans ・6 min read

Disclaimer: this is based on my own personal experience and perception. It's not The Truth, but it is my truth.

Last year, in early May, I got an email that got me worried. Really really worried. Not because of disagreement (though I did disagree with it), but because I knew this would be the most controversial thing I've seen in my more than decade on perl5-porters (the mailing list where core contributors discuss the development of perl). If I was wrong it was only because controversial turned out not to be quite strong enough a word for what would happen.

In it, a radical change was proposed. Radical in technology, but I'm not going to focus on that today. Radical in values, which really means it's radical for the community as well. It immediately divided both core contributors and much of the community into many factions with two main contingents.

What may seem like a simple technical disagreement was everything but. It was a fight for the soul of the language and the community that we love. While there were a lot of (mostly silent) people in the middle, in the discourse there were two sides and both (or at least enough people on both sides) were entirely convinced that the language and community that we all love only has a future if their side wins, and that the other will drive it to ruin.

If that doesn't sound like the prologue of a Greek tragedy, then I don't know what does.

It led to vigorous discussion; initially behind the scenes, and after the Conference-in-the-Cloud also on perl5-porters and elsewhere. And quite frankly, this only stopped when people mostly stopped talking to each other after 2 weeks because there was little point to it.

The alarm bells really should have gone off here.

Soon enough the conflict moved to github. The unfortunate thing is that there were two groups of people: one with the will to make this happen but not quite the knowledge, and they started writing code. And one group that didn't want this to happen that did have the knowledge, who started reviewing said code. As you can probably guess, this soon became a mutually aggravating situation. After a few weeks of stepping on each other's toes, it became an open conflict.

The stakes were astronomical. I've heard several people say (in private) that they felt they would be needing to look for a different career and community over this. Combine this with a pandemic that has all of us stressed out, this led to a situation which I can only summarize as both sides kept pushing until the other side would give up. Given the sheer stubbornness of the average perl contributor this could only end when a sufficient number of people have burned out that neither side is capable of doing pretty much anything. It was a dynamic that was quite frankly burning me out too, to the point where several of my loved ones told me I should give up on this for sake of my own mental health (and I've heard similar stories from others).

It's easy to assume that the things that happened were a few abusive assholes, but in my experience it was mostly a vicious cycle of previously reasonable and kind people lashing out at the people that were burning them out.

And that's where the alarm bells became cold-war style air sirens, the kind you can hear from miles away (sorry gen-z, you probably have no idea what I'm talking about).

This was the moment when we (or actually a bunch of community elders) started up a process to set up a new governance, because any decision making process that can generate this amount of strife is in need of repairs. Many people saw it as a diversion, but I don't agree. I think it was the only way to restart this conversation, and to get to a point (currently still in the future) where we can heal again.

But when hell broke loose, another thing was finally spoken out, though it was easily missed in between all the unpleasantness, is a simple truth that there is a third option that had been unthinkable a year ago: forking. This changes everything about the equation, literally everything.

Ultimately I believe that is what ended the discussion. It ended with the simple knowledge that the opposition was able and willing to fork if that's what it takes to prevent their worst-case scenario. In a way it was a Solomon's judgement for the steering committee. It ended the discussion not just because almost no one wants to fork the community, but because perl7 as announced last summer wouldn't be viable given a competitor that actually supports all of CPAN today and will continue to do so for the foreseeable future (just look at how long it took the python3 transition to take over, and that's without people wanting to keep supporting python2).

It is a pyrrhic victory. Pyrrhic not just because "we" haven't really won anything. Everyone lost because friendships were damaged (and perhaps lost) over this. We lost because a bunch of the people who matter for moving perl forward are currently effectively burned out (a few loudly so, but many in painful silence). We lost because people stopped contributing over this (most prominently but not limited to former project lead Sawyer).

So what can we learn from this, and how can we move forward?

  • We needed different governance, for a multitude of reasons. The old pumpking model had a tendency to burn people out, that was not sustainable (to be honest, Sawyer seemed burned out to me even before any of this happened, I can only imagine where he is now). Having more people in our executive, and having them there for bound terms (it's easier to stop when it takes effort to continue) will hopefully prevent that in the future. But also because it will lead to more diverse points of view. I suspect we'll be tweaking our governance for a while we gain more experience with it, but at least we have a foundation to do that with now.

  • Going through this during a pandemic really didn't help. I honestly believe this situation would not have gotten so badly out of hand if we could meet up face to face and talk to each other with a beverage in our hands; if we weren't all so tense because we haven't seen many of our loved ones in ages. We should remember that. Some discussions should be done in real life; sometimes the right response to a conflict is "Ooh, I get the impression this may be a Chartreuse-level discussion. Are you up for that?"

  • We should have more attention for our contributors' mental health; we need to remember the human on the other side of the conversation. It's perhaps cliche to say we should act with more empathy for each other, but frankly we collectively also acted with too little empathy for ourselves.

  • It seems that the proponents initially mistook a lot of the grievances as mere bike-shedding, when they actually were meaningful concerns that wouldn't go away by themselves. They didn't seem to realize that they were crossing the Rubicon by actually moving forward with their plans without a consensus. We should not set ourselves up for failure like that, there is no way that could have ended well.

  • One thing we started doing much too late was mediation (Neil in particular has done great work there lately). We need people who can see all perspectives and bring them all back together. This is where we truly miss Larry more than anything, because bringing different needs together was his true talent. I don't think (or hope) we will be needing this often, but it's probably good to be prepared for such an eventuality.

  • We talk a lot about speaking with kindness, but we don't talk nearly enough about listening with kindness. Unlike speaking, listening kindly can't really be enforced, but the speaking without listening can easily become dysfunctional. Achieving this requires a cultural change. I don't know how to get us there, but I do know that it will require leadership.

  • The other thing that requires leadership is bringing us back together again. Perl is unique in the breadth of its user base and that is both Perl's greatest strength as its greatest weakness. These conflicting interests were at the root of this conflict, and finding a path that serves all those interests (including the less loud ones) will be the main challenge for the steering committee.

Discussion (5)

pic
Editor guide
Collapse
mithaldu profile image
Mithaldu

For anyone wondering what a "Chartreuse-level discussion" is:

The perl community has several conferences often used for in-person discussion and planning. Perl developer and community organizer metacpan.org/author/BOOK is often instrumental for those, and being from France is particular to a liquor called Chartreuse.

This liquor is extremely potent, and also extremely sweet and thus beloved by many, and often used to cap evenings of such events. :)

Collapse
book profile image
Philippe Bruhat (BooK)

If my lasting contribution to the Perl community is "Chartreuse-level discussions", then that was time and money well spent. 😄🍸

Collapse
mithaldu profile image
Mithaldu

It was lovely and important! :D

Collapse
lorenzota profile image
LorenzoTa • Edited

Dear Leon, dear community,

I write you this from the far, far border of the perl community, being just a hobbist, a lover of the language and of the community, a mere CPAN author and not a professional one, but during nearly two decades I have lernt to love both the laguage (my only programming one) and the community.

We are discussing about events of recents weeks (weeks for the majority of us, years probably for you) also at perlmonks.org (PS: where I lurk as Discipulus) and there I fistly put my contribution and, even if changed my perception of what happened, asking here and there, reading here and there, my basic argument is mostly unchanged.

You make a big call for a new, different governance and I'm toattally with you on this point.

Then you highlight that the pandemic made a real problems even worst and provoked even harder reactions. This is sure and reveals another, sad, fact: the frustration we all have, tends to be directed toward our neareast neighbours, as always. This involve another aspect: personalism.

I understood there were and are many techinical true facts at the begin of the division, both parts judging their solution as the only one able to save Perl. It is always like this: rarely people start hating others with no reasons (I dont say this is the case of hate anyway) but suddenly the dispute leaves the frame of a sane interaction and decays into personalism. No more idea A and idea B, but individual #1 and individual #2.

Personalism is a vicious habit of the human being; a social and feral beast. All of us, in different degree we suffer from this.

Beacuse of this in my post I speak of a new ethic. But as you can easily understand, ethic cannot be imposed. Your "listening with kindness" is very near to what I'd call ethic, as it is your, holy words!, mention to "attention for our contributors' mental health" well said! We are a community and we are not in the position to burn out our best brains. We need to treat them with the highest care possible, as we should be tolerant for different style of speaking, obviously not allowing mere insults. And also no one must feel hurted.

About this last point I must confess I really feel uncomfortable. I mean: the politically correct always makes me uncomfortable. It is perceived very differently between different european countries and much more in confront of USA. I dont want to say someone has the rigth to harass or insult someone, nor making discriminatory assertions, but when there are real arguments even rougly expressed, we should warn the form but accept the content.

Historically bans and prohibitions are implemented by fragile powers, near to their death. They are a sign of obscurantism not of enlightenment.

By other hand be able and humble to make some, many steps, back is a sign of wisdom. And we need it a lot.

Where I dissent with you is about leadership. You made the Larry example. This is a rare happening: the illuminated prince, the charismatic leader. Not only is rare but is also risky. I bow in front of him to have been able to retire before becoming a problem. It always happens. Exceptions can be count on one hand fingers.

Now I have to quote a bounch of paragraphs of my perlmonk's post, hoping in bigger audience:

too much freedom?

I hate rules. I have enough hubris to say: I'm a good fellow even without rules. But I also know, and this time from my experience, that freedom not alwayas attracts our nicer, best part. While in internet everything is also falsed by a layer of "let's pretend", mimicry, conscious or not. It is part of the game. As under the alchol effect, while chatting or intercting in internet we have less inibitions. Sometimes this is a good thing, but rarely.

At $work we dont act this way. Why? Because we, conscious or not, we live in fear and we are assimilitated the sneaky, stinking thing called gerarchy. At $work the present perl situation, happening, it would be impossible. Someone would be fired before, by far before such situation can even happen.

We like freedom? Or we want to sell perl to some company, just to interact correclty?

Freedom is hard work. Like laziness. Freedom has its own rules and self rules. Freedom is based on ethic.

we need some help?

people in history already experienced these kind of problems. And we all know how best ideas converted to the worst systems on Earth: French revolution? Soviets? Did you need more examples? But there are some sparks of light in history, when people discussed how the power works and how it must be applied. Autogestion is hard to implement. Historically autogestion was ever fragile.

We are living at borders of a rare period: free software is still a great think, with some chance to survive. Do we really need to fall under the spectre of personalism? Are we able to manage a community?

We can learn from other organizations, not only in the IT world, who faced same perils. We also have professionists who can help us. Why cant we pay some socio/psycho doctor to follow our leader developping team? Serioulsy!

Are we in the position to burn out fresh and willing brains? I doubt it. We need to squeeze 120% of our manpower to evolve and survive. Do we need my copntribution? I doubt, but just in case: here I'm.

ethic

We all want this to be the last time something like this happens, dont we? As with relatives I always says: take the best it comes from them, simply ignore all the remaining. If not some rules, we need a frame of relations that must be saner than the present one. At the end we need a new ethic.

No one, at every level of contribuitions, must feel harassed or damaged anymore, please, no one.

We have a lovable language; are we able to build a lovable community?

(end of quote)

That said I look to all of you with the biggest respect possible. My chapeau for you, able and willing to do the work I'm not able or I have not the will to do.
But seriously, do you think you, we, can improvise the mutual interaction? Maybe we need to RTFM of autogestion.

I dont say it is easy, but is probably the last chance. I'm strongly for decisions made by who works on something but this must involve some look backward to the base, to the community. Let see what happened with Request Tracker of CPAN: if I understood it correctly, people working on it decided to close it, and this is among their rigths, but you cannot forget to ask to the community! How? I dont know: a survey among cpan authors? maybe difficult to do? Ok, but it must be done. Then if the community wants RT, the community must spit someone able to manage it.

We can survive many years more with some cruft in the code; can we survive to divisions, bans, balkanization? I fear no.

My best wishes to you all

L*

Collapse
sigzero profile image
sigzero

Very good read. Thanks!