I think that there are many reasons for realeasing your framework/library as Open Source. Some of them are purely idealistic/egocentric:
- It is good to give back something to the community (most of people uses Open Source!).
- It is cool to share something that you created !!! Specially when people likes the work that you have done.
Other are related to development itself:
- The code becomes better, since it is tested and revised by more people. It should be more solid and have a better design.
- Since releases are not commercial deadline driven, the product is released when it is ready.
- If your framework is widely used, you can easily find programmers who already know it.
But there are also some commercial reasons:
- You can improve the company image (it is like free advertising).
- You can sell services over your framework (an area where you have expertise!).
- You can get new customers (due to the interest in using the framework).
- Customers don't want get locked with a closed source solution.
- Nobody is going to pay for your framework anyway!!! Customers don't want pay for frameworks, there is a lot of Open Source out there.
Despite the commercial reasons, many companies are reluctant to open source their code.
At Oxen we support Open Source by sharing our frameworks and libraries (check the Open Source Projects links on this blog) as Apache 2.0 (we don't mind if somebody makes money with them, go ahead). We started sharing small libraries, but at some point, we developed a full server side development framework, Nibiru. We doubt about releasing it and we asked many people for an opinion. Some were in favor, but many colleagues who owned a company recommended us not releasing it.
They talked about the "competitive advantage" of having the framework closed. I didn't get convinced with that argument (which could be such competitive advantage? developing a solution in less time?) and released it. In fact, we also released NibiruMobile.
The only weak point in my argumentation was that it was pure theory. But now, we have a concrete case. A company from China (Jinan Roof Technology) stared using it and we're working together in order to run Nibiru on Karaf container using OSGi Blueprint (the work is almost finished at the moment of writing this post).
Our company doesn't have the commercial structure required for selling projects in such distant country. Until this project, we were limited to near markets, like USA, Mexico, Brazil and, however, Argentina.
So, I just want to say: thanks, Open Source !!!