Choosing between open source WebRTC code and a commercial SDK for your real time communications project can be difficult. Both are valid options depending on your needs and your organization's comfort level with WebRTC. While it is impossible for one blog to tell you definitively which option is best for you, this post will examine 5 key areas you need to consider in making your software purchasing decision.
The first consideration for many organizations is cost. With open source code being essentially free, it can be an enticing option for organizations looking to minimize costs.
However, while you do not have to pay anything to access the open source code it is important to note that it is not zero-cost. As with any software development project, you will still need in-house experts to develop the code into something usable or you will need to hire a software development company to do it for you. WebRTC is hard and developing something meaningful from the open source code can prove challenging. In many cases the upfront development costs of working with open source software can be greater than using an intelligent, easy-to-use commercial SDK. As the old adage says: Time is Money.
With a commercial product you will often have to pay for licensing the software as well as any development costs associated with integrating the SDK with your application. However, you gain the benefits of faster and often more knowledgeable support, greater security, more out-of-the-box functionality, and usually an overall lower technical skill requirement for your team.
Ease of Use
Ease of use goes hand-in-hand with cost. When a product is not easy to use, more time will be spent on development which will push out the time to market and increase development budgets.
Open source software caters to a very knowledgeable developer community. This is not a problem for companies with WebRTC experts in house, however, the WebRTC skill set is not easy to find in today’s marketplace. Without prior experience with WebRTC, developers may find it difficult to use.
For commercial SDKs, usability is a key feature. An SDKs sole purpose is to provide developers with more functionality with less work and fewer headaches. Most commercial SDKs will abstract some of the difficulty from the development project with a well thought out API and copious documentation so that developers can spend their time on focusing on creating great user experiences instead of combing through source code in a quest to understand it.
Support for open source software is generally limited to online user communities in the form of forums and blogs. While some communities are vibrant and willing to help, there is no guarantee that you will receive support in a timely manner, if at all. Further, if an online community is active now there is no way to know if that community will be equally as helpful in the future.
This is perhaps one of the greatest advantages of using commercial software. Commercial products are often backed by quality documentation for immediate reference and a customer support team who are intimately familiar with the product. This means that if your team runs into problems, there is always help available to you.
Commercial SDKs tend to be very stable because they have well-thought out product roadmaps that dictate their development priorities. This allows them to make fixes and upgrades along the way and to continually seek to improve their product in a methodical and well thought out manner. When maintenance is undertaken, all aspects of the code are taken into account.
Open source code on the other hand tends to evolve organically over time. With many individuals able to touch the code and no one having full ownership, development is often not undertaken with the whole code base in mind. For instance, your team may decide to build your application using one fork of the repo but the community may embrace and develop functionality in other forks instead. This often leads to more instability and may result in breaking changes that unexpectedly interrupt your business.
Maintenance and Innovation
Another key benefit of using a commercial SDK is that releases tend to happen at a greater frequency. These releases not only add features and improve functionality, they also anticipate and mitigate changes that the browser vendors (ex. Chrome, Firefox, Safari) often make that would otherwise derail your app and affect your customers.
When looking at the release history for various media server products on the market today in comparison to Frozen Mountain’s LiveSwitch, Frozen Mountain releases updates and improvements to their code twice as often.
Regular updates and development cycles not only help anticipate and rectify breaking changes from the browser vendors, it also helps to push the innovation of the software itself. If you are considering any software product, be sure to look into the product's release history to ensure that the software you are choosing has regular and robust releases.
There is no denying that open source code and open source projects are a great asset to the development community. Open source code is a great option for companies that have talented and experienced WebRTC developers in-house, but for organizations that are looking for easy to use, well-supported, and continuously innovating solutions, commercial SDKs like those offered by us at Frozen Mountain are almost always the best bet.
Looking for a commercial SDK to add voice, video or data to your application? We've got you covered. Check out LiveSwitch -- the massively flexible, highly scalable video conferencing solution.