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.
Most key pieces of 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
It's among our most popular combination till-date! Still blows my mind.
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.
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.
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.
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.
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.
I add functionality I want. If someone else wants functionality I'm not interested in, they can either do it themselves, or pay me.
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?
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
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.
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.
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
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.
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.
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.
That's it really. No grand visions; just doin' my thing. And if it helps out other people: all the better.
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.
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.
I will sometimes accept feature requests and bug reports, although there aren't many, since not many people use my software.
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
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.
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