This Week in Programming: A Manifesto for Sustainable Open Source Development
There’s been much ado about open source funding, and corporations’ role in giving back where due, lately. This week, the topic is reignited in a manifesto-esque study of open source funding by open source freelancer André Staltz, who examined 58 projects on GitHub, Open Collective, and Patreon, to determine some loose numbers on how much money could be getting down to individual contributors of popular open source projects.
In a post titled Software Below the Poverty Line (you might guess where this is going), Staltz found that, despite two stand-out projects that were “clearly sustainable […] the majority (more than 80%) of projects that we usually consider sustainable are actually receiving income below industry standards or even below the poverty threshold.” Put simply, Staltz declares that “the total amount of money being put into open source is not enough for all the maintainers.”
Things I did not say in that article:
"The donation model is broken."
Nope, what's broken is corporate culture of using open source much more than giving to open source. Open source is all about gifting, not just money, but also PRs, docs, etc. I believe in the donation model.
— André Staltz (@andrestaltz) June 13, 2019
While Staltz says that he did not say that the donation model is broken, Cloud Native Computing Foundation Chief Operating Officer and Chief Technology Officer Chris Aniszczyk also shared his thoughts on Twitter, mentioning a recent post of his own, which argues that there are some issues with the donation model turning open source contribution into a gig economy.
… just saw this data from patreon who has been at it longer than most… there's a super small portion of folks that may make it… let's not turn open source into a gig economy and demand more of companies instead pic.twitter.com/vTS3e94OPV
— Chris Aniszczyk (@cra) June 13, 2019
“There has been a trend lately to have open source communities/projects open an electronic tip jar for individuals (or organizations) to give back. While a tip jar can raise some funds, it’s truly not sustainable long term, as outside of it not being an effective way to raise funds for project development, it puts maintainers unfortunately in a gig style economy without health and retirement benefits,” writes Aniszczyk, noting that only a handful of individual maintainers are actually making money from donations, with most tending to abandon the approach over time.
Aniszczyk also writes that “some research shows that ‘about 50% of all open source software development has been paid work for many years now and that many small projects are fully paid for by companies,'” a point echoed by others in response to Staltz’s article.
1 major side of this is most of these maintainers are paid okay but by a corporation. Thus oss is dependent on exploitative revenue streams. I think open collective is a good idea but it doesn't sound sustainable to me at all. Open Source should be part of a co-op model I think.
— Ben Wiley (@benwiley4000) June 14, 2019
This may be the case, but Staltz still sees an imbalance, writing that “millionaire and billionaire companies are making profits by combining open source libraries and components to build proprietary software,” and doubling down with the assertion that “the struggle of open source sustainability is the millennium-old struggle of humanity to free itself from slavery, colonization, and exploitation.”
Them’s some fightin’ words, huh? It gets better.
Staltz proposed a list of initial suggestions of concrete actions to take to help make open source become sustainable, and to “keep power and capitalist thirst accountable for abuse”:
- Only accept jobs at companies that donate a significant portion of their profit (at least 0.5%) to open source, or companies which don’t fundamentally depend on open source for their products.
- Donate to open source if you have a decent enough salary.
- Don’t discard unionizing (I am writing this in Finland, where 65% of all workers are in unions).
- Don’t discard alternative licenses for new projects.
- Pressure Microsoft to donate millions to open source projects.
- Expose the truth on how companies are behaving by publishing data studies like this one.
Of course, not all are convinced.
To follow @mfeathers on this. I have gained more from the experience and exposure of my popular GitHub projects than any donation model would ever support. OSS opens doors and creates opportunity for its contributors rather than generating direct financial gain.
— Justin Smestad (@jsmestad) June 13, 2019
This Week in Programming
- Git 2.22 Adds Rebase Merges & More: GitHub brings us the tale of the release of Git 2.22, which is filled with intrigue and suspense. I kid, it’s filled with new features and bug fixes “brought to you from over 74 contributors, 18 of them new.” Rounding up the most exciting features, the post points to the ability to rebase merges, interactively, and to create branches from merge bases. For the full details, as always, check out the release notes for 2.22.
- Plug & Play Personalization by Amazon: You might think that building a recommendation engine is beyond your skills and time, and… you’re likely right, but Amazon has released Amazon Personalize, “a fully-managed service that allows you to create private, customized personalization recommendations for your applications, with little to no machine learning experience required.” Sweet, right? With Amazon Personalize, you can “build custom models without having to deal with the complexity of infrastructure and machine learning that typically accompanies these types of solutions” by making a single API call using “historical data stored in Amazon S3, or on streaming data sent in real-time by your applications, or on both.” For details on how to implement, the blog post goes into details. Amazon Personalize is available to all AWS customers in US East (Ohio), US East (N. Virginia), US West (Oregon), Asia Pacific (Tokyo), Asia Pacific (Singapore), and EU (Ireland) and is part of the AWS free tier. New users get, for the first two months after sign-up, up to 20 GB per month data storage and processing, up to 100 training hours per month, and up to 50 TPS-hours of real-time recommendations per month.
Debugging is an engineering superpower. Lots of folks can write code, relatively few can efficiently debug programs and systems. Become good at it and you become indispensable.
— Matt Klein (@mattklein123) June 12, 2019
- Greatest Ever! Didn’t you know? Python is the greatest programming language ever. Fine, that’s hyperbole, but it IS more popular than ever, at least according to the latest from the TIOBE Index. Another headline notes that TIOBE predicts that the language will replace Java as top programming language, topping both Java and C in three to four years, as the language this month reached “an all-time high in TIOBE index of 8.5%.” Why? Simply put, “Java’s way of programming is too verbose for beginners. In order to fully understand and run a simple program such as ‘hello world’ in Java you need to have knowledge of classes, static methods and packages. In C this is a bit easier, but then you will be hit in the face with explicit memory management. In Python, this is just a one-liner. Enough said.” For you Python programmers out there, also of note is Python 3.8, which we mentioned last week, but InfoWorld offers a quick little dive into the best new features in Python 3.8. And on a personal note, I can’t help but get a kick out of the fate of good ol’ Pascal, which was my preferred language of choice after BASIC in the early 90s. Apparently, Pascal was number three on the TIOBE index back then. Now? 218. Long live Pascal.
Common thinking: "I need to add code to justify my job".
Yet some devs remove more code than they add. 👍
"In my 3 years at Facebook, I added 391,973 lines and removed 509,793 lines. If I coded 1000 hours a year, that's about 39 net lines removed per hour!" – Jinghao Yan
— Cory House (@housecor) June 9, 2019
- ML Model Hub for “Reproducibility”: While we’re on the topic, PyTorch, the machine learning library for Python, has said it would open a hub for hosting ML models, according to a story in DevClass. “The team behind PyTorch has opened up a repository of pre-trained machine learning models, in an effort to bring more reproducibility to the discipline – as well as a little user up/down voting,” they write, noting that “‘reproducibility’, one of the cornerstones of science, is sometimes an afterthought. Some would go so far as to argue that the whole data science world is rather muddled, compared to traditional science in general, or even computer science in particular.” With PyTorch Hub, the aim will be to offer “a simple API and workflow that provides the basic building blocks for improving machine learning research reproducibility,” consisting “of a pre-trained model repository designed with built-in support for notebook environment Colab, and integration with Papers With Code.”
- Android Studio Goes 64-bit: FYI Android developers, there’s a new deadline to be aware of, as Android Studio and Android Emulator are moving to 64-bit versions starting this year and with support ending for 32-bit by December 31, 2020. According to the announcement, “you can still use 32-bit versions of Android Studio, but be mindful that this version will not receive future updates” and old versions will no longer be available for download from official sources.
lol'd for real at this one pic.twitter.com/nrKhw8rWmo
— cje 🌻 (@caseyjohnellis) June 7, 2019