China has steadily embraced open source over the last few years. On the strategic front, the country's Outline of the 14th Five-Year Plan (2021-2025) for National Economic and Social Development and the Long-Range Objectives Through the Year 2035 for National Economic and Social Development include open-source projects for the first time. Chinese giants like Huawei, Alibaba, and Tencent are also investing heavily in this sector, and according to GitHub's 2021 annual report, there are 7.55 million developers in China, which is positive news for the local tech industry.
As programmers perceive open-source contributions differently, it's not easy to determine whether doing open-source projects is a help or a hindrance for developers.
There is no doubt that most open-source developers are at the core of the project, but are they also the ultimate beneficiaries?
It seems that many developers who participate in open source projects are mainly required by their companies, and very few do so voluntarily. As per the "2021-2022 China Open Source Developer Survey Report", only 18% of respondents voluntarily participated in open source projects. It is worth mentioning that the research data on developers' revenue from open source is also included in this report: 68% of the respondents said "nothing," and 17% said "very few".
Without a profit motive, it is nearly impossible to contribute. Some respondents said bluntly that only technology giants in China could play the game of open-source, while small businesses and individuals have no interest. In addition to losing revenue, they also lose support from their users if they open-source their code.
After the incident of the Log4j2 breach, Volkan Yazıcı, one of the maintainers of Log4j2, tweeted: "Log4j maintainers have been working sleeplessly on mitigation measures; fixes, docs, CVE, replies to inquiries, etc. Yet nothing is stopping people to bash us, for work we aren't paid for, for a feature we all dislike yet need to keep due to backward compatibility concerns."
In this regard, it is comprehensible why, when Marak Squires deleted the repository, some people understood his decision to do so. A few companies are using free resources but never giving them back to the community, which has been a source of frustration for open source maintainers. The money accrued by open-source projects has nothing to do with their maintainers and creators, while all the blame belongs to open source contributors, sarcastically.
In addition, even if companies require their employees to participate in open-source projects, the initiative may also cause problems for the organization. Companies can be tempted to promote user growth by choosing projects that are too harsh for most outsiders to accept. It is possible that the project could be abandoned once the core developers leave or when the company changes its KPI.
Additionally, how do you prove your contributions as a full-time open-source community member? When doing open-source projects becomes part of the KPI, pressure is bound to follow. As a result, some managers just blindly set performance metrics for their teams, which puts a great deal of stress on their developers. It is unlikely that developers would have maintained their enthusiasm for open source projects if KPIs were the focus.
Benefits to Open Source
An essential benefit of open-source is the sharing of knowledge. The world of technology is so vast that one person can not take it on. Knowing the trade-offs, collaboration, and win-win patterns can create more value.
Open source is not a programmer building a house, and then all other programmers come to live for free. Instead, many programmers find that they need such a house. Then each person brings a brick, and they use all the bricks to build a house together. Later, people can renovate and repair the home and use it again.
In a nutshell, many hands make light work. It prevents a significant amount of waste from occurring due to continuously reinventing wheels, while a wide range of individuals will review the "wheels" quality.
Meanwhile, it increases productivity and returns. When programmers pick an open-source project, the technology will be steadily productized. The "out of the box" pattern will inevitably increase efficiency, lead to a surge in application development, and increase market demand.
When the volume of the industry proliferates, there will be greater demand for programmers; consequently, they will have more opportunities in the labor market.
Finally, there will be more options for individuals. When some open-source projects become famous, the author's visibility and reputation in the community will improve rapidly, which is a significant benefit for many businesses. In 2020, a programmer called Caleb Porzio revealed that he earned $100,000 per year via GitHub donations and how-tos.
But neither pure good nor pure evil exists. The "out of the box" idea of the open-source increases efficiency and reduces costs. This paradigm has not only lowered the bar for "becoming a programming expert," but it has also replaced some of the original work of programmers at certain levels.
Some would argue that realizing "out of the box" is not that simple but requires to make adjustment based on real-world conditions. In contrast, the learning, time, and debugging costs for open source are far lower, and the result is more straightforward if the primary purpose is to alter it depending on business needs.
Additionally, technology is constantly evolving, and open-source accelerates the process. In the context of fast industry-wide change, the reduction of the threshold has resulted in an influx of more people into work, causing existing programmers to struggle for survival.
We Need Both Idealism and Realism
Open-source software was created to challenge monopolies, and its primary meaning is "freedom." The history of open source has been fascinating, beginning with the blazes of the stars and ending with its proliferation over the universe. People from all across the world pursue open source for several reasons.
Some believe that open source represents a more profound spiritual need, "When I discover that I can serve others and generate value for them, I feel wealthy and no longer dread my own lack, because I begin to receive continual good feedback from others, so enriching myself."
Others believe that open source stems from a sense of gratitude and heritage. "When I was a novice, people assisted me in growing. After I made achievements, I would use the same strategy to give back to the entire community. If I embrace the grace of open source, I have to pass it on to others. " A programmer stated.
However, it must be noticed that numerous open source contributors and maintainers have invested a great deal of time and effort but have not received adequate feedback or support, and so can not continue. They must find a way to survive in any situation.
Here are some suggestions to maintain a balance:
First, carefully select your open source license. If you are committed to open source, preventing non-legitimate commercial businesses from profiting without contributing to the community is essential. Meanwhile, numerous open-source licenses are available.
Second, focus on open source governance. Open-source governance involves managing risks associated with open source, open-source communities, and open-source projects. In a public interview, Liu Tiandong, co-founder of Kaiyuanshe.cn and member of the Apache Software Foundation, stated that open source is more focused on technology and less on governance in China. But in his opinion, governance should precede technology. An individual hero is not the true hero; "it's alright for lousy codes, as long as everyone is prepared to contribute and willing to invest energy to make the project better and better; this is what a healthy open-source community looks like," Liu said.
The third is the establishment of procedures to increase the sustainability of open-source software. Filippo Valsorda, a Google cryptographer and leader in the Go language's security, has advocated in his blog that open source project maintainers should exchange professional ideas with enterprise users more frequently. It's essential to obtain paid support and make open-source more sustainable. Since giant corporations demand a secure and qualified supply chain, he argued that they must pay for the open-source projects they employ. In this context, he said that firms might contract with open source developers, pay them appropriate salaries, and then compel developers to ensure the quality and security of projects. Nonetheless, the maintainers would be able to continue monitoring the project, prioritizing its long-term health, and meeting the company's requirements.
As a result, developers, maintainers, and users would all be able to gain their desired benefits from open source projects, thereby making more contributions to the open-source industry and our lives.