Altruism is alive and well in all aspects of society and software development is no exception. Good developers are often willing to spend some time and effort to build something and give it away for nothing. A great deal of our software infrastructure is built on such contributions.
But as a developer myself, I know that altruism only goes so far. There are many 'fun' tasks associated with making good software, but there are also many aspects that are quite unpleasant for the average developer. There is quite a bit of open source software out there with bugs, bad documentation, and bad design; simply because fixing those problems is a real hassle.
Some people are willing to dig in and do some of the dirty work for no pay, but the majority will take a pass. Nothing gets you out of bed on a cold day to go work in the trenches like a steady paycheck. If we are satisfied with the status-quo, then you are right and 'nothing needs to change'; but if you want stable software with good documentation and quick bug fixes, then some improvements need to happen.
> but if you want stable software with good documentation and quick bug fixes, then some improvements need to happen.
If you want stable software with good documentation you can make do it yourself. If you don't want to do the work then you don't really want it that badly. Open source is about freedom. If a billion dollar company finds out they have a show stopping bug because of an Open Source library they are dependent on they can fix it.
Nothing does need to change, what "status quo" are you talking about, if you don't like a piece of open source software don't use it, if you have to use it for your job then thank the stormfather that it is open source so you can go in and fix it.
Honestly people seem to think that the software will become better if we just start paying for it and that is the stupidest idea I've ever heard, in fact often the crappiest software I've ever had to work with is proprietary. I always try and push my company to use open source not because I think it is always better but because if I run into a problem I can inspect the source and find out what is going on and why, and if I need to I can submit a patch.
Open source != free as in beer Open source = free as in speech.
The way things work now is fine, Linux works fine, Emacs works fine, if you're complaint is that some third party node library that you pulled off of Github to calculate the length of a string isn't working how you want my suggestion is submit a pull request or fork it.
This idea that open source software should meet some sort of standard of quality is entitled and noxious, the only guarantee and promise you ever got with open source was that you had the source code, if you want more than that, then do it yourself.
I could also grow all my own food, do all my car repairs myself, and build my own house; but I would rather pay people who specialize in those things to do them for me.
I don't want to have to learn all the code for every single open source project I use and have to try and figure out how to build new features I want; fix a nagging bug I found without breaking something else; or rewrite the documentation. I would rather pay a few bucks (along with the other users of the software) so that collectively the developers most familiar with the code can do that and be compensated for doing so. Without that incentive, the maintainer may get around to fixing your issue sometime next year, if ever.
Sure the source is open so if I REALLY, REALLY wanted to I could go dig into the unfamiliar code and try to figure out how to make it do what I want; but that just seems a little inefficient to me...but maybe that is just me.
I'm with you, re: do it yourself if you want it that badly.
But there's if there's an opportunity to motivate an increase in the amount of money that goes to people that are doing what's best for the OSS projects e.g. guarding against supply chain attacks via open source contributions, then I think we should take that opportunity.
Find developers who are scrutinizing inbound commits for free on their off time and pay them to quit their jobs so they can sleep more and scrutinize better while rested. If we can find a way to make being a professional youtuber a thing, we can find a way to make being a professionally unemployed open source developer a thing.
If open source software is a public good, then it should be funded like other public goods. Unfortunately, there are some laws in the US that prevent government organizations from creating software that competes with software created by private companies, so the legal situation is awkward.
Of course. Not surprised, just dissappointed. I'd like to learn about this; maybe you can point me in the right direction.
(I worked on election integrity during the aughts, advocated citizen-owned software. I now feel I missed an(other) explanation for the bias towards the commercial stuff.)
The instance I'm mildly familiar with is Apache Accumulo. It was created in 2008 by a team at the NSA, and open-sourced in 2011. They discovered that the NSA was required to purchase the tool from a commercial company, so the team left the NSA and started Sqrrl Data, Inc., to sell the NSA's product back to itself. That was my understanding, at least. I am not a lawyer.
My county developed its own election administration software, gave it all to Global Election Systems (the notorious entity later bought by Diebold), then turned around and paid for yearly license and support. (There were rumors that our Sec of State got kickbacks.) Then, insult to injury, GES/Diebold claimed trade secrets to prevent independent inspection.
I can kind of understand. Neither the NSA or my county want to be software publishers. Core competency and all. But some of these arrangements are pretty bad.
>There is quite a bit of open source software out there with bugs, bad documentation, and bad design; simply because fixing those problems is a real hassle.
Onboarding is a barrier to entry too. For example, yesterday I read a blog article saying that the Rust project Cargo doesn't have enough volunteers. Learning Rust at the moment and looking for a new project, I checked out the "how to contribute" section and looked at the issues on their github repo, but honestly it's daunting. I've submitted a few fixes to some project documentation in the past because those are some of the easiest tasks, but I'm yet to found a small enough crack in a big open source project to jump in and submit a pull request.
IMO QEMU is a nice spot between important, straightforward to contribute and relatively understaffed compared to how widely it is used. I have found multiple behavior/stability issues that I’ve fixed on my own (exposed though OSdev-adjacent work) and submitted to the mailing list
But as a developer myself, I know that altruism only goes so far. There are many 'fun' tasks associated with making good software, but there are also many aspects that are quite unpleasant for the average developer. There is quite a bit of open source software out there with bugs, bad documentation, and bad design; simply because fixing those problems is a real hassle.
Some people are willing to dig in and do some of the dirty work for no pay, but the majority will take a pass. Nothing gets you out of bed on a cold day to go work in the trenches like a steady paycheck. If we are satisfied with the status-quo, then you are right and 'nothing needs to change'; but if you want stable software with good documentation and quick bug fixes, then some improvements need to happen.