Is Open-Source Software Crowding out Open-Source Software?
I read an op-ed recently about a growing issue in the open-source community. It is about a panel held about open-source software at the UN, where it was noted that there are very few young people in open-source today.
Open source is bigger today than ever, and yet it also comes across as less approachable today. What is going on in the open-source community? And what are the consequences going to be if this trend continues?
I believe that the growing success of open-source is to blame. It is due to so many open-source projects that open-source is growing less approachable and more intimidating to beginners.
Consider one of the most successful projects: Linux. The Linux Foundation has existed for nearly 25 years, with the original creator Linus Torvalds still considered a “Fellow” and a key contributor to the original project. The foundation today supports not just Linux but a plethora of other big software projects that are used including Node.js.
This isn’t like decades ago, when open-source was made up of a few people sharing OS patches over email. Today, Linux is not some edgy alternative to Windows and Mac, it’s a serious operating system used on devices around the world.
In many ways, Linux won. Phones, TVs, servers, IoT devices, rocket ships, and all kinds of computers run Linux under the hood. Its free, open-source model allowed for the kind of flexibility that wasn’t possible in closed-source systems. It serves this role very well, almost too well.
The problem in open-source today is how to compete. If one project already has institutional support, popular support, financial support, and years of technical features, why would there be a challenger? How would someone get support to create a new operating system today? They can’t pull the same counterculture appeal that Linux had in the 90s.
As existing open-source projects continue to mature, it does make new entrants less appealing. And for newcomer developers, it can be a lot harder to get hands-on when the codebase is massive and complex compared to a greenfield empty project.
We can see this in the kinds of open-source events that are popular today. Rather than being relegated to hacker computer clubs like the kind Woz was part of, open-source conventions are large corporate affairs for serious people.
That’s not meant to be an insult. As someone who got into programming a while back, the evolution of open-source to become business critical is great to see. The trade-off is that open-source is no longer the kind of side projects that could become critical in a decade
You can also see this in open-source infrastructure. The of phreaking passed between people slowly and organically. Open-source was about emailing patches, or going to Sourceforge and risking malware, or participating in random IRC chats. Today, it’s far more professional. GitHub has become ubiquitous, for good reason, and has added in all the tools you need right there. This isn’t a counterculture. It’s culture.
The needs of open-source have changed too. It’s no longer feasible to just build a side project, throw it on a web host, and forget about it. Now, GitHub itself will send you security alerts. If you have a mobile app, you are told to modernize the app regularly and remove old APIs. It’s turning from a throwaway to a commitment. Cybersecurity is increasingly important. If you don’t have time to maintain your code, open-source might not be for you anymore.
How do we fix this? Open-source is a community-driven effort, regardless if the community is professional engineers or students on a weekend. It is definitely important to keep the community thriving, and it is a valuable way for students to get hands-on experience where they can learn and have impact.
I don’t believe monetary incentives would work. I do believe that’s important, as open-source has such a big impact in global digital infrastructure and security is paramount. I don’t think people are lacking for time either. What is different about open-source culture twenty years ago compared to today?
The answer is complexity, and so our efforts should be spent reducing complexity for beginners.
I believe Hacktoberfest is a solid idea, although its execution has been problematic. When you open up a program without any guidance or mentorship, it doesn’t actually succeed in bringing people in.
Leadership is not easy. But at its core we need to improve our apprenticeship and provide real, direct pathways to help people get into open-source. Unfortunately this is not something that can easily scale. It is going to require a lot of time from professionals and won’t be able to reach that many people.
But at the same time, there are ways to get students interested in these ideas while providing them with a safe sandbox to experiment and try new things: hackathons. I was involved in numerous hackathons as a participant and then as a mentor and organizer.
People get their hands dirty and can learn new things. I got to play around with all kinds of APIs and novel ideas. Many of them wouldn’t be good products or businesses, but can inject a bit of youthfulness and dynamism that is often missed in open-source today. Giving people a spark of interest can be a good way of keeping them involved for the future.
Certainly, the hacks are not great code. As the name implies, it’s all held together by duct tape. But combining the hands-on spirit of hackathons with a strong CS and engineering background can lead people to a lot of success in technology.
To conclude, I do agree open-source has challenges today. It’s not that open-source isn’t successful, but that it became too successful. Perhaps, to save open-source, we need to return to the days of amateurs and things hacked together. Not all the way. Certainly we want open-source to succeed, but we should also have an on-ramp for new programmers to join in.