Comment by subjectsigma

Comment by subjectsigma 2 months ago

52 replies

I’m a young(-ish) dev who used to care a lot about open source but never managed to break into a community. In recent years my view of the whole thing has soured a lot. There seems to be few compelling incentives to actually develop or participate in open-source software.

Open source first felt to me like a way to give power back to ordinary people, and it still is, but it seems like those who get the most benefit from free labor are large corporations. Open source feels increasingly corporate and companies like Microsoft dominate and reap enormous benefits. I’ll work for Joe Neighbor for free but not Sataya Nadella.

Open source was always political but in 2010 (around when I started getting into Linux) it felt like dumb arguments over things like programming languages or “the UNIX philosophy”. Now it feels like a vicious Red vs Blue culture war where not picking a side is just as bad as picking the other side.

Contributing to open source is a thankless job and even if your project is really good, most people won’t care and the few that do might still treat you like crap. I’ve submitted a handful of pull requests and I’ve already run into the classic “Your patch works and provides a feature some people might like, but I don’t like it, go away.”

I’ve donated plenty to organizations like Mozilla, Wikipedia, and GNOME. I then email them with my opinions on what they’re doing. In nearly every case not only am I ignored completely, I see those projects (Mozilla especially) continue to drift in a direction that I disagree with. So, I stopped donating.

For me, the Linux kernel is probably one of the few big open source projects where 1) the project is technically interesting enough that I would learn a lot by contributing, 2) It seems like politics and infighting is kept under control, 3) it actually seems possible to get a patch in while having a 9-5, 4) I use the product myself every day and enjoy it, and 5) the technical direction feels positive in that it is getting regular features & bug fixes that I like

Qem 2 months ago

> but it seems like those who get the most benefit from free labor are large corporations.

One factor is the lack of adoption of copyleft licenses. The proliferation of permissive licenses turned into a backdoor for corporations to privatize volunteer work. We should adopt copyleft whenever possible. Stallman is right on this.

  • samatman 2 months ago

    The Linux kernel's license is copyleft, which has done all of zip, zilch, nada, zero, to prevent large corporations from benefitting from the enormous amount of free labor put into open source.

    Git is GPL, this didn't prevent GitHub from becoming a multibillion dollar behemoth of a Microsoft subsidiary.

    The value which companies capture is in using software, not modifying it and selling a proprietary version of the modified code. The only way to sustain this misapprehension is to notice every time permissively licensed software makes a company some money, and studiously ignore it every time copylefted software does the same thing.

    • palata 2 months ago

      > The Linux kernel's license is copyleft, which has done all of zip, zilch, nada, zero, to prevent large corporations from benefitting

      You have it backwards. The goal of copyleft is not to "prevent others from benefiting". The goal is to potentially benefit from the adoption. If someone uses your copyleft library and fixes bugs in it, you can see their fixes and bring them back upstream. So you benefit from their work.

    • chii 2 months ago

      There's absolutely nothing wrong with a company using liberally licensed OSS to make money. It's not a zero sum game. The contribution from these companies could be considered to be the benefit to the end user for creating the final product (that includes the OSS), and at a lower price than it would've been had they had to make the equivalent OSS privately themselves.

      There cannot be an OSS license where the user of the OSS who don't make money don't need to pay, but a corp that do make money pays.

    • 1oooqooq 2 months ago

      kernel (and linus) lost a decade long war against this.

      and nobody cared. read about the "tainted kernel" compromise. without it android, modems, anything with a linux firmware, would be truly open source.

      alas, the modem manufacturers won then.

      • xtracto 2 months ago

        Aaah the time of WinModems. "Get a real modem" .

        I remember.

    • goodpoint 2 months ago

      This is plain false. Companies contribute massively to the Linux kernel.

      GPL worked very well for it even if, unfortunately, it's not GPL-3

      • Jweb_Guru 2 months ago

        Yeah companies notoriously have to contribute back to the Linux kernel all the time, it is a massive success story for copyleft.

  • palata 2 months ago

    My experience is that people tend to think "permissive = good, copyleft = baaad" as a first approximation. And then "copyleft = GPLv3".

    But there are copyleft licenses that are not viral at all and just force the users to distribute their changes to your library, e.g. MPLv2 and EUPL.

    I don't understand why one would use a permissive license versus MPLv2 or EUPL.

    • sph 2 months ago

      MPLv2 and EUPL are actually underrated and freedom-promoting for both developer and users. The true successors to the GPLv2 with loopholes closed.

      GPL3 gave copyleft a bad name and everyone decided to give away their labour for free.

      MPL/EUPL are the spirit of "you can use it, if you spend half a million writing a completely separate module of course you can keep it for yourself, but if you change the actual source files that everybody uses you have to share, so everyone benefits."

      Using Linux as example it means one could write their own proprietary driver for their proprietary device, but optimize, say, the memory allocator, please share it so we all benefit.

