13 April, 2026

The value of open source

A reflection on the importance of open source software for the society.

The value of open source
Available in:
 English
Reading time: 7 min.
Table of content

    This month marks the release of Gemma 4 and a bunch of other new features in llama.cpp that I was the lead developer of. While I'm happy and proud to see the project growing and being used by more and more people, the success of the project also brings some unwanted noise. So, I'm taking a step back to reflect on the value of open source software and why I choose to contribute to it.

    This article is not about the technical details of the project, but rather a personal (self-centered) reflection. I hope it can shed some light on the motivations and expectations of open source contributors, and maybe inspire some of you to join the open source community.

    How it started

    If you are already an open source contributor, or want to be one, have you ever asked yourself what the motivation behind your contribution is?

    Here are some common motivations I've seen or can think of:

    1. To learn something new, or just to have fun and enjoy the process of creating something new
    2. To exchange ideas and collaborate with others
    3. To document your work, share it with others, and revisit it one day
    4. To build a reputation and gain recognition
    5. To build a business on top of it

    I personally think the first three motivations are the most common and pure ones, while the last two are more about the outcome of the contribution rather than the motivation itself. Of course, there is nothing wrong with having the last two motivations, but I think they should not be the primary drivers for contributing to open source software.

    I started contributing to open source software in 2014, back when I was in high school, quite a long time ago. It all started with me tinkering with my new Android phone, trying to root it and install custom ROMs. It was out of curiosity and fun that I started to contribute to some Android-related open source projects, and then it just became a habit.

    My first popular project

    Image: My first popular project

    Things were simple back then, there was no pressure, no expectations, just pure fun and enjoyment. I was learning new things, exchanging ideas with others, and sharing my work with the world. It was a great experience and I was happy to be part of the open source community.

    More than just code

    As I continued to contribute to open source software, I learned to appreciate the value of it more and more. I realized that open source software is not just about the code, but also about the community, the culture, and the impact it can have on society.

    There was a story that I witnessed around 2015, where a maintainer of a project responded to a contributor who forked the project and made some changes without asking for permission (without even opening a pull request). The maintainer was very angry and said that the contributor was stealing his work and disrespecting his effort. I was shocked by this reaction, and I couldn't understand why the maintainer was so upset. After all, the contributor was just trying to share his work. And because the project was open source, it was supposed to be copyable and modifiable by anyone, right?

    This made me realize that some people have very different expectations of what open source software is, and they see it as their own property rather than a shared resource. Of course, there is nothing wrong with having a sense of ownership, but I think it should not be the primary motivation for contributing to open source software.

    The true value of open source lies in collaboration, learning, and the collective improvement of software for the benefit of everyone.

    However, it is indeed more complicated than it sounds. The reality is that the definition of "collaboration" and "collective improvement" can be very different depending on who you ask. Why? I'll explain it in the next section.

    Different perspectives on collaboration

    Years later, I started contributing to a young project called llama.cpp. You can read the story in my previous article for more details. But the TL;DR version is that I started contributing to the project because I was interested in the technical challenges and I wanted to learn more about it. As a side effect (that I hadn't anticipated at the time), my reputation and recognition in the community also grew, and I was eventually hired by Hugging Face to work on the project full-time.

    However, I sometimes find myself in a dilemma when I want the project to be more collaborative and inclusive, but some people come up with ideas that are not aligned with that vision. For example, some people think that the project should support a specific feature or a specific use case, in a "hacky" way, without considering the long-term maintainability and scalability of the project. They may argue that it's just a small change and it won't cause any harm, but in reality, it can create a lot of technical debt and make the project harder to maintain and evolve in the future.

    That did result in some conflicts and disagreements, from time to time. Some are as simple as "fine, I will not merge your PR, please leave it in your fork." While some can be more complicated, like times when the discussion ended with a threat from the contributor. These interactions can be very frustrating and demotivating, especially when I wanted to focus on the technical challenges and the long-term vision of the project, rather than dealing with the drama and conflicts.

    The elephant in the room

    Of course, the reality is that there is an elephant in the room that I haven't mentioned yet. This is the fact that AI-generated content is becoming more and more prevalent, and it can be very easy for anyone to "contribute" to open source without spending much time and effort on it.

    While in theory, this is a double-edged sword, in practice, it has created quite a lot of noise and low-quality contributions that can be very frustrating for maintainers. The main issue is that people behind these contributions misunderstand the value of open source software. They see it as a quick and easy way to get recognition and build a reputation, without putting in the effort and time to learn and collaborate with others.

    A good analogy for this situation is that it's like cheating on an exam. You can get a good grade by cheating, maybe even receive some recognition from your peers, and your family might be proud of you. But in the long run, you will not learn anything, and you will not be able to contribute to society in a meaningful way. You are just taking advantage of the system without giving anything back.

    llama.cpp's AI policy

    Image: llama.cpp's AI policy, emphasizing the importance of human interactions

    Is there any way out?

    Honestly, I don't think anyone can really solve this problem, at least not in the short term. The best we can do is to try to spread the right values and expectations of open source software, and to encourage people to contribute in a meaningful way.

    So what do I believe is the true value of open source software?

    1. Trust. It's the foundation of anything in society.
    2. Collaboration. Human-to-human collaboration is the most powerful way to create something new and sustainable.
    3. Learning. Don't "cheat" your way to success, but rather learn things that can help you one day.

    In the end, I still believe that open source software is a great thing, and I'm happy to be part of the community. I hope that more people will understand the true value of open source software, and that we can improve society together through collaboration and learning, not by taking advantage of the system.

    Want to receive latest articles from my blog?
    Follow on
    Discussion

      Loading comments...