When we build an application for a client, we need to select various technology components with which to build it – for example:
- An operating system for development and hosting
- A database server
- A web server
- A web development language and framework.
In all of these cases, the respective contenders are well established and supported, and the choice often comes down to a question of taste, bearing in mind the fundamental tradeoff between free and commercial software: Free gives you more options for creating your own version of the software, but this may cost you more in development time. Commercial hopefully means that you don’t have to create your own version, but you will pay in license fees.
For the standard components listed above, in most cases we go with the free versions and have smiles all around, because we don’t need to do any significant customization.
However, there are cases where the choice between free and commercial application components is not as clear-cut, when you evaluate the true cost of using each. Sometimes the “free” component can be more expensive, because a commercial alternative is available that is a better fit to the application’s requirements.
We have seen two examples of this on recent projects:
As part of the MetaMap app, we needed to build a sophisticated web-based graphical editor for “boxes and arrows” diagrams. There were several possible options for this – building the editor from scratch; basing it on a JavaScript visualization tool such as D3.js; or looking for a complete diagramming toolkit.
In this case the third option was the clear winner, in the form of GoJS, a commercial diagramming component. For a few thousand of the client’s dollars we got an excellent library, with great documentation and support, from expert developers who have been focused on that problem for years. That same money would not have gone very far had we tried to implement the editor from scratch. And if we had any concerns about dependencies on these commercial providers, there is an option to purchase the source code for their library, and modify it as we see fit.
When building a new user-management system for Cornell’s CHESS facility, we were tasked with providing a comprehensive reporting system. The client expressed a preference for open-source software, so we evaluated two popular free business-intelligence platforms, Jasper and Pentaho. We were surprised to learn that the best option for using these “free” tools was to purchase consulting and support contracts from value-added resellers, which would run into five-figure annual costs.
In this case we ended up recommending Tableau, a commercial software package that provides business-intelligence functionality through a user-friendly desktop application. The licensing cost was significantly lower, and we did not have to invest resources in configuring a tool that was probably more than the client needed.
So even though we like working with free software, and tend to gravitate toward it, there are cases where it makes a lot of sense to consider commercial alternatives, with the bottom line in mind.