5 ms·
Ask HN: Open-source software authors – why do you do it?
If you've written or maintain open source software, why do you do it? What's your motivation? And would you be more motivated if you got paid for it?
- OkayPhysicist 5y agoAs someone who's written a handful of projects that have caught moderate use, I write code because it's fun, and I open source it under some GPL-family license because I believe that should be the default state of all software. The marginal cost of software is basically zero, software that does exactly what you want is extremely valuable. So I'd need to be paid if someone had a feature request that I had no interest in completing, but that's my day job.
- 3qz 5y agoDo you ever feel taken advantage of? That’s the main reason I would never do it. I would feel like a sucker if somebody used my work to make money without paying me for it.
- capableweb 5y agoHave you ever built a non-open source product using any open source libraries? Do you feel like you take advantage of the authors of those libraries? I've never felt like I've taken advantage of others, and I also don't feel like that when others use my libraries to build products and earn money based on those products. If you're giving away software for free, you can't expect to make any money from it, because it's just that, free.
- OkayPhysicist 5y agoI think you can, however, expect payment in kind, i.e developer time. If someone is marketing an improved version of my code, I think they do have an obligation to provide their source as well. Hence the (A)GPL.
- capableweb 5y agoI guess if "Pay in developer time" is part of the license, you could expect that. Personally, I always use MIT and hence I expect nothing, even for people who use my software to earn themselves money :)
- OkayPhysicist 5y agoYeah, and that's why I can't imagine using those licenses. It's an open invitation for free riders into a system built on mutual aid. It costs you nothing to open source code, so it's the very least you can do as a user of open source code.
- capableweb 5y agoI definitely understand your point of view. It's hard for me to justify restricting my open source work like that though, as I associate "freedom" with "do literally whatever you want, I don't care". I've myself have built businesses on open source code, and wouldn't want to stop others from doing the same either, even if they don't contribute back code.
- OkayPhysicist 5y agoNot with the (A)GPL. I figure even if someone finds someway to monetize something I've made, they're paying it back in kind by providing their work to the public (or at least their customers) as well.
- FrenchAmerican 5y agoYou may be interested un what game theory indicates about this. I'm not a specialist of it, just a book I read years ago. Basically: you wrote some code and didn't know how to make money of it, otherwise you would have. If someone reuses your code (according to the license of your choice), there is a chance that you get something out of it. It may be recognition (something to add to your resume) or maybe a job offer or be paid for specific development as a contractor or just to help that firm's dev team make the most of your code. So releasing your code publicly is an appeal for cooperation. Without doing it, well, nobody makes money out of your code but you don't either. Classic example: A and B are two persons with no connection. You tell B you will get $1 if he/she accepts that A get $10. Otherwise both get nothing. Most people prefer having nothing than having the extra $1. If don't know how to monetize the code you wrote, well... game theory pleads in favor of being in cooperation mode. You may get only a small fraction at first of the profits but by cooperating, you're in the game. That is then up to you to make the relation evolve so that you get your fair share at some point. The other answers display the variety of what people get out releasing their code. It varies a lot from a person to another. The difficult part is to stay in an healthy relationship, e.g. where all parties are happy. If you can't stop complaining about being treated unfairly, that won't work. But the firm using your code should know as well its own interest in the relationship, so they should want you happy.
- 3qz 5y agoThis is only true if you leave out things like self respect
- b20000 5y agoit is not because you were not able to monetize it that you were clueless. the ability to monetize might come from access to capital or social network. often to monetize you need to have money. working a job or doing contracting is not going to scale. you can only sell a limited number of hours. and what you can charge is capped by randomly decided on numbers made up by the CFOs or HR departments and by the crab mentality and aversion to organizing.
- iSloth 5y agoInteresting take that you believe all software should be open source, any particular reason where this comes from? I feel like in an ideal world developers are due a fair share of the revenue/profits that their software generates, even if they enjoyed the original works and profit wasn't their intention - However with open source I often see a large organisations making huge profits, with close to zero going back to the authors/maintainers.
- OkayPhysicist 5y agoIf somebody starts monetizing their (A)GPL'd fork of my code, they're now the maintainers of what will likely become the more widely used fork. I add functionality I want. If someone else wants functionality I'm not interested in, they can either do it themselves, or pay me.
- nprateem 5y ago> I open source it under some GPL-family license because I believe that should be the default state of all software Thanks. What aspect is it of GPL'd code you like? Is it the freedom to use/modify it, the fact the source is available, ideological reasons (and if so what?), or something else?
- OkayPhysicist 5y agoThe GPL is just formalizes good-faith engagement. As I mentioned before, the default state of software should be that people have the right to modify any software they interact with. The GPL (and moreso, the AGPL) makes this a formal requirement of using my source code.
- b20000 5y agoit wouldn’t be so cute if you spend all your savings developing a piece of software, you open source it hoping to make money of it somehow, and then someone with more money or better connections takes your work and profits from it without ever having to pay you.
- capableweb 5y agoI write code for a living and for my own projects, and I open source the code I write because it costs me nothing extra to do so, and I learned a lot from open source when I started programming so I want to give that back to others too. Some of my libraries gets used by others, most do not. For the ones that do, I get some bugs reported and if it impacts my own projects, I try to work in fixes. For the ones that don't impact me, I reply to them that a PR is welcome, otherwise it's unlikely it'll get fixed. For the PRs I receive, I mainly look at the code quality and understanding if I can maintain that feature in the future. If it's too big feature, I ask them to fork instead, otherwise I try to merge it. In the end, the toll for me is nothing of concern, so why wouldn't I open source it? Money has nothing to do with it.
- sarupbanskota 5y agoLove your spirit. Most key pieces of https://codecrafters.io https://codecrafters.io are OSS. Users who want to learn a new language, but don't see it listed contribute language support before they attempt the course. e.g Our Build your own Docker course got Rust support from a community contribution, https://github.com/codecrafters-io/languages/pull/93 https://github.com/codecrafters-io/languages/pull/93 It's among our most popular combination till-date! Still blows my mind.
- zipperhead 5y agoI am the same, but I'm not very good about telling people I would consider it if given a PR. Maybe I should publish something like you've said here as an upfront policy.
- kgodey 5y agoI think intellectual property doesn't make any sense as a concept and software should be open source by default. I also think anyone who owns a computer has the right to modify the software that runs on it. My last two jobs have been maintaining open source software at nonprofits[1], which is great. Regardless, I would open source anything I write that I think would be useful for other people. [1] My current project is https://github.com/centerofci/mathesar https://github.com/centerofci/mathesar
- b20000 5y agodo you own the music you buy? no. can you modify it and sell it again? no. why? because people spent a few million $ making that record. you paid $20 for a copy. that is why.
- livinglist 5y agoI open source my personal projects for helping my job hunting, since I didn’t graduate from a top college… here is a hacker news reader I been working on (currrent version is kinda janky in comments screen but a fix is on the way): https://github.com/Livinglist/Hacki https://github.com/Livinglist/Hacki
- pydry 5y agoI started after doing 3x 6 hour homework assignments in a row that got ignored and thinking that was such a waste of my time. At the same time I tried to see it from the companys perspective that they did want to see some sort of evidence that I could code. Hence I wanted a portfolio online that belonged to me that proved I could code that I could throw in the face of any more companies that tried to gatekeep first stage interviews with a homework assignment. I continued coz it was fun seeing the stars rack up and coz it did seem to give me a mild professional boost.
- noud 5y agoI actually do it to relax... Sometimes life and work can be boring, and I need some intellectual challenges to "relax" after a boring day of hard work. I work on several small open-source projects where I focus on challenging things I want to learn.
- tra3 5y agoI find building things is really rewarding. It's who I am, and that's what I'm good at. I write software at work and I write software after work. The rewarding thing about building anything is having people find it useful and use it. I have no intention of monetizing the stuff that I build for myself, I'd rather have someone enjoy it.
- majora2007 5y agoThis is how I am as well. I just enjoy it. I personally make it a point to not monetize coding outside of work hours as I feel it would spoil my main hobby.
- porcoda 5y agoI maintain a few packages, some that have been open source for about 20 years. Reason: I wrote them as part of other larger projects and they seemed useful as standalone things, so I peeled them out and open sourced them. Motivation: people seem to find them useful, and they’re neat little projects. They’re fun to tinker with. I don’t care about how many users/stars/whatever that they get: I don’t use my open source work as resume content or anything. Pay: I don’t want pay. Not being paid allows me to ignore the project when I don’t feel like dealing with it without feeling obliged to work on it. Besides, I get paid enough for the day job. Extra money is always nice, but the added stress/obligation it would entail outweighs the benefit of the extra cash.
- knadh 5y agoWriting software is a hobby I enjoy unconditionally. Seeing people find utility in the software I write makes me happy. Seeing people derive happiness from it, for free, makes me happier. Been doing it for about two decades now. Thankfully, I don’t need to make a living from my hobby FOSS projects. If I had to, maybe it wouldn’t feel like a hobby.
- Beltalowda 5y agoI like writing software for my own use. Why not put it on the internet when it's reasonably finished? That's it really. No grand visions; just doin' my thing. And if it helps out other people: all the better.
- rg111 5y agoI personally write and maintain OSS primarily because it is the greatest form of track-record. Open Source code speaks volume about your code quality, design decisions, regularity, resourcefulness, and such qualities. I have gotten interviews in the past due to my OSS code. I also write OSS to learn and practice new language, frameworks, etc. These are my primary reasons. Secondarily, I solve problems I face with tiny programs. I put them up online.
- Ologn 5y agoA lot of it is stone soup - someone wrote something in FLOSS, I notice a defect, or want to extend it or the like - and I send the patch upstream. Sometimes I write code for myself, think someone might want it, so I release it. In 2014 wanted a very simple model Android project that could handle OpenGLES 1 code in C, so I wrote it. Then I figured others might need it, so I put it on Github. Two people branched it, one did their own commit on it for their own purposes, so I figured they found it useful.
- benibela 5y agoI used to make my projects open-source when I did not want to deal with them anymore. The plan was I am not going to change anything anymore, but the project is too useful to delete it, so someone else can make future updates. But I do not do that anymore. I did not find someone else, instead more people send me issues and I have to spend 100x more time on the project than before I abandoned it. However, now I work at an university and there you are expected to make everything open-source
- majora2007 5y agoI build and maintain one larger open source application currently, although am pretty adamant on releasing my side projects under an open source license. For me, I spend copious time working on it or engaging with my users purely to improve the app, which adds value in my life. (It's a self hosted reading server like Plex). Even though I develop at work as well, coding on something for myself and something that I have complete control over, is extremely fun and I end up with tough problems that I would have never faced in my current job function (like optimizing for memory and learning how that works in a CRUD-like application). My project is: https://github.com/Kareadita/Kavita https://github.com/Kareadita/Kavita
- zzo38computer 5y agoI do because I want to modify the software to be useful for my use, to write software that I do not find an existing suitable one, and to make available to others who also might find this software useful (and that others can modify it if they need to do so, too). There are other benefits of FOSS, too. I will sometimes accept feature requests and bug reports, although there aren't many, since not many people use my software.
- denhaus 5y agoWell, there’s sort of two paradigms here for me personally. For one, academic and research interests. For these, I get some kickback because people who use the software cite it in their publications. So I spend some considerable time upkeeping and bug fixing these projects. I also write FOSS for my own purposes if I need something and existing solutions don’t really do it. Or they might do it but learning how to use them to do something simple is more work and upkeep than just writing it myself. Generally, I don’t really care if people use these projects or not but sill respond to bugs/features/etc if they will actually improve the project or if they don’t require much work from me.
- masukomi 5y agoBecause I'm writing it anyway for my own needs, and it doesn't hurt me to put it up on GitHub (or similar) for others to benefit from too.
- mikewarot 5y agoI wrote a Forth for OS/2 long long ago out of spite. I was told that you absolutely could not write assembler programs for OS/2. So, direct threaded native code forth is what I did. I open sourced it because that was the social norm back then, Brian Matthewson came along and wrote a great Manual for it, and all was well. I got some nice feedback, and it felt good to help out others. Why wouldn't you share something cool? I know that there are some people who have the wrong attitude, in extreme, about opens source... and I'm glad I haven't encountered them. I've set limits in the past. Forth/2 never dealt with GUI stuff. I didn't want to go there, so it didn't. I have no problem making arbitrary decisions like that in the future. However... if someone else wants to write that code, why not? Forks are easy these days in the world of Git.
- newusertoday 5y agoIf i need something for my line of business that does not directly contributes to it than i develop it and release it in opensource with the hope that someone else would also use it and hopefully my maintenance burden will be shared. No i would not be motivated with money however if something else is available in opensource that meets my needs i will be happy to abandon my project and contribute to that project.