For many developers facing small budgets, open-source tools and software are a blessing. These no-cost resources can make the difference between a successful development effort and being unable to even get started. But there is a reason why commercial tools and code even have a market: time.
I got started on this line of thought by reading an article in EETimes on time to market concerns in embedded design, written by John Carbone of Express Logic. In that article, John pointed out the benefits of using a commercial RTOS, like his company's ThreadX, in terms of getting to product release faster. And the earlier a product is to market, conventional thinking goes, the larger its lifetime sales revenue will be. So, a development team's investment in commercial software will have a return that more than justifies its cost.
In my opinion, if (open source) software is not well documented, it is just not used. Nobody would like to study thousands of lines of code. Time is money! But thank God, most open source libraries have a good documentation.
Open source doesn't necessarily means less quality !
Here I'm not talking about production tools like PCB routers, I'm talking about RTOSes, application software, drivers.
Open source in that case means you may need more time to "learn" about the code as documentation is often not as good as commercial opaque libraries.
My vision is that learning is never a waste of time. For the first time use you may need some more time to understand the code. You will save that time in next project if you use the same code or achitecture.
There are companies that provide bad quality libraries without source code, or the product may not match all your needs.
You will need time to evaluate this quality and adaptability to your needs before buying, at the end of evaluation time, this time is really lost if you don't buy it for some reasons and choose another provider.
With open source this time is not really lost because it's part of the learning phase and it will help you to correct/improve/adapt the provided code to your specific needs.
There are also bugs in commercial software. What about if your company is too small to force the provider to correct the bugs in time ? With open source code, you just correct it yourself and/or ask the community.
I agree, up front cost is only part of your decision space. Opensource is a great way to get started, but you might find yourself in an endless update cycle with unstable capabilities.
Commercial tools might have a higher initial cost, but they usually come with support, tutorials, manuals, and all of the little things that make a tool indespensible as part of your working environment.
If your tool needs are consistant, then buying quality is usually the least expensive way to go.
Just my opinion.
When I was consulting I took a plunged and "invested" in $5,000 PCB tools. As someone starting out, it was a big financial hit and I could have gone with something low cost for 1/3 or less that price.
However, that tool easily paid for itself in terms of increased productivity and likely less mistakes (which upset end customers even if they do not have to pay for them).
I recently contracted someone layout work but had to use a clients preferred consultant. Unfortunately, this consultant had tools that were older and less capable than what I would expect. It took him twice as long to do the job with less suitable results and will cost the customer more in terms of long term support.
It is the same issue with open-source. It's cheaper up front, but what about in the long run?
For most successful products, development costs are just a fraction of the lifetime costs. Lost opportunity cost from being late to market can easily swamp development costs as can ongoing support costs.
Engineers (and Engineering managers) need to think like business people and cost out not only the development but the product costs and work with sales and marketing to understand the negative value of schedule impacts.
Join our online Radio Show on Friday 11th July starting at 2:00pm Eastern, when EETimes editor of all things fun and interesting, Max Maxfield, and embedded systems expert, Jack Ganssle, will debate as to just what is, and is not, and embedded system.