I would like to start this post by answering the following two questions:
Can you envision a world without open-source software? What would be different or missing?
The answer to the first question is simple. No, I cannot nor do I believe anyone else can. Well, not a world where the pace of technological evolution will happen at the same pace as it does today. Is the pace of evolution a good thing? That is a whole other post. It depends…
To answer the second question, I am going to quote Richard Stallman:
Let me make an analogy, an analogy between programs and recipes. A program is a lot like a recipe, each one has a list of steps to be carried out with rules to tell you when you’re done or when to go back. In the end, there’s a certain result.
If you cook, you probably exchange recipes with your friends, and you probably change recipes too. And if you made changes and you like the result, and your friends like eating it, then you may give them the changed version of the recipe.
So imagine a world where you can’t change your recipe because somebody has gone out of their way to set it up so it is impossible to change it. And imagine that if you share your recipe with your friends, they will call you a pirate and try to put you in prison for years.
The early days
I was introduced to the world of open source through a language a lot of people love to hate. The language? Java.
Back in 2015 2005, Java was owned by Sun Microsystems (now part of Oracle) and along with MySQL had a thriving open-source community and ecosystem. A lot of this was under the Apache and Eclipse Foundations. I fondly remember projects such as Tomcat, BERT, the Eclipse IDE, Maven, and so forth.
And then there was MySQL itself and the Apache web server. I was blown away by the idea that you had free access to all of the pieces to run a scalable production-ready web application, written and maintained by a community of exceptional developers from all across the world. To top it all off, I could read the code, learn from it, and contribute back through code, documentation, and whatever else the project needs.
This was my first taste of being part of something bigger than myself or the company I was employed at. Something that has the potential to impact people globally, and a community of people more interested in building together and empowering others, than building walled gardens.
Open Source Empowers
As someone from a developing country being part of a community that did not only share their work but also their knowledge freely was empowering and I wanted to be a part of it. I have personally benefitted from being able to work in the open for years now to the point where I honestly find it strange and unsettling when the work I do is not open and freely available.
I wholeheartedly believe that being part of the open source community is the best way for anyone new to the technology industry to gain experience and make cool shit, hands down. Not only can you gain experience in your chosen area of technology and marketing, but you also get to learn how to work with other people, how to give and receive feedback, how to plan, how to work toward a common goal, and more. Because all of this is in the open, it acts as the best resume you can hope for.
NOTE: I do not pretend to believe that the open-source community is perfect and that there aren’t any problems. As with any community, there are challenges with inclusion, being welcoming, and supportive, and presenting a clear onramp to those new to the industry or the community. With that said, because of the transparent nature of open-source, these are harder to hide, and more and more projects are facing these challenges head-on and setting an example for the world to follow. We have a lot to do here, but as a community, I believe we can lead by example.
A pipedream?
I dream of one day being part of an incubator that takes people from all across the world through a learning roadmap where they get paid a globally competitive salary for a junior while contributing to open source and honing their chosen craft. All while making friends (of which I have made so many) and building a network they can rely on. At the end of the incubator, real-world opportunities will await those who have graduated from the incubator either in open source, at a company that will support their continued growth, or building a startup with the friends they have made through the program. This is a dream I hope to realize one day.
Sustaining and burnout
As mentioned earlier, I am not naive and am very well aware of the challenges of the open-source ecosystem. Over and above problems with inclusion and the lack of a roadmap for those new to open source, there is the very real problem of maintainer burnout, the security of the open-source “supply chain”, bait-and-switch licensing or broken promises (reddis being one of the most recent examples of these), demands made of maintainers with no financial incentive, and a high degree of projects being abandoned or taken over by companies who cannot demonstrate that they have the right intentions. This last one reaffirms the need to trust but verify. Something that open-source allows one to do when the licenses and practices adhere to the official open-source definition.
Money is one way that maintainer burnout, project abandonment, and the overall health of the ecosystem are being addressed. And while there are great examples of this such as the Astro Ecosystem Fund, Sentry, and the work by the Sovereign Tech Fund, we have to be careful.
We must be careful that the value, worth, and success of open-source projects are not measured by vanity metrics such as stars on GitHub or attempts at gaming the GitHub trending algorithm. For one thing, not all open source worth investment happens on GitHub, there are also platforms such as GitLab, Codeberg, and BitBucket where a lot of great work is being done. Some people also overblow the success of a project by purchasing social media accounts and carefully curating actions to ensure their project trends or goes viral. To me, this is a race to the bottom where everyone loses.
Update: To be clear, starring a repository on GitHub is still a quick and easy way to show your support for a project but, because of the way this is gamed, it is not a measure I look at when deciding to adopt a project. I am much more interested in seeing the general health metrics of the repository, the activity, who is part of the project, and when the last release or update was made to the project.
We should head against believing that the BigTech overlords and capitalism will be the savior of the open-source ecosystem and its maintainers. Money has a role to play here as does building a successful business with open source but, this needs to be done in an honest, and transparent way that respects the work of millions of contributors and maintainers who give freely of their time, attention, and knowledge with the trust that the license used at the time of contribution will remain in perpetuity. If you are not willing to make this commitment, be transparent about this from day one. There is no shame in it, but there is a lot of shame when you break a promise made to those who contributed to your project in good faith.
To the future
For those who have been a part of this amazing social contract based on trust, we lovingly call open-source, thank you.
The world stands on the shoulders of these giants. To those who are curious. Yes, you should become part of this community, warts and all. There is immense power in numbers and it is through standing together, contributing, and raising the voices of everyone that we can ensure a healthy future for the open-source ecosystem, its people, and the world.
Some other resources
BTW: I will be hosting a live stream on YouTube (A recording will also be available) on April 18, 2024, for those interested in getting involved in open source. There may even be some special guests for the Q&A at the end. 😉
Why do you love open source? What does open source mean to you? Let me know in the comments.
Top comments (2)
I love open source because it gives people from non-tech backgrounds, like myself a chance to practice their tech skills and develop their soft skills! :)
Open source means coming together with other people to collaborating with others on creating and/or maintaining and marketing a tool.
Thanks for your post @schalkneethling! :)
Thank you for sharing, @cbid2 ❤️