tpmoney 2 months ago

> but it seems like those who get the most benefit from free labor are large corporations.

I feel one thing to remember on this front is that large corporations will ALWAYS get the most benefit out of open source / “free labor”, simply because they have the ability to bring massive amounts of resources to bear on using that open source product towards their own ends. Consider the world of hardware emulation. Sure the community has benefited massively from the efforts poured into reverse engineering and understanding old systems and games and preserving what was there. And the big corporations reap huge benefits in the form of continuing nostalgia, awareness of their back catalog of IP, test markets and information about the viability of re-releases and in some cases the licensing (or outright theft) of emulators and emulator code for selling their own retro consoles.

Burn out is absolutely a concern, and the approach of some open source devs (like IIRC the curl dev) of essentially “f you, pay me” to support requests is probably an important thing to have. But for me as an individual, the fact that Atari’s current owners have reaped massive rewards from the fact that the emulation scene keeps their brand alive means nothing to me. I’d rather have the world we have were things are open and the community is there, than one were emulation is closed and insular and getting into it is even harder than it already is just to keep Atari from “winning” the most. And selfishly part of that is because Atari winning also benefits me. Their re-releases and re-masters and dumping of money into manufacturing by hardware retro clones puts money into the market, gives new hardware to tinker with or build on. And their dependence on the open efforts of the community also means bending that hardware to my own needs is much easier than if they had for example just rolled out a bunch of new proprietary SoCs to replace the old hardware with a single blob chip

nis0s 2 months ago

> I’ve submitted a handful of pull requests and I’ve already run into the classic “Your patch works and provides a feature some people might like, but I don’t like it, go away.”

This might be because they’re not interested in maintaining it for future iterations.

  • jicea 2 months ago

    Absolutely! I'm the maintainer of a small Open Source project [1] and this phrase makes me tickle.

    I totally get it that a maintainer doesn't want to merge some code, even if it's totally working. Is the new feature a niche case, or has if a wide audience? Is it aligned with the project goal/philosophy? Will it be easy to maintain/evolve/debug? Does it add unnecessary/unwanted dependencies? At the end of the day, the maintainer will be the person that have to work/support with this code.

    Please keep in mind that if you've spent an hour on a project, maintainers have have certainly spent hundreds if not thousands more time on it.

    [1]: https://github.com/Orange-OpenSource/hurl

    • account42 2 months ago

      Exactly. And this is why you should talk to maintainers before spending significant time on your pet feature if your goal is to get it upstreamed. Don't just dump code on others and then get upset if they don't like it as much as you do.

  • xtracto 2 months ago

    I've contributed PRs to several OSS projects, some have been merged, others have not. I'm fine with that.

    The reason I open a PR is so that it becomes public.

    Most of my PRs solve stuff that I wanted to solve. For example at some point I added simple math expression evaluation in the Start menu of Linux Mint. It worked, I use it in my computer and I published it as a PR. I Think it was rejected because of so e bureaucracy. It's OK. It's there if someone finds it useful, I do t care doing bureaucracy, but I understand why they would want that.

    Normally the larger the project the more "bureaucratically painful" it is to have a PR accepted. In small obe person projects, .y experience has been that original devs are surprised and happy to know that someone used their code s d is bui5on top of it.

  • chii 2 months ago

    and it is well within the rights of the maintainer to take this stance!

    and the beauty of opensource is that the fork button is right there! You don't even need to ask for permission.

bigstrat2003 2 months ago

> Open source first felt to me like a way to give power back to ordinary people, and it still is, but it seems like those who get the most benefit from free labor are large corporations.

