Skip to content

Instantly share code, notes, and snippets.

@jnthn

jnthn/x.md Secret

Last active Oct 5, 2020
Embed
What would you like to do?

Blog post

Taking a break from Raku core development

I'd like to thank everyone who voted for me in the recent Raku Steering Council elections. By this point, I've been working on the language for well over a decade, first to help turn a language design I found fascinating into a working implementation, and since the Christmas release to make that implementation more robust and performant. Overall, it's been as fun as it has been challenging - in a large part because I've found myself sharing the journey with a lot of really great people. I've also tried to do my bit to keep the community around the language kind and considerate. Receiving a vote from around 90% of those who participated in the Steering Council elections was humbling.

Alas, I've today submitted my resignation to the Steering Council, on personal health grounds. For the same reason, I'll be taking a step back from Raku core development (Raku, MoarVM, looking into language design questions, etc.) Please don't worry too much; I'll almost certainly be fine. It may be I'm ready to continue working on Raku things in a month or two. It may also be longer. Either way, I think Raku will be better off with a fully sized Steering Council in place, and I'll be better off without the anxiety that I'm holding a role that I'm not in a place to fulfil.

Steering council

Fellow Steering Council members,

I've decided to resign from the Raku Steering Council, effective immediately, on personal health grounds. Publicly I've said this:

[url of blog post]

Privately, I will share a little more here. I've recently had a resurgence of a range anxiety symptoms, which in the past preceded eventual burnout. Last time around, it was related to my teaching work, which I was doing far too much of. The upshot is I've taught about 3 times in the last 5 years since that point. This time, with all calm in other areas of my life, there's little to pin it on this time other than my involvement with Raku. Maybe, by stepping away from Raku for a while, there can be a better outcome for my Raku involvement. We'll see.

Larry tried to build a kind and thoughtful community around the language. The #perl6 IRC channel was recognized as a friendly and welcoming place, but more generally, those working on the language treated each other with kindness, setting an example from the core team outwards. That doesn't mean everyone agreed about everything all the time (actually far from it), or nobody ever had a bad day. But in the main, it was a supportive environment to get stuff done. That matters because the work to be done is often tricky, debugging the issues that come up in a modern runtime or a compiler for a non-trivial language requires a great deal of patience, and ultimately this is all being done by volunteers. Even those on grants are typically choosing to do the work for rather less than they'd make on other projects.

Recently, that isn't the working environment I've found here. Granted, the rename and the discussions leading up to the creation of the steering council were tiring, and at times fractious, but it was at least possible to see a point to them and remain fairly motivated. Some rest after the rename later, I found fresh energy to drive forward the effort to give Raku the kind of AST macros that were foreseen in the language design, but not yet realized - along with providing better ways to do various things that ecosystem modules do today. I figured with the steering council in place, there'd a good chance to ship an exciting language release, with the new things well documented, marketing organized, and with some kind of unified message behind it.

But as is usually the case with these things, the work isn't easy. Designing an API to the language means there's hundreds of things, some large, some small, to design. Making this the primary representation of the compiler entails replacing a compiler frontend that's not changed much in its architecture for ten years - and doing so in a sufficiently bug-compatible way that language users aren't impacted. It's going to be a long slog. Which in principle is fine; I've been a key part of a bunch of them before.

Except this time, the joy in the work is sapped by a constant stream of so called "direct language", indeed coming from a member of this steering council. Apparently, Raku is the result of "mindless progress in no particular direction", which comes as a surprise having spent a bunch of time implementing and re-implementing things thanks to Larry's meticulous design work and drive to keep tweaking things until he felt they were sufficiently right. I'm also surprised to learn I'm "making an extremely small amount of" design calls, given I've simultaneously been working on both RakuAST (a large, language user facing thing) and a new dispatch mechanism (which is internal, but hardly devoid of design choices). To be involved with Raku development these days feels like facing an unending stream of such mischaracterizations and accusations. I'm aware some open source projects seem to get by OK with abrasiveness all around. But Raku hasn't traditionally been that way. That's why I've managed to keep going with it for over a decade.

Anyway, writing this is the last of the energy I have left for Raku things for now. I'll ask TPF to suspend my ongoing grants, and I'll be staying away from Raku core development for at least a month. Probably I'll be writing some Raku code, given I've got customers with systems written in it, but I'll be nothing more than Just Another Raku Hacker for some time. Please don't assume I'll simply come back in a month just because I've had a bit of time out; I'll come back if I have some hope that I'll return to a better working environment that doesn't make me sick.

As I've resigned from the Raku Steering Council as of now, I do not expect, nor do I wish, to be included in any discussion of the council on the matters noted above.

Kind regards,

Jonathan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment