When evaluating your tech stack, the question of whether we should use commercial or open source solution always raises the extreme argument. In this post, we’ll take a look at some typical types of open source and the reason why we are not going to its side.

The key difference between commercial and open source product is the way it’s managed, or developed and maintained.

A commercial product is created and developed by a company. This company has a team dedicated to managing the product and they make money from it. Keeping the source code private helps protect any IPs or competitive advantages in the code, thus it’s never made available publicly. We call it closed source.

An open source product is co-managed by a community of volunteers from all around the world. The term open source refers to the source code which is freely available for everyone to view, and it depends on the license that users can modify or redistribute.

For example, Wordpress is the world’s most popular blogging platform which empowers over 30% of all sites across the web. Supporting Wordpress is a large community of developers, designers, scientists, bloggers collaborating on and contributing to this project.

Let’s take a closer look at the open source

Open source communities

Nowadays, the boundaries between Open Source and Closed Source are becoming increasingly blurred.

It may seem to be an odd trend but all the tech giants started giving away some of their code in hope to outrun the others with better tech. TensorFlow, Google’s library for machine learning tools, the number one in its category, was released to the public in November 2015. Facebook released its powerful image recognition software. Apple made public the necessary code for building software in its ecosystem like Swift language. On the other hand, within just a few years, Microsoft went from a proprietary software market leader to its own BSD Unix operating system, Ubuntu support and now becoming an open source company in a big way.

It’s undoubtedly a good thing for the communities but also helps those companies to compete with each other. The free code draws goodwill from the talents. These companies build a community around the project and own the full copyrights of the software, and of course, they have a strong team dedicated to managing the project. Everything is great with this one, except some people don’t like the fact that there is still a for-profit company from the behind controlling the entire community and technology.

The typical open source projects are managed by a developers community and owned by multiple stakeholders. As these projects have gone through contributions of many talented creators from various backgrounds and experiences, most of them are very stable. It’s already been validated, tested by many developers, testers, and users before rolling out officially. These projects often get support from a greater open source foundation. Organizations such as the Linux Foundation, the Apache Foundation, the Mozilla Foundation, or the Debian community have implemented many of these best practices for their communities. These supports include leveraging an existing community to save time and cost and often come with numerous funding that is enough to have a dedicated team to continue developing and maintaining the project. In this case, we can expect something very useful with high-quality code.

But often times, it falls into the last category.

There are many open source projects started by an individual developer or a group of developers working on an interesting technology, at a smaller scale and the corporation involvement is limited. The lack of enough funding and a well-defined governance structure have led to some drawbacks:

User-friendliness

This is not all time true but in general, the open source products are not as user-friendly as the commercial ones. Since open source is strongly supported among the software development community but the majority of UX and graphic design community are opposed to voluntary work, the lack of good design makes it harder for open source products to have the same level of polish of the commercial products. The complex packages of open source products can be really annoying for some people, especially non-tech users.

Budget

As most of the open source products are free, your initial set up cost is insignificant. But along the way, you will probably need to spend more money on maintaining and future expansion and customization. While commercial products are licensed and sold with official support offering, open source products come along with peer assistance from the community. If you find out the product is not working the way you expected, you need to sort it out yourself, and this takes time. Another option would be hiring a dedicated team to customize to your needs but this may cost you more. Also, if a project falls into abandonment and you are heavily invested, it could be expensive to switch to something new.

Responsibility

The commercial product makes money itself so it can help the team sustain the development. With great power comes great responsibility, there should be tailored support. There’s a strong belief that software should be paid for and supported so that if something goes wrong, there’s someone to blame for. It’s what keeps Microsoft, IBM, Adobe and many other huge commercial vendors in business.

On the other hand, the open source product is fueled by the voluntary work and donation, which is great but can potentially lead to the abandonment without a really well-organized governance. Sometimes, having many eyes doesn’t always lead to making a better product, especially when the codebase is huge, along with poor documentation. If there’s a major vulnerability that leads to a massive loss for your business, who to take responsibility now?

Community users are very responsive but no one gets paid for helping you fix bugs or assisting you with your questions all the time, so you can not ask for an intense support to meet your expectations. You have to wait. For example, Sequel Pro, a great client for MySQL on Mac, has a feature request for multiple data filters in which was placed there in 2013 and it has been upvoted frequently. But up to now, there’s still no sign of potential implementation.

Sequel Pro feature request

At TablePlus, we believe we need to build something useful that makes people love, we need to invest significantly not just in maintaining it, but in making it steadily better. And we don’t think we would be able to do that with open source. We looked elsewhere in the open source administrative tooling field, it’s not something impressive to us. So closed source is our choice to deliver what we promised, and we believe that in the long term, the quality of our tools will be the real value that keeps us separated from the market.

Focus on users’ requirements

Who doesn’t like free software with a huge community to support, but it’s the tradeoff between usability and flexibility. The root question comes down to the needs and requirements of the organization. Which one has the suitable technology? What is the budget for setting it up and how much time will be spent on it? If open source can accelerate your development, or reduce your cost, it is a good thing.