As I often do on this topic, I feel compelled to point out that this isn't actually a problem. Software is not a scarce resource, and Microsoft (or whomever) getting huge benefits from a project doesn't prevent the project from doing good for the common man as well. Since nobody is being hurt by corporate usage of open source, there's no problem.

  • jamilton 2 months ago

    >Since nobody is being hurt by corporate usage of open source, there's no problem.

    I presume this is the problem - if you dislike Microsoft, then Microsoft benefiting is potentially a problem.

  • xtracto 2 months ago

    This! It seems as of individuals doing OSS nowadays are expecting something in return. In that case, they should setup a business, not release OS.

    I've got aplenty of code I haven't released because I think at some point I could build a business with it.

  • tonyedgecombe 2 months ago

    >As I often do on this topic, I feel compelled to point out that this isn't actually a problem.

    It is for me, I don't want to spend my precious time helping a corporation like Microsoft increase their dominance.

    • vladms 2 months ago

      Without open source it would be worse. Imagine windows on all phones.

      • tonyedgecombe 2 months ago

        I'm not sure that follows. Prior to Android we had numerous options, since Android we have two. Prior to Linux we had Solaris, Next, Xenix, HP UX, AIX, BSD, etc. Now we have macOS and Linux. Browse through early issues of Byte or Dr Dobbs and see how many C/C++ compilers were available, now we have gcc or clang.

photonthug 2 months ago

> I’ve submitted a handful of pull requests and I’ve already run into the classic “Your patch works and provides a feature some people might like, but I don’t like it, go away

Same. I think it is potentially easier to get a well defined change into Linux itself rather than a randomly chosen but largish open source project these days. I don’t really try to contribute to other projects anymore, not because I don’t want to, but because if you’re coding for fun anyway it’s usually better to work on a project you control rather than dealing with the frustration.

I think a huge percentage of open source would be more accurately advertised as “open source but closed contributions”, and being upfront and realistic about this is important. People who are already working for free deserve to have a realistic understanding of whether they will get to merge that simple bug fix they need to unfork the library, or if it’s more realistic that they need to start talking on a mailing list for 5 years and work out how to join a steering committee first.

  • pasc1878 2 months ago

    One issue here is that the main author has very limited resources. Thus can only support a small amount of code.

    Your Pull Request makes the project larger and it needs to be maintained - so making the load on the original author larger. If it fixes a bug then it helps the original author and so can be accepted. So it is not closed contributions but rather it has a defined scope and we are not going let the project suffer from scope creep.

    One example of this is a project written on Linux - it does run on macOS but not fully correctly. The original author just says I don't have access to a Mac so cannot support it. They are not being a bad person here just stating a fact. The answer here is that there is now a fork that does support macOS, hopefully correctly but I would not be surprised if there are bugs due too differences in the OS - the major ones have been made but I'll bet that a full code review has not been done over every line of code.

    • photonthug 2 months ago

      I understand these issues and project maintainers don’t owe random people a merge. But they do owe random people a little clarity about what should be expected as a potential contributor.

      It’s not that much to ask. Realistically as programmers we should probably solve these problems with data and not waste anyone’s time. If your supposedly open project has never merged a pr by a non-member or a person without a looong history of hanging out on the projects social periphery, then non-members should be warned when they submit a PR that this is the case. Saves 2 weeks of fake requests for tests/documentation/justifications when the real issue is a steering committee that prefers insiders-only. And again, that’s fine, it’s just the missing transparency that’s the real problem.

      And yeah, even clearly needed bug fixes can still be in this category, it doesn’t take a major feature that’s going to be a maintenance burden. 3 weeks (or years) of discussion arguing the bug is not a bug, followed by the users saying it’s a bug, and then maintainers asking for changes/docs/tests and then when that’s all in place, maintainers pivot to suggesting it needs to be an extension/plugin or whatever. In some ecosystems this kind of thing is more common than elsewhere.. but if you’ve never seen this count yourself lucky. Naming projects is tempting here but in the end it’s unpaid work that’s a passion project for an army of volunteers. But the volunteers are still just dumb monkeys that really enjoy dumb hierarchies, so what can you do..

      • massysett 2 months ago

        > I understand these issues and project maintainers don’t owe random people a merge. But they do owe random people a little clarity about what should be expected as a potential contributor.

        Absolutely not, no.

        A potential contributor can start by assessing the project. This can begin by politely asking the maintainer whether a particular patch will be accepted. Or, the contributor can examine the project history.

        If the potential contributor receives no response, or sees no indication of a robust history of merging patches, then assume no patches will be merged. The code is there for the taking. The contributor is free to fork it and modify at will.

        Rich Hickey said this best:

        "As a user of something open source you are not thereby entitled to anything at all. You are not entitled to contribute. You are not entitled to features. You are not entitled to the attention of others. You are not entitled to having value attached to your complaints. You are not entitled to this explanation."

        https://gist.github.com/richhickey/1563cddea1002958f96e7ba95...

  • throwaway2037 2 months ago

        > open source but closed contributions
    
    +9000

    I have seen this so many times. It used to bother me a lot, until I stopped trying to boil the ocean and fix a bug in a project that I do not control.

