It used to be you could email a patch to someone and that patch would get reviewed and committed.
Since then there has sprung up a fetish for bureaucratic process, and tooling has arisen to foster that, such that the barrier to entry is significantly higher now than it was in the 90s. All you needed was a text editor and an email account. Now you need accounts on whatever code forge is involved, and you didn't write enough unit tests, and you failed to properly format your pull request, and what do you mean you're not an expert in whatever version control we've adopted? This pull request sat in an open state because you didn't tag it appropriately. The CI system was updated and your code wasn't covered in the automated integration test, please resubmit after making minor punctuation changes in a metadata file.
Over time, this stuff filters out contributors and leaves a core of people who are comfortable with the structure of the engineering process for that specific project. It's not a bad thing that engineering standards are higher, but it's no longer a world of people 'scratching an itch' -- there's yak shaving to be done, and the number of people willing to shave that yak has always been smaller than the number of people who are not.
I don't think the author is right about things having been harder in the old days led to a higher proportion of the internet being qualified to contribute. I think it's much harder now to patch software upstream than it ever has been.
> It used to be you could email a patch to someone and that patch would get reviewed and committed.
May I ask what communities you were involved in, and when?
Even formatting patches so they could be reliably applied was a nontrivial matter. It was not uncommon for them to be applied manually (and sometimes faultily). Sometimes you would mail patches to maintainers directly, other times you would share them on mailing lists, where they would undergo a bit of "social review" (works for me!) and would or would not be applied.
Some people just mailed entire modified files and expected maintainers to figure out the changes on their own.
As for "committed", many maintainers may not even have used source code control (notably Linus didn't use any), and I can't recall a single project with publicly accessible repositories in the 1990s as opposed to tarball releases.
> All you needed was a text editor and an email account. Now you need accounts on whatever code forge is involved [...]
Getting an account on any of these code forges in 2020 is almost certainly much easier than getting an e-mail account at all in the early 1990s for many people.
I don't agree with the author that contributing was easier in the 1990s. Generally, it involved a bit of a social process, trivial drive by fixes were not any more popular than today, there were coding standards to be observed (and not always written ones), in larger projects, you could expect to navigate some flame wars, and sometimes your contributions were rejected anyway because RMS decided to cancel your OS.
Very much mirrors my experience. Github provides a very useful project-independent unified UI for drive-by patches and off-the-cuff issues. No more mailing lists or bug trackers to sign up for and manage!
And it's also even got an integrated version control system, that 99.9% of projects then use, and it's one that makes it easy to version control a fork of your own as you work on any patches you might be making.
> Very much mirrors my experience. Github provides a very useful project-independent unified UI for drive-by patches and off-the-cuff issues. No more mailing lists or bug trackers to sign up for and manage!
And no more need to become emotionally invested in the project, thus furthering its development into a proper community of users and contributors that propel it forward. :(
But what if I don't want to become emotionally invested in the project? It would still be beneficial for the project if it were easy for me to submit bug reports (and maybe bug fixes) anyway.
Emotional investment is always an option for those who want it.
And a lower barrier to entry might even increase the chances of it happening anyway, even for those that started out thinking they didn't care much.
> Github provides a very useful project-independent unified UI for drive-by patches and off-the-cuff issues.
Unless you value your privacy. If you take the necessary steps to approximate the level of "privacy in public"[1] that you get by default when dropping into someone's disconnected bugtracker or attaching a patch via email, then GitHub is pretty cumbersome to use. The article argues the case that GitHub is making life easier for people trying to build their personal brand, but not everybody wants that.
I don't use GitHub for myself and never have, but I used to make exceptions for projects that are hosted there[2]. Not anymore. There's enough toil involved trying to dodge the unwanted social hoopla that GitHub imposes on you, and the returns I've gotten out of "engaging with the community" are so, so low.
Nowadays if I report a bug or try to submit a patch and someone gestures towards GitHub and insists that it's not just the front door to the building but in fact the only way in, then I explain that the only circumstances where I use GitHub involves for-pay work, so unless there's someone I know I can send a bill to, then I'm perfectly content to just never go inside. But people in general seem to have a lot of trouble right now grappling with the notion that submitting a patch or a bug report is not something that I'm doing because it benefits me. (Imagine working as a plumber, showing up for a call wearing coveralls and carrying your toolbag, finding that you've arriving at a club, and then dealing with someone at the door who's trying to argue with you about their entry fee because, hey, this is a club, so they expect you to pay them.) The only thing people seem to understand anymore is the quest to become someone with influencer-level status, and that certainly has something to do with the culture referenced in the blog post. It would be one thing if it were just kids, but it's something that has infected plenty of old hats who were around before GitHub, which is pretty annoying.
They find that a lot of UNIX tools could be easily crashed by generating random inputs. The quality of our most popular open source software has dramatically improved over the last 30 years.
In my experience, bureaucracy is mostly uncorrelated with the willingness of a project to accept a PR from a new contributor.
Homebrew has very strict contribution requirements but has a huge number of contributors and is generally easy to contribute to. Meanwhile there are lots of little projects that go dead for lack of interest by the sole maintainer in reviewing and merging patches.
Also this:
Since then there has sprung up a fetish for bureaucratic process, and tooling has arisen to foster that, such that the barrier to entry is significantly higher now than it was in the 90s. All you needed was a text editor and an email account. Now you need accounts on whatever code forge is involved, and you didn't write enough unit tests, and you failed to properly format your pull request, and what do you mean you're not an expert in whatever version control we've adopted? This pull request sat in an open state because you didn't tag it appropriately. The CI system was updated and your code wasn't covered in the automated integration test, please resubmit after making minor punctuation changes in a metadata file.
Doesn't really make sense to me. How many projects have you actually had this problem with?
I don't think the author is right about things having been harder in the old days led to a higher proportion of the internet being qualified to contribute. I think it's much harder now to patch software upstream than it ever has been.
For some people, using Git and Github is a barrier to entry. For others, submitting a patch to a mailing list is a barrier to entry.
> dead for lack of interest by the sole maintainer in reviewing and merging patches
I think you mean "lack of action" rather than "lack of interest."
It's easy to be enthusiastic about developers doing lots of work for you (usually for free) and to cast them as "uninterested" if they don't comply quickly (or at all) with your requests.
I suspect many maintainers are "interested" in reviewing and merging patches but are simply unable to perform large amounts of work without pay, due to time and financial constraints.
You could re-frame 'bureaucratic process' as 'expectation setting'.
It also benefits the contributor to know what is expected of them. If you know that your contribution will be properly considered when it meets the outlined expectation, then it is easier to put in the effort to contribute.
Since then there has sprung up a fetish for bureaucratic process, and tooling has arisen to foster that, such that the barrier to entry is significantly higher now than it was in the 90s. All you needed was a text editor and an email account. Now you need accounts on whatever code forge is involved, and you didn't write enough unit tests, and you failed to properly format your pull request, and what do you mean you're not an expert in whatever version control we've adopted? This pull request sat in an open state because you didn't tag it appropriately. The CI system was updated and your code wasn't covered in the automated integration test, please resubmit after making minor punctuation changes in a metadata file.
Over time, this stuff filters out contributors and leaves a core of people who are comfortable with the structure of the engineering process for that specific project. It's not a bad thing that engineering standards are higher, but it's no longer a world of people 'scratching an itch' -- there's yak shaving to be done, and the number of people willing to shave that yak has always been smaller than the number of people who are not.
I don't think the author is right about things having been harder in the old days led to a higher proportion of the internet being qualified to contribute. I think it's much harder now to patch software upstream than it ever has been.