The question of whether programmers who do not contribute to open-source projects are selfish is a nuanced and multifaceted issue that warrants a thoughtful exploration. At its core, this question touches on broader themes of community, individual responsibility, and the diverse motivations that drive human behavior. To address it adequately, we must consider the context in which programmers operate, the nature of open-source contributions, and the ethical implications of labeling someone as "selfish" for their choices. Open-source software has undeniably transformed the technological landscape. It fosters collaboration, innovation, and accessibility, enabling individuals and organizations to build upon the work of others without reinventing the wheel. Many of the tools and frameworks that programmers rely on daily—Linux, Python, React, and countless others—are the fruits of open-source labor. The ethos of open-source is often rooted in a spirit of generosity and collective progress, and those who contribute to it are rightly celebrated for their willingness to share their expertise and time for the greater good. However, it is reductive and unfair to categorize programmers who do not contribute to open-source as selfish. Such a judgment overlooks the myriad reasons why someone might choose not to participate in open-source projects. For one, not all programmers have the luxury of time or resources to dedicate to unpaid work. Many individuals are juggling demanding jobs, family responsibilities, or personal challenges that leave little room for additional commitments. Open-source contributions, while rewarding, are often unpaid and require significant effort. For some, prioritizing paid work or personal well-being is not a matter of selfishness but of necessity. Moreover, the assumption that non-contributors are selfish ignores the diversity of ways in which programmers can and do contribute to the broader community. Not all contributions are visible or take the form of code. A programmer might mentor junior colleagues, write educational content, or participate in forums to help others solve problems. These actions, while not part of the open-source ecosystem, are still valuable and altruistic in their own right. Additionally, some programmers may work on proprietary software that, while not open-source, still serves a meaningful purpose and benefits society in other ways. Another critical consideration is the personal and professional context of individual programmers. Some may lack the confidence or experience to contribute to open-source projects, fearing criticism or rejection. Others may work in environments where contributing to open-source is discouraged or even prohibited due to intellectual property concerns. In such cases, the decision not to contribute is not a reflection of selfishness but of external constraints. It is also worth examining the ethical implications of labeling someone as selfish for their choices. Such a judgment imposes a moral obligation on individuals to participate in a specific type of community effort, which may not align with their values, interests, or circumstances. While open-source contributions are undoubtedly valuable, they are not the only way to contribute to the world. People have different strengths, passions, and priorities, and it is important to respect those differences rather than imposing a one-size-fits-all standard of altruism. That said, there is a valid argument to be made for the importance of giving back to the communities and ecosystems from which we benefit. Many programmers rely on open-source tools in their daily work, and contributing to those projects—whether through code, documentation, bug reports, or financial support—can help ensure their sustainability. However, this does not mean that those who do not contribute are inherently selfish. It simply highlights an opportunity for greater awareness and encouragement of community involvement. In conclusion, the question of whether non-contributors to open-source are selfish is overly simplistic and fails to account for the complexities of individual circumstances and motivations. While open-source contributions are a powerful way to give back to the community, they are not the only measure of a programmer's value or generosity. Rather than casting judgment, it is more productive to foster an inclusive and supportive environment that encourages participation in ways that are meaningful and feasible for each individual. By doing so, we can celebrate the diverse ways in which programmers contribute to the world, both within and beyond the open-source ecosystem.
If you write good code, then modern scum will hate it and not use it because modern scum hate all good things. In that case, there is no reason not to make it open source.
At the end of the day, what matters most is that we have a working tool, whether the code is bad or good is something you can improve over time. But if that tool is for a client, then things are different. You'll be obliged to keep it good so that others can maintain it too