I want to raise an idea. Currently, a large proportion of Julia packages are maintained by volunteers. This is great because the community benefit from the free labour and love of volunteers. Still, the con is that volunteers being volunteers are driven by motivation and the availability of free time both of which can reduce significantly due to … life.
I was thinking. Although, I generally don’t want to spend more time on OS than I already do, if I can earn some compensation on the side it beats driving Uber!
For example, I thinking about the finding the funds somewhere (just not sure where) to pay to the maintainers of key foundational packages like DataFrames.jl, CSV.jl JSON3.jl, Parquet.jl, Thrift.jl, Protobuff.jlj, Flatbuffers.jl etc which is essentially a retainer that guarantees a certain number of hours per year? E.g. we have a fund of $800, and if we pay developers $50/hr (I know, but OS is at reduced rates), then we get 16hrs i.e. two day of support.
Now that I write it out, the inadequacy of the funding is glaring. I am sure many of the volunteers contribute way more than 16hrs a year to open source.
So… I will exit myself now.
Since I’m very passionate about this topic, I think any discussion of funding OSS work needs to confront the current compensation at large companies: https://www.levels.fyi/
Some examples from Google’s reverse engineered payscale, which I suspect isn’t quite right starting at L7/L8 since the increases suddenly drop off:
- L5: $345,494 per year
- L6: $496,140 per year
- L7: $708,000 per year
Open source funding never made sense to me. How can we sustain something on volunteers basis? It’s not possible. But for large companies driven by profit, they won’t shell for what they don’t “need” to pay for. They only fund a small portion of projects.
For Julia it’s harder, cos alot of foundational projects are only used by the Julia community e.g. Thrift.jl, I think we only need it to communicate with the outside, we don’t actually need it. So the # of ppl that want it would be small, and we can’t really ask volunteers for funding, cos they already volunteer their time.
But I think Thrift.jl should be funded. So do so many other projects, so obviously there isn’t sufficient funding floating around.
What do you mean by “confront”?
In that context, I would use this definition: “1.2: Face up to and deal with (a problem or difficult situation)”.
It seems that open source development is becoming more and more integrated with academia these days through the research software engineering movements and as more researchers, especially in computer science, care to deliver final software products that ship and promote their new algorithms. For the non-scientific areas of open source, donations from industry or government grants with interest in those areas might be the best hope. Perhaps one day, there will be more government and industry grants for open source projects just like PhD scholarships and academic fellowships but more media attention is probably necessary before more companies and politicians feel like this is an area that needs more money fed into it and that has a positive impact on the economy. That’s my 2 cents anyways.
In that case I would prefer tax-payer dollars (if publically funded) to be funding software rather than just papers.
I heard this story where the ARC funding specifically funds the development of algorithms but not the implementation of the algorithm. Hence institutions needs to charge for the software. Kinda weird.
Well it’s complicated. Papers advance academic careers, software not so much, only if they help with the citations as a marketing tool for the paper/algorithm. Historically, research has been mostly about papers and that’s unlikely to change any time soon. But it’s not an either-or situation or a competition, both papers and software are important. Making academics and decision makers realize that is the challenge.
That’s the problem. Need to change that incentive!
The funding of open-source projects through academic projects will only make sense for software that is directly related to the research, or even developed as a research artifact.
But the packages listed in the OP really provide infrastructure, instead. So I think it will be hard to sell them as research projects.
One idea that seems to work for some larger OSS projects is to generate income from paid support.
I wonder if this could be improved by reducing the support offered to the general public.
Something along these lines was described in some article that I can’t locate now: An open-source project will publish the source code, but will not have public issue trackers or discussion boards. To participate in the conversation one would have to become a member of a club and pay a monthly fee, say. For regular contributors (as decided by some form of internal vote) that fee would be reimbursed, or even be negative for the core team receiving paid hours for support.
That seems more than adequate compensation to both sweeten any guilt and imbue any professional ego.
I think that’s exactly what we don’t want. People opening issues and new contributors opening PRs is really a great thing and without this open collaboration, I believe Julia wouldn’t have gotten nearly as far as it is today. I don’t see how your proposal would attract any new contributors to the language and I also don’t see how users would report bugs or point out possible improvements that maybe the core maintainers haven’t thought about. The whole spirit of the open source community is that it’s open to everyone, and I think with that suggestion we would lose out on a lot of contributions that make Julia great.
I agree that a barrier to create issues will mean that some valuable contribution is lost.
On the other hand, keeping issues open for everybody can also lead to “maintainer burnout” because some users feel entitled to have their specific problem fixed or feature request added. Many issue reports don’t show a lot of effort by the reporter (no reproducible example, no search of older issues or documentation, using outdated versions) and still require a response by the maintainers to not lose track of the important issues. This is the part where paid entry to participation would benefit. For the handful of Julia packages that I care about deeply, I’m willing to support them. For other packages, I might only be a “consumer”.
I also think that one can make a distinction between issues (just reporting a problem) and PRs (providing a solution as well). Maybe only access to issue reporting need be limited, but PRs can be left open, and by contributing a PR, one becomes member of the organization as well.
This is the business model of many YouTube channels, and seems to work reasonably well there.
You can always contact the maintainers of the packages and donate to them personally (unless they have donation channels already in place). Why do you want some framework around it!? Sounds … authoritarian. If enough people and companies would do it, it would work. However, one cannot condition maintenance on the payment itself. It would not be free software anymore - free stands for freedom not gratis. So, free software does imply freedom to participate in anyway one sees fit. I view this more as a societal mindset problem. Or, one could petition the company one works for (which incidentally makes a profit out of using the free software) to support the maintainers - and the company becomes a silent backer. The company becomes in a way dependent on the pea producers. Everybody wins.
This is a great point so I am not referring to these in my academic comments. It’s more tangential point.
The issue is that infrastructure do not get a lot of love, so they tend to fall behind.
I am still dreaming about communism working out… that’s the problem, ppl won’t just “donate” for whatever reason. Probably for the same reason where pure communism don’t really work in the real world. Even though it would be an ok idea if everyone follow communism and worked just as hard.
Well, and yet, despite the lack of financial support, people still write free software. It was never about the money. Its about freedom - or an instantiation of it. Writing code is also a creational process that seems be fulfilling in itself. As for communism, it is already dominating Europe and Asia without anyone noticing…
This is also a great point. But @leethargo has a great point too. I think you are looking at two sides of the coin and each side is emphasing one side.
I haven’t many packages where issues lay dormant because the author does not respond for whatever reason. So a repo where only user contribute issues is but author is inactive is an issue. OTOH, it’s also an issue if there is no good will and no one contributes. It’s a balance.
I think the balance now is making the author have less incentives to do stuff. I still don’t know how all these amazing works like DataFrames.jl and Juno get made on a volunteer basis. I’d like to see them funded! So it’s not just dependent on goodwill, we as a community need to show appreciate for the developers. One way to show that is via monetary compensation.
Personally, I consider myself as OS contributor. But I don’t feel like contributing more than my level now unless I can find $$ just because otherwise I can spend time with family and play games etc. So yeah, but that’s just me. Others can contribute more time than me and some less. All are OK.