Should I Do Open Source Selflessly?

    Feb 27, 2023

    Remember: when doing open source, the important thing is for yourself, not for others, so don't wrong yourself.

    The idea I have is that those open-source developers generating electricity out of love might have taken the wrong path. Open source is inherently a win-win situation.

    This reminds me of the Faker.js repository deletion incident and the well-received response from @以撒 (Isaac).

    Zhihu: How do you view the Faker.js open-source author deleting all the code?

    Many dedicated open-source project authors contribute tirelessly, creating outstanding works and adding value to the open-source community. Their spirit is admirable, and I appreciate the contributions they have made.

    However, what I find hard to understand is why authors, facing financial difficulties and struggling to maintain their own quality of life, would invest a significant amount of time and energy into projects, continuing to shine even at the cost of neglecting their own livelihoods.

    In the end, it seems they are only moving themselves and, in the heat of the moment, neglecting their own well-being. They even have to endure criticism from freeloaders. Watching others benefit from forking their projects while they are left with empty hands, having to deal with a pile of issues on their own, is disheartening. Seeking donations is either futile or brings in barely enough, and they are told, "If you can't afford to play in the open-source arena, then don't play at all." The effort seems disproportionate to the lack of appreciation and returns.

    The correct attitude is that open source authors must first learn to be a sophisticated egoist. All open source is for their own sake, not others. Do not be a selfless contributor to generate electricity for love.

    First of all, don't expect direct returns from open source projects. The open source model was inherently selfish when it first came out, and its goal was to reduce its own maintenance costs. In the previous closed-source era, the larger the engineering project, the maintenance cost and demand analysis cost increased exponentially, and the software iteration and release cycle became longer. It was also difficult to directly feed back the software usage experience to the manufacturer. During the competition period, The harder it is to survive. In addition, there are still different users in the software audience who have different opinions, so what should we do?

    Therefore, the source code is directly disclosed. If anyone has their own needs or finds any bugs, they can fork it themselves and the source code can be modified as you like. You are also welcome to submit your contribution. By the way, you can also gain some fame of the project, so that different software users can be taken care of. In addition, the open source model is open, and users' needs and problems can be responded to in a timely manner and pulled into the project. Users can help you solve them, and you can relax yourself. Source code is not an asset, but a liability. The source code will change with the needs, exposing many potential problems, all of which require a lot of cost to maintain. Open source is a way to share liabilities and transfer costs to users, which is self-interested. What if you want to make money with my project? No problem, MIT, Apache and other protocols have agreed: you are responsible for your own choices, you can make money, and the source code can be modified, but if you get in trouble, don't come to me.

    So what about personal projects like faker.js and core.js? How do individuals make small projects big? Many open source works were originally written on a whim to solve and realize an idea in work or study. Linux is an example. The author originally wrote the project to learn about operating systems. If the idea is good, with promotion and fame gradually accumulated, more and more people will participate to help contribute Contribution, and the project will become bigger. Now that others have Contribution, it also incorporates ideas from many different users, Then you actually have no natural obligation to protect yourself. Because when you originally wrote it, it was for your own use, not to cater to users. So since it is open source, users also have the obligation to maintain it after obtaining the rights to the source code, and the problems should be solved among them.

    In other words, I have tried my best on the project, and I have given you the source code and profit rights. If you have any ideas or requirements, you can fork and contribute, but if you encounter any problems, you can solve them yourself and do your best. Everyone can get what they need. I just made my source code public. You can use it if you find it useful. If it doesn't, you can use it. If you like it, don't use it. Don't give me any trouble. After I open sourced it, it was you who begged me to use it, not me who begged you to use it.

    Ok, this kind of "refined egoism" is the correct path for open source. If you really want to use open source to gain fame and fortune, then it's not a big deal, and there's no shame in clearly stating the price.

    Remember that when doing open source, the important thing is for yourself, not for others, so don't wrong yourself.