- I couldn't get commit access
- The code was a mess
- The code had too much overhead
- I didn't know there was code for that
- I don't want to mess up someone else's code
- I don't want other people messing up my work
- I want people to know I am this module owner
- The project leader(s) don't want me to code in core
- I don't want to add another module as a dependency
- This may not be maintained long term
- This works for me, am happy to share, but I can't commit to maintaining long term
- It's important that most/all the code comes from me
- My needs are very specific
- My code is not clean enough
- This is a learning project
- I think this library or service is a better alternative
- This is the community edition extension
- I offer support on this extension so I need to keep control
Tiki has the all-in-one model, while many other FLOSS Web Applications have thousands and thousands of plugins/extensions. Most of the time, these plugins/extensions are duplicating others. Tiki is perhaps the FLOSS Web Application with the least feature duplication.
This is FLOSS, and such people should collaborate on the source code instead of
- Re-inventing the wheel
- Creating competing extensions
Yet, we end up with so much duplication, it's mind boggling.
For example, the most popular FLOSS Web application has
- 21k plugins listed here but over 30k here (why the discrepancy?)
- Over 1000 plugins tagged with the term "twitter"
Let's speculate on the motivations of the contributors.
- I sent a patch, nobody answered, so I had to fork the project.
- Was faster for me to start from scratch than figure out what was there.
- I just needed a simple thing.
- Perhaps I'll get some contracts.
- Plugins are made for contributions like mine.
- I know that other module does some of the stuff I need, but it's not exactly what I need and overly complex. I don't want people to install that other module just to make mine work. So I'll just add the bit of code I need.
- This is for a school project. After this semester, I will move on to something else.
- So I'll share what works for me, but I am not prepared to take the lead of such a module (taking on feature requests, etc.)
- I am quite happy to apply patches for bug fixes though.
- This is for school/internship thing and they need to evaluate my code performance.
- Sharing back to the main code base involves making the code generic enough. I just don't have the time to do that at the moment.
- I want to write this module as a way to learn how to write modules, so I don't want it to be officially in core.
- There is also a pro version (not FLOSS) available from my site.
- I solve a specific problem with this extension. I offer support for it (paid or otherwise) and I can't take the chance that someone else will introduce regressions or take the extension in a direction which will make it difficult for me to support my users.