Free software and open source software (collectively referred to as FOSS) are two of the most popular concepts in the programming community. The free software movement has been around for some time now and open source has become a popular methodology in today’s world. Calling free software a movement and OSS a concept was deliberate; we will get to the motive behind the wordplay eventually while establishing a concrete understanding of the two words.
To start decoding the ambiguity surrounding the two terms, we have to go back to how open source was derived from free software. Free software does not stand for software or codes that are free of cost, although most softwares produced under the free software license are free. This ambiguity was the primary reason for the establishment of OSS. But the OSS became a concept quite different from its parent by developing its own sets of values, philosophy and methodology.
To make it easier lets go for a head on comparison. Free software movement was aimed at advocating the availability of free source codes and removal of copyrights. Also, whatever codes are derived from a free software license should also be released as free software. This posed a major problem in the commercialization of products. OSS which was initially introduced to remove the confusion caused by the ”free” term took up the cause of removing the restrictions placed on commercialization. Codes under open source license can be used and modified, like free software, but the modified by-products do not have to be under the open source license. This helped in the commercialization of products produced using open source software. But since that was against what free software stood for, it separated the two into two different concepts. Thus free software was a movement that emphasized on the moral aspect of the availability of free codes and promoted intellectual freedom. But OSS was a practical solution to allow the business use of free codes. So, in a way, open source codes can be used for free software but the reverse causes a conflict.
Except for these differences, both concepts are similar. Both allows you the freedom to view the source codes to read, copy and edit the codes and modify them to produce a different end products. Both advocates the availability of free source codes for all. But open source removes the restriction placed on the source code by a free software license. Commercialization is the motive behind it all.
The question as to what to use and when depends entirely upon the creator. But, as we pointed out, open source softwares allow you to commercialize your products.
So open or free, both are a developer’s paradise giving them full freedom to view the source code and add/customize as desired.