3 ms·
People (both developers and users) need to understand the limitations and benefits of open source: For companies, it is about control. Google did not care abou
by palata 2y ago
People (both developers and users) need to understand the limitations and benefits of open source:
For companies, it is about control. Google did not care about contributing protobuf to the world: a company does not "care", it maximizes profit. Open-sourcing protobuf was most likely not a big cost, and it had benefits for Google (otherwise it would not have been rational to open source it). For instance, Google benefits from external engineers who already know protobuf when they join Google (no need to teach them). Google can benefit from external projects exposing a protobuf API (though I am not sure if that is frequent), and by having protobuf out there, they keep control: the biggest issue of Cap'n Proto is that it does not support all the languages protobuf/gRPC do. If protobuf was not open source, something like Cap'n Proto may take its place, and that's not good for Google. Same goes for Chromium or AOSP.
For individuals, there are two cases: as employees and as "hobbyists" (for a lack of better term):
As an employee, I benefit from my code being open source: I will keep access to it after I leave, and it serves as a portfolio you can show when you look for a new job. I really, really do NOT understand why software developers are NOT systematically pushing very hard to get their code open source. Many times you just need some kind of "yes" from a manager (even if they did not really understand the consequences) and once it's open source, it's done. And many times it does not impact the company at all (and honestly, why should you care?). I have this Marshall home smart speaker that is pretty good hardware, but the software is a piece of crap. Marshall does not benefit from not making it open source: people like me would make their speaker better. Not because I want to help Marshall, but because I want a good speaker and I am ready to work for it. It's just that nobody at Marshall cares/understands.
As a "hobbyist" (again, bad term but I don't have a better one), it is a bit of a philosophy. I like using open source software, because I can compile it for my specific needs, I can debug it, I can tweak it. If I am aligned with the creator, I can even contribute upstream as long as I do benefit from it (mostly because I need it or I enjoy it). The risk is that someone else may resell my code, but let's be honest: if I could sell my code myself, I would not make it open source. Of course it's frustrating when someone else makes money from your work, whether they honor the attribution clause of the MIT license or not. BTW if you don't want to live the frustration of seeing a business make money from your work, a good start is copyleft licenses. They can still make money from it, but at least they contribute back to your project. I just don't understand why hobbyists go for permissive licenses at all.
Now hobbyists (like the maintainer of Captura) need to really understand that they don't owe anyone anything. You work for free, you should work for yourself. If someone wants a feature you don't care about, don't implement it or make them pay for it. If they are being jerks, ignore them. If they fork away, great! And IMHO you should favour contributions to projects that have a copyleft license. If you contribute to permissively-licensed projects (or if you sign a CLA), then you are not allowed to be frustrated when the company makes money from your code without giving anything back.
- kentonv 2y ago> Open-sourcing protobuf was most likely not a big cost, and it had benefits for Google (otherwise it would not have been rational to open source it). Nah honestly it was more like I said "Hey I want to open source this!" and other engineers said "Yeah that sounds awesome!" so I did. That was Google in ~2007, you could basically do whatever you wanted and as long as it was vaguely plausibly useful management said "sure". I'm honestly not sure the company had any idea what they should do with OSS protobuf, at least for many years. Management never really gave me any credit for releasing it and gently pressured me to find a different project to work on that more directly aligned with company goals, which I eventually did. Still not clear if they even know today. They seem more serious about it today but at the same time it's still clear that they mostly don't care about external users, so much so that startups like https://buf.build https://buf.build have to come in and build the actual products around Protobuf that Google never delivered publicly (but has internally). Of course, companies are not hive minds -- there are clearly people at Google who want to make Protobuf a great product and are trying to do so, but I don't think management sees it as strategically interesting, so they face headwinds. > If protobuf was not open source, something like Cap'n Proto may take its place, and that's not good for Google. Honestly I don't know if Google cares. Cap'n Proto hasn't caught on much because frankly I don't care to make it a product, I maintain it for my own use (primarily in the Cloudflare Workers runtime, my day job). But if that changed and Cap'n Proto got really good and people ditched Protobuf for it, would it really affect Google? I kind of don't think it would. (Just like I'm not sure it would benefit me that much, which is why I don't make this my job.) Certainly the strategy around open sourcing something like Protobuf vs. something like Chromium or Android is entirely different. Sundar probably doesn't even know what Protobuf is TBH. (Disclosure: I wrote and open sourced proto2 while at Google, created Cap'n Proto after, and have a small investment in Buf.)
- palata 2y ago> Certainly the strategy around open sourcing something like Protobuf vs. something like Chromium or Android is entirely different. Yeah I was just speculating with a well-known project. Sometimes it doesn't matter to the company and some engineer manages to open source it, sometimes it is a strategic decision by the company, and sometimes the company does not realize it would be a benefit (I believe in my Marshall example). > Cap'n Proto hasn't caught on much because frankly I don't care to make it a product And that's your right, and people using it need to realize (or you can correct me if I'm wrong) that unless they make a contribution that Cloudflare cares about, it's probably not worth contributing at all. Reminds me of this very similar criticism of Signal recently [1], where someone was frustrated because they spent time on a PR that never got reviewed. I do understand it is very frustrating and it happened to me as well (I put quite some effort in a project and it was lost because the maintainers did not care). But the lesson I learned was that I should just be wiser when I decide if I want to contribute to a project or not. And for projects that essentially belong to companies (which I understand is currently the case of Cap'n Proto, since you say that your time right now belongs to Cloudflare), then probably it's not worth it. I guess if I reported a bug that affected Cloudflare I would not even have to bother fixing it myself: someone at Cloudflare would. [1]: https://news.ycombinator.com/item?id=40596573 https://news.ycombinator.com/item?id=40596573