Providing credible water resource solutions: Working with Nature's Science

  Company blog

Using open source software in a science based business can benefit clients

Can you imagine not being able to perform certain business tasks because your proprietary software vendor doesn't offer a particular functionality? Do you think it's fair that if you were able to improve upon that software and tried to rewrite parts of it to benefit your business, or redistribute it to improve the availability of data to your clients, you would be breaking the law? At earth-water Concepts inc. we believe in the promotion and use of open source software in our work, because open source software does not bind individuals to the licensing constraints, limitations in use, or the costs that are imposed by proprietary software.

What are source code and open source code?
All software applications are built from source code. These are the numerous lines of instructions that programmers write for computers to interpret so they know what to do and how to do it. Source code can be thought of as the blueprint for a program, and it may be written in any of the various programming languages used today.

The term ‘Open Source’ is defined by Wikipedia as follows:
“Open-source software (OSS) is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a free software license that permits users to study, change, improve and at times also to distribute the software.”

One of the fundamental differences between open source software and proprietary software is that the source code of open source software must be made freely available with the software, which enables whole communities of programmers, at times thousands of people, to participate in software development, whereas with proprietary software, you generally cannot view or edit the source code, and software development teams are often small. Open source software is also often free (as in free beer) to download and use, but not always.

These are but a few of the many companies and industries that are using open source software, including the Linux operating system, in their day-to-day operations: Amazon, the London and New York Stock Exchanges, IBM , Google , NASA, CISCO , Wikipedia , Facebook, Toyota, the US Department of Defense , the Government of Brazil, the French Parliament, and many more. Android, which is a version of Linux, is the world's largest smartphone operating system, and Apache, which was also originally written for Linux, runs over 66 percent of the world's web servers.

With the many business and government organizations that now use open source software such as Linux, it's becoming increasingly clear that price is not the only advantage such software holds. If it were, then the companies that adopted it during the 2008 recession would have switched back to the expensive proprietary stuff as soon as conditions allowed, and that's clearly not the case. Rather, free and open source software (FOSS) holds numerous other compelling advantages for businesses, some of them even more valuable than the software's low price. Here are some examples.

Security
Some may argue that since open source code is available to public viewing, it would be subject to malicious tampering. However, according to what's known as “Linus' Law”, named for Linus Torvalds, the creator of Linux, "Given enough eyeballs, all bugs are shallow." What that means is that the more people who can see and test a set of code, the more likely any flaws will be caught and fixed quickly. It's essentially the polar opposite of the "security through obscurity" argument used so often to justify the use of expensive proprietary products, which are closed from public view so no one outside the companies that own them has the faintest clue how many bugs they contain. And there's no way the limited set of developers and testers within those companies can test their products as well as the worldwide community constantly scrutinizing FOSS can.

All software releases contain bugs. Hopefully, the people developing the software will have spotted and dealt with anything obvious, but any development team has only so much time in which to test a piece of software before it is released. When a bug is spotted in proprietary software, the only people who can fix it are the original developers, as only they have access to the source code. Open source software is different. Since a large number of users can access and change the code, bugs tend to be more visible and more rapidly corrected. We ourselves have reported bugs in some of the software we use to run our business, and those bugs were corrected within one or two weeks. In the proprietary world, it may take months to patch vulnerabilities, if they get fixed at all. Good luck to all the businesses using that buggy software in the meantime.

Quality
Which is more likely to be better: a proprietary software package created by a handful of developers, or an open source software package created by thousands of developers? Just as there are countless developers and users working to improve the security of open source software, so are there just as many innovating new features and enhancements to those products.

In general, open source software gets closest to what users want because those users can have a hand in making it so. It's not a matter of the vendor giving users what it thinks they want – users and developers make what they want, and they make it well. No “black boxes” are possible. This point is so important that open source, where it is possible to perform a thorough inspection and verify the correctness of the algorithm and the implementation scheme used, is now considered by many experts as one of the necessary conditions for dependable applications.

Also, open source software is usually built upon existing open source software – there is no need to re-invent the wheel in order to perform sometimes complex, existing functions in the new software being developed. So open source software development can advance more quickly. And there is always the possibility of “forking”, or creating an alternative code base, if the current software package is in some way perceived as wrongly managed.







