Reading some of the FOSS4G conference wrap-up articles like this and this, and the differences between open source and commercial software, I feel like discussing a bit where I feel the similarity and differences are.
Just so nobody is confused about my position, I have been an avid user of open source software, contributing back when I can and have been working for Geosparc, a so-called commercial open-source company for more than two years now. I mostly use open source software (Ubuntu, LibreOffice), but I still use some for-pay software as well (like IntelliJ IDEA – I should mention Ultimate Edition as the base version is now open source)).
This is not an easy issue. There are many different business models and the distinction between open-source and commercial simply does not exist. There are many open source projects which are run by commercial companies and there are also many closed source products where the source is available for inspection by customers.
I also feel there is a big difference between the type of software. When I choose LibreOffice over a commercial package it is mainly because it is free. I honestly don’t care about it being open source. If there is a bug I will try to work around it or live with it. The chances of looking me looking at the code to fix it are very small. The software meets my needs so why would I pay for something else. To a large extent this also counts for my choice of operating system. I Use Ubuntu because I like it and it runs the software I need impeccably. Yes I also like the fact that it is open source, but that would not help it whatever I need to do an a computer would be harder on it.
On the other hand, when looking for libraries or frameworks I will first look at open source. This is partly because of the free aspect. Let’s face it, documentation is always a problem so just being able to look at the source can make understanding the framework a lot easier. It is by no means substitute for documentation, but it just helps. And yes, occasionally this allows me to fix a bug or add a feature or introduce a hack to allow me to do something which would be impossible otherwise. This is not an exclusive treat of open source, this also works for closed source products where the source is available to customers.
It is a choice between saving time or saving money.
This sounds to me like typical kind of claim from a closed source vendor trying to protect their business model. Both in business and open source there are good projects/products and bad ones.
For a library or framework, the best way to figure out if it suits you is to write a simple test project. In open source that is exactly what you do. For any problems you ask the community. Depending on the quality of the product and feedback you get, you can determine whether to continue or not with that product. The same is true in closed source. This time though you first need to be allowed (possibly for pay) to do your test. Whether or not you can ask questions depends on your vendor. You could forgo on the test and just trust your vendors marketing department, thus saving time. However, not doing the test could cost you a lot more if there is a mismatch between expectations and what is delivered.
It is just software.
Though this is partly true, open source usually has a community aspect as well. People like being part of a community. As such using open source libraries and frameworks may also be beneficial for the morale of the developers. In a world where the war for talent is ongoing this may help to attract new or keep existing developers. For developers having contributed to open source could be an advantage to put on their CV. For employers, it can be very useful to look at contributions to be able to judge quality of code, ability to express and discuss etc.
In the end, it is always the quality of the product which is most important. I admit there are probably more crap open source projects to closed source products. However, this is partly because many open source projects are started but never see their first release and partly because open source projects don’t die, they die just go in some kind of coma. Commercial products on the other hand only appear once the initial version is ready and when unsuccessful, the product site and material from the vendor disappears from the internet.
When considering a library or framework there a couple of criteria which are important:
- Does it match my need?
- Can I get answers to my questions?
- Are issues (bugs, feature requests) fixed? In what timeframe?
If the needs are not matched and you can’t extend the project to make it match then the other questions become irrelevant. Documentation is often claimed to be a weak spot of many open source projects. In my experience most successful projects have pretty decent documentation and some closed source projects have bad documentation. Open source projects often have a community which will answer most questions. For guaranteed response and tailored help, you will need an SLA in both cases. The price of an SLA contract is typically quite similar in both worlds. Open source projects often have a more open development process but including your requests often only works when you either provide the fix yourself or pay to have it done. In both cases though you are at least allowed/able to add your requirements. Cost depends a lot on the license of both the library or framework and where it is used. When the license permits it, you can use the library or framework for free. When not, the vendors often try to be cheaper than the closed source competition.
More than financial advantages, open source and specifically the open source model for developing software has benefits for libraries you want to include in your products. The ability to alter, fix, patch the product can be a major advantage. You are not delayed waiting for the release which includes the fix, you are not forced to inherit all changes when a new release appears. While this freedom can give you extra overhead (merging your changes with new releases) just being able to do this can be a big commercial advantage at times.