In short, yes, that is a very common thing to have happen. What matters most, however, is actually writing the code to add whatever idea is involved. “Open source” means the source code is not just available, but able to be modified by anyone. If it’s your idea and you have the skill, make your idea a reality and give it to the project leaders. It could become a permanent feature available to the whole world this time next week.
In practice, each project has its own rules you will have to abide by, from programming style to how you submit your new feature, to how long before it becomes an official part of the program, and so on and so forth. That said, my name is on a few features on some software you might or might not have used in the past. I’m not affiliated with any of those people or groups, but my work was accepted.
An idea without code is just a feature suggestion or a bug report. Someone else will have to write the code for it, and that will be subject to their own time/schedule. In that case, open source isn’t really much different from closed source applications. Open source is just usually more transparent – you can see your idea get developed from the sidelines, or a good explanation as to why it was rejected.
Typically not the community as a whole is approving changes, but whoever is in charge of the project/application will approve changes will have a group of trusted individuals who do the approving.
An individual will submit a pull request which basically consists of modified code and a message describing what was changed. One of the aforementioned people with authority will read the message, decide if it’s something that is beneficial, review the changed code to make sure that it’s good and does what it says it does, and then approve it
Yea but there are a few nuances.
Usually one person starts the project. As the creator they usually are the ones writing most of the code, few open source projects actually become big enough where there’s a “community” regularly contributing.
However the original creator of the program generally has final say over whether changes make it into the code base or not, this is because they control the code base for it. Of course someone could make their own copy and do what they want with it, but both users and “the community” usually don’t move from the original code base unless leadership is very very poor.
If projects get big enough, they assign trusted people to approve changes, if the project gets even bigger they might lay out proper rules and a governing organization for the project, although usually the original creator is still allowed de facto final say (we jokingly call this role “Benevolent Dictator for Life,” BDFL).
In other words the community doesn’t have a say really, they are at the mercy of the creator, and usually this doesn’t really cause too many problems. “The community” does have a final ultimate veto though, to take the code and start working on their own version without the creator. In practice this rarely happens though.
Anyone can do anything.
That’s the whole point.
I throw my code out there, I don’t really care what happens to it. Maybe someone picks it up, changes it, creates a nice project, website, takes patches from others like myself, co-ordinates it, turns it into a whole new thing.
Or maybe I do that, and control what happens in my own project. But I still can’t “stop” people taking my code and going elsewhere.
It’s a community in the larger sense, with a shared resource that we’re all happy to give away to others. My code has ended up on multiple platforms, in multiple spin-offs, it was started from code that someone else wrote but who didn’t have any interest in a thing I wanted to do with it. I did it just for fun, and also to have an end result that I wanted. Others took my code and did the same for their end result that I didn’t care about. We all sent things back and forth to each other, I took bits of code that those latter people had written and brought it back into my code and changed it for my purposes.
It’s not structured, or set, or enforced, or even conventional. It’s just people doing what they want to do. Some spin-offs are “better” or “more famous” than the original projects that spawned them, because more people found them a better product, or more conducive to accepting new code, or just friendlier people to deal with, or they had a greater public profile. Things like LibreOffice, which started from OpenOffice, which was originally StarOffice.
It’s not an organisation, it’s not any one organisation, it’s not an individual, it’s not any one individual, it’s not a set of rules, it not any one set of rules. It’s just people doing what they want, with code that says they can do what they want with it (to a certain extent).
Hell, I once wrote a patch for an open-source game purely because it was driving me mad that there wasn’t a particular simple feature in it. I just put it online once it was done… people were free to take it, ignore it, put it into the game, I didn’t really care. But the only intention for me, ever, was to fix a personal annoyance. I have no idea if anyone ever downloaded that patch.
One much larger project of mine ended up being ported to the Nintendo DS, PS Vita, etc. by other keen programmers. None of them wanted to do all the legwork I’d done – which I did to port it to an obscure Korean console – but once I’d done it, they all took my code and ported to platforms that they wanted to play it on. So I know they used it, liked it, several of them contacted me (but they didn’t need to), and probably my code has spread further than that now too.
It’s not a “thing” with set rules. It’s just people giving stuff away that they made themselves. Sometimes people find those things useful, and sometimes a community forms around them, and something they explode beyond all reasonable predictions to become extremely popular with people dedicated vast portions of their life to them.
Your kindergarten teacher thinks it’s a good idea to raise a hamster. Instead of every student getting a hamster, the supplies needed, and caring for it, the teacher decides it’s better that the whole class should share and care for one hamster. Everyone in the class helps raise it and pitches in. The kids get as much benefit from the one hamster than they would from having their own. And if jimmy is sick for a week he doesn’t need the heartbreak of hammy being dead when he gets back.
Now just imaging our one hamster having a distinct ability, like being able to sneak into a candy store and he only returns with our favourite candy. If I told you you’d be able to borrow him anytime for free, would you decline and vow to raise your own hamster that could do exactly that? Or would you agree to borrow him, and while he was with you, feed and play with him?
It depends on the project. Many are controlled by a single person or company – they may be happy for other people to send them code or ideas, but they ultimately decide what goes in. Larger projects often have a complicated bureaucracy to steer their development – for example, there might be a board with representatives from certain companies and nonprofits as well as representatives elected by the community.
However, if other people don’t like how the project is being managed, they can copy the code (provided they abide by the licence) and set up a new version of the project. It’s not uncommon for a fork of a project to eclipse the original.
It’s more than one thing. Take MediaWiki for example, which is the software that makes Wikipedia work.
Yes, there is a community that maintains and updates that, and to get a new idea in, there is a process for submitting it, getting it approved, and into production on the servers that actually run Wikipedia.
But likewise, if you want, you can just grab all the code for yourself, make whatever changes you want, and run your own site off that, as long as you follow all the requirements of the license, like attribution and so forth.
You can even take that software and build a business around it, which is what Fandom does.
Latest Answers