Pretty much everyone will have used open source software either directly or indirectly. After all, Linux is open source software, and runs on most servers these days. If you’ve ever used the web, it is likely you’ve indirectly used one of these servers. On a personal level, I’ve open sourced some libraries such as finmarketpy for backtesting (ok, I haven’t open sourced all my trading algorithms, that will remain private :-). I’m also planning to open source (part of) of my Python based FX TCA library (details about my TCA library are here and let me know if you are interested in hearing more about it). However, despite the prevalence of open source software, there are still many misconceptions and myths about this type of software. I thought it would be worth discussing debunking these myths, also given the recent purchase of Red Hat (which is built on open source Linux) by IBM in the past few days.
Debunking 1: Open source software is “free”! (someone has to pay for it and getting commercial support isn’t free)
Open source software isn’t “free”. Someone is paying for it at some level. It could be by volunteers giving up their time. Many open source projects are sponsored directly either by commercial organisations or charitable organisations. As a result if you are using open source software, there needs to be a recognition that whilst you are getting the code for “free” you cannot demand commercial levels of support (ie. instant feedback/ability to call etc.) and additional features. I recently saw a tweet by Wes McKinney where he wrote (full link here), where he addresses the point about folks feedback on open source (in this case the Pandas library, which Wes began):
Recently people have been confronting me at conferences with their complaints and grievances about pandas. Not exactly the best encouragement to keep working on OSS projects =/
There will be community support on GitHub for bugs and new features, and on some projects this can be quite active. However, if you want commercial support for an open source software, that will cost you (just as will be for closed source software). For companies using open source software paying for commercial support gives them an extra level of reassurance. If you really want specific changes on open source software, it is also possible to sponsor new features. This is something which Plotly advertises on their website and indeed this is what I’m planning to do for my TCA library.
Debunking Myth 2: Why would anyone open source software when they can sell it? (there are ways to monetise open source)
Some open source projects are run on a part-time basis, by people who are doing something else during their day jobs. They do it for fun and to learn. Many open source projects are part of commercial organisations, who need them to be commercially successful to survive. They see that open sourcing part of their code as a way of marketing and also to get feedback for what they do. Often commercial organisations will offer commercial support packages for open source projects. They also often offer enterprise paid for add-ons with additional features. It is also good marketing to open source some projects for recruiting developers.
Debunking Myth 3: Because it’s open source the code is worse! (it can actually be massively peer reviewed)
Is open source worse? Open source projects can get peer reviewed by a large number of users and this often improves the code (eg. finding bugs or through contributors). I’ve certainly found with my own open source libraries that users have contributed bug fixes, which I’ve found very useful. Also having code on public display means that folks will judge your code! As a result, there’s a strong incentive to make sure it’s done well.
Debunking 4: It’s impossible to monetise open source (some folks have monetised it)
OK, I admit it isn’t necessarily easy to make money from open source. However, there are many ways which I’ve already listed above. Testament to this are the number of large software companies built on open source, like Red Hat which I’ve listed above, as well as MongoDB. GitHub which hosts many open source projects, was bought by Microsoft.
Debunking 5: You have to open source everything (of course not!)
Of course this isn’t the case! Some elements of software you will want to keep private. It is a question of judging what the split is. If something is super valuable of course keep it private. If not, what is the rationale for keeping it private? Also could you have just used an existing open source project in its place?
Open source isn’t the solution for everything. There are some parts of proprietary code, which are too commercially sensitive to open source. However, there are many more generic parts of code, which could benefit from open sourcing to improve it and also to prevent reinventing the wheel. There is always the constant question about the economics of open source. It certainly isn’t easy, but some companies have demonstrated it can be profitable.