pjmlp 2 months ago

As someone born in the 70s, I don't have high hopes for the Linux kernel after our generation is gone.

It is hard to keep something rolling after the founders, that managed to steer a project under their ideals are no longer around to steer the boat into the right direction.

Something else will eventually take Linux's place, in some form, it might even be a Linux based like Android, WebOS, ChromeOS.

  • segmondy 2 months ago

    Don't worry, the generation before you didn't have high hopes for your generation too. We are nothing special, the magic will keep on going.

    • account42 2 months ago

      I don't gp is saying that the following generations is incapable of making their own achievements but rather that individual projects don't have a great life expectancy after the people that made them get replaced. It's much easier for a projects principles to be eroded than it is to tighten them.

  • randomdata 2 months ago

    > Something else will eventually take Linux's place, in some form, it might even be a Linux based like Android, WebOS, ChromeOS.

    So Linux won't be the same because it might start being marketed under a different brand name?

    • pjmlp 2 months ago

      Anyone that has developed for Android, WebOS, ChromeOS is fully aware that the Linux kernel is an implementation detail, full of features not available upstream, like drivers written in Rust, which remains to be seen if it will ever have them.

      Also given that the kernel is not exposed to userspace, other than to device vendors, it could be replaced by something else with very little impact to userspace, other than whatever people are doing in their rooted devices or via ADB shell, both meanigless for common consumers.

      • randomdata 2 months ago

        > it could be replaced by something else

        It is not really Linux-based if something else. Assuming the Linux-based property remains, though, isn't that still Linux, even if it ultimately is taken down roads Linus would have never approved of?

  • throwaway2037 2 months ago

    Do you think the goal of Google's Fuschia project is to replace Linux in Android? I could see it happening, but I cannot seriously seen any OS replacing Linux for SaaS servers. What is the completion? Windows Server? Please.

pm215 2 months ago

Reading LWN I don't get the impression that the kernel is immune to "Your patch works and provides a feature some people might like, but I don’t like it, go away" -- even big corporate contributors sometimes wind up in year long efforts to try to get something they and others find useful upstream if the upstream maintainer is unconvinced about the worth of the feature or that it won't have net downsides for the codebase as a whole. The "extensible scheduler" is one prominent recent example.

palata 2 months ago

I understand the frustration.

> Open source first felt to me like a way to give power back to ordinary people

I think it's the difference of philosophy between Free Software and Open Source Software: Free Software cares about the people, Open Source Software not so much.

> most people won’t care and the few that do might still treat you like crap

That's completely right, people are mean. I do open source for myself, I choose copyleft licenses (I like MPLv2/EUPL), and if people want to fork my project I am fine as long as they honor the license. If they do a good job, I can bring some of their changes back, to my benefit. If they ask me for features, I invite them to fork.

> I’ve submitted a handful of pull requests and I’ve already run into the classic “Your patch works and provides a feature some people might like, but I don’t like it, go away.”

That's where I think you misunderstand open source. It is their right to not take your change, you should not bully them for that. Your right is to fork the project and add your changes. Do it!

kelnos 2 months ago

> I’ve submitted a handful of pull requests and I’ve already run into the classic “Your patch works and provides a feature some people might like, but I don’t like it, go away.”

Never ever build anything non-trivial for an open source project unless you've cleared it with the maintainer first. No one is obligated to take your contributions. Unless you're building an addition that you plan to maintain yourself (either privately or through a fork), always always always discuss what you want to do with the maintainer before you write your first line of code.

> I’ve donated plenty to organizations like Mozilla, Wikipedia, and GNOME. I then email them with my opinions on what they’re doing. In nearly every case not only am I ignored completely, I see those projects (Mozilla especially) continue to drift in a direction that I disagree with. So, I stopped donating.

In general I look at donations as influence-free. You aren't buying anything with your donation. Sure, an org is more likely to listen to the wants of someone who is a large, noticeable, recurring donator. But in general most people will not be that. Donate to support what they are doing, not to try to influence them. Your decision to stop donating when their values stopped aligning with yours was a good one.

> Open source first felt to me like a way to give power back to ordinary people, and it still is, but it seems like those who get the most benefit from free labor are large corporations.