Customization
Along similar lines, business users can take a piece of open source software and tweak it to suit their specific needs. Since the code is open, it's simply a matter of modifying it to add the functionality that is needed. Don't try that with proprietary software! And if you do not have the programming skills required to customize the software you are using, there is likely to be someone in the open source programming community who is willing to undertake new development challenges at reasonable cost.

Freedom
When businesses turn to open source software, they free themselves from the severe vendor lock-in that can afflict users of proprietary packages. Proprietary software vendors can lock users in to their products by ensuring that they are not readily compatible with potential rivals. Customers of such vendors are at the mercy of the vendor's vision, requirements, dictates, prices, priorities and timetable, and that limits what they can do with the products they're paying for.

With FOSS, users are in control to make their own decisions and to do what they want with the software. They also have a worldwide community of developers and users at their disposal for help with that.

Interoperability and flexibility
Since there is no desire to lock in users, there is no incentive to use non-standard formats to inhibit compatibility. So open source software is much better at adhering to open standards than proprietary software is. And even when non-standard formats are used, it is always possible to document them from open source code. If you value interoperability with other businesses, computers and users, and don't want to be limited by proprietary data formats, open source software is definitely the way to go.

When your business uses proprietary software such as Microsoft Windows and Office, you are on a treadmill that requires you to keep upgrading both software and hardware. Open source software, on the other hand, is typically much less resource-intensive, meaning that you can run it well even on older hardware. It's up to you--not some vendor--to decide when it's time to upgrade to new, costly hardware.

Governments or international institutions can provide better accessibility than may be possible with closed source software, as they are not at the mercy of the commercial requirements of traditional software vendors.

Longevity of software use
Commercial software vendors can go bust or get bought up. When this happens, there is no guarantee that their software products will continue to be available, supported, or updated. This can result in users needing to switch products, which can be very expensive and difficult, especially if they were heavily locked-in to their current product. Even with healthy companies, new releases often mean that older software and format versions are discontinued and no longer supported.

With open source software, this danger is greatly reduced. As the source code is not “owned” in the same way that proprietary source code is, it may be picked up and developed by anyone with an interest in a product’s survival. And if you do not have the technical resources to take on responsibility for this, thanks to the way in which successful open source projects gather user communities around them, where there is a potential revenue generating or cost saving opportunity, there will probably be other interested parties willing to continue to maintain or improve the software.

Ability to audit
With closed source software, you have nothing but the vendor's claims telling you that they're keeping the software secure and adhering to standards – it's a leap of faith. The visibility of the code behind open source software, however, means you can see for yourself and be confident.

Support Options
There is a world of support, which is usually free, for open source packages through the vibrant communities surrounding each piece of software. Most every Linux distribution, for instance, has an online community with excellent documentation, forums, mailing lists, forges, wikis, newsgroups and even live support chat. And the communities associated with most major Linux distributions provide complete, secure, seamless and fully coordinated software updates as needed for “all” of the software obtained through them, as opposed to the provision of OS updates only such as are provided by Microsoft, or the all-too-often hit-miss approach used by other proprietary software vendors.

For businesses that want extra assurance, there are now paid support options on most open source packages at prices that still fall far below what most proprietary vendors will charge. Providers of commercial support for open source software tend to be more responsive, too, since software user support is where their revenue is focused.

Cost
Between the purchase price of the software itself, the exorbitant cost of mandatory virus protection, support charges, ongoing upgrade expenses, and the costs associated with being locked in, proprietary software takes more out of a business than most probably realize. And for what, when better quality is available at a fraction of the price?

While some proprietary software vendors have made claims that open source software is more costly to implement regarding the needs for staff training, consulting, maintenance, etc., that simply is not so. There are no per-copy fees for using open source software, and the costs for training and system maintenance of open-source software has been shown time and again to be the same, or significantly less, than for proprietary software. And organizations that engage with open source software can customize it to attain efficiency benefits or to better suit their own working practices, either via in-house development or by paying external developers, far more cost-effectively than can ever be done using closed, proprietary software.

References: Katherine Noyes, pcworld.com; James A. J. Wilson, 09 May 2013, Jesus M. Gonzalez-Barahona , 24 April 2000.

November 2013 By: Rick Gagné