, 26 tweets, 2 min read Read on Twitter
Really interesting post about open-source language project management.
A lot of this feels very familiar from Swift.
That goes especially for their points about emotional labor, although I feel like the Swift community is a little better than what’s described.
But yes, you really just cannot do language design effectively — or any kind of design — in a committee, and an open-source forum takes almost all the classic committee parhologies to an extreme.
The most successful design model in Swift is that there’s one author of a proposal.
We encourage that author to pitch their proposal to get feedback on it, but it’s still their proposal, and they’re completely welcome to ignore any parts of the feedback they want.
That’s not necessarily an easy position for the author, and I know some people hate it.
But the alternative is imagining that the community is going to come to some meaningful consensus.
And that’s been repeatedly proven to be a bad model for design.
Groups are good for generating ideas.
Groups are okay at approval/disapproval, or at least I don’t know a better alternative that has any legitimacy.
(I do think I’m pretty good at some aspects of language design, but I certainly don’t think I’d be a good language dictator.)
((And I’m *terrible* at names.))
But if you ask a group to assemble a proposal, you will get terrible results.
The *best* outcome is that you get multiple well-defined camps with competing proposals.
And then the committee picks one and a lot of people are unhappy.
What you *actually* get is people who like a scattering of ideas from different proposals with no coherent design.
And people who start horse-trading to make a compromise proposal at the first hint of disagreement.
And of course endless distractions:
- People who insist on designing things that are explicitly out of scope.
- People who need everything explained to them personally from scratch.
- People who just want you to know that if you revisited a dozen other long-settled decisions then this one would be easy.
- People who are actually talking about a completely different thing, and yes maybe the names shouldn’t be so similar but really, please just follow the conversation.
If it’s a live meeting, there’s a ton of pressure to use committee time effectively.
If it’s *not* live, there’s pressure to keep the discussion on track and make it seem like it’s moving towards consensus.
In either case, what you end up with is that the people with cohesive designs either get isolated or make compromises in order to avoid something they consider much worse.
Missing some Tweet in this thread?
You can try to force a refresh.

Like this thread? Get email updates or save it to PDF!

Subscribe to John McCall
Profile picture

Get real-time email alerts when new unrolls are available from this author!

This content may be removed anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!