I think you're looking at it the wrong way. Unless you're going to dual-license your project, you just need to accept that people will use your software in ways that you might not agree with, or to make more money with it than you can make off it yourself. That's always been true, even before you started getting into it.

I do open source because I enjoy it. It's really that simple. I love building things with code, and building entirely for myself behind closed doors is much less fun than collaborating with others, building for a larger audience. If I ever stop enjoying it, I'll stop. If a company ever starts making money off what I've built, that's fine, good for them. If there's anything I've built that I do need or want to monetize, I'll license it in such a way that will make it harder for companies to make money without me getting a piece of it. But this is the trade off with open source: you give it away with no expectations for or reservations against how it's going to be used.

account42 2 months ago

> I’m a young(-ish) dev who used to care a lot about open source but never managed to break into a community.

I think this is the wrong mindset. Open source works best with a "hacker" approach where you fix your own issues / fulfill your own wants and then share the results with others. Sure, this could result in becoming part of a community but that shouldn't be the goal.

> “Your patch works and provides a feature some people might like, but I don’t like it, go away.”

That's an entirely reasonable response. You are effectively asking the project regulars to maintain your code going forward, after expending whatever effort it would take to coach you into making it fit. It's perfectly fine for them to say thanks, but no thanks. Accepting pull requests indiscriminately only leads to project death by scope creep, unmaintanable bloat and eventually maintainer burnout.

> I’ve donated plenty to organizations like Mozilla, Wikipedia, and GNOME. I then email them with my opinions on what they’re doing. In nearly every case not only am I ignored completely, I see those projects (Mozilla especially) continue to drift in a direction that I disagree with. So, I stopped donating.

Understandable and I feel similarly about these (well except I never cared much about GNOME) but they are all run closer to startups than open source community projects.

binary132 2 months ago

Free Software is designed to solve this problem.

insane_dreamer 2 months ago

numpy and scipy are other examples of widely used (esp in scientific community) FOSS packages that are solid, updated, don’t appear to be v political (from the outside). There are others.

mgkimsal 2 months ago

I hear you on "yeah, the patch works, but I don't want it" - or..., as I've had a few times "that works, but it's not the way I want it done - redo it my way". Had that happen a couple times, in tech stacks and projects I'm not comfortable in. I'm not an expert in tech X, and don't have time to become one, to learn 'your way' just to make a PR you find acceptable. I found a legit bug, gave you code to reproduce and a suggested fix; please reformat it if you don't like my way.

I also had an opposite experience - submitted a PR with a fix, and the maintainer rewrote it a 'better' way which addressed the problem higher up the stack, meaning it 'fixed' things in a couple other spots I didn't even know about. That was such a great thing to do, and reminded me that projects can be that collaborative, even when you don't really 'work' with the other people all the time.

I might suggest you find smaller and more focused projects to contribute or donate to. The spirit you're looking for is still out there. Your Mozilla donations individually don't mean much to them, and sending some money to GNOME doesn't mean they'll take your emails seriously. A more niche project addressing a more focused problem would more likely welcome your code and donations, and potentially let you have a 'voice' more effectively than at big projects.

kentrado 2 months ago

Open source misses the point of Free Software. The distinction is important.

I have some tips that might help you develop a better relationship with Free Software.

Try to be egotistical about it. Contribute because you want a change in a software you use. If the maintainers are giving you a hard time, fork it with your changes and be happy.

Stop donating to software foundations, you will be disappointed on how they use your money.

Never sign away your rights with a contributor agreement. Fork it and move on.

Use copyleft whenever possible.

  • goodpoint 2 months ago

    egotistical? You are sharing the outputs of your efforts with the whole world.

    • palata 2 months ago

      I guess the parent means "do it for yourself". I open source my code under copyleft (generally MPLv2 or EUPL, I've come to like EUPL because it applies to SAAS) because I don't think I would make any money from not open sourcing it. By open sourcing under copyleft, I can potentially benefit from improvements by others.

      I don't spend much time accepting contributions: I encourage people to fork. But if they make changes that I find interesting, I bring them back. For my benefit.

      I do it for me.

throwaway2037 2 months ago

I will get downvoted for this answer. I have similar experiences with open source contributions, including big reports. My solution: Don't do it; it is a waste of your time. It is best, if possible, to run your own open source projects, then you fully control to whom you listen and accept input.

[removed] 2 months ago
[deleted]