The millions of projects on GitHub (just the largest of several code sharing sites) prove that people love to share software. Even though not all the projects have free licences, their availability for public examination shows that code sharing meets a powerful need. Meanwhile, free software is driving the most important trends in computing: virtual systems, web sites, machine learning, and more.
This article covers our love of free and open source software. It looks at the traits of free software from the following viewpoints:
Free software is what every developer gravitates toward. How could a programmer prefer software that’s locked up and impossible to look at? Developers are often the kind of people who, as kids, dismantled household appliances to learn how they worked. The developers bring this inquisitiveness to software. They hate mysterious bugs. They want the freedom to make a system fit their needs, whether by tweaking an option or adding a whole new branch.
Free software is malleable in pursuit of the tiniest purposes as well as the grandest ones. If you see a valuable enhancement, you don’t have to wait for a company to figure out a business reason to make the enhancement—you just recruit a team to do it.
Developers certainly appreciate the increased chances offered by free software to win over new contributors. These contributors offer their services because they know the software is equally available to everybody and won’t be hijacked by a single organization. But the appeal of free software goes far beyond the mere quantity of developers–it concerns the diversity of developers as well. Let’s see why
The possibilities created by software freedom are particularly treasured by under-resourced places with few resources or with small populations who have big needs. These needs might never even be heard by companies that make proprietary software. Certainly, they’d never find reason to devote their highly paid staff to providing a feature the community wants. But civic-minded local programmers can adapt free software to community needs.
Developers also like to build communities, and free software most effectively underlies such communities. Because users know that they can have a say in the development of the software, they are motivated to join discussions, advocate for their needs, evangelize for the project, and draw closer to other members of the community.
In short, free software stimulates people to learn, to take responsibility, and to find solutions. It provides power and autonomy while encouraging activism and a desire to contribute.
Although your career can certainly benefit from an understanding of Oracle databases or AWS APIs, free software is the hottest area for hiring. One reason is the incredible functionality provided by free software: Linux, Kubernetes, Python, etc. But freedom itself draws companies too.
The main attraction of free software is that you don’t have to worry about lock-in. Proprietary vendors make some impressive software products, but there remains a risk that they’ll take the product in a direction you don’t like. Proprietary software offers many horror stories about double-digit hikes in costs, crucial features stripped out without warning, and other onerous requirements.
Developers who like free software, as described in the previous section, persuade their employers of free software’s advantages. And because free software welcomes deep study, companies enjoy a large pool of talent to draw from when adopting popular free software projects.
Like developers, companies that support free software—through money or through programmer time—can benefit from having a say in its direction and priorities.
Free software today is a major contributor to development throughout the world. As mentioned earlier, clever tinkerers in many underserved areas combine open hardware with open software to create products such as health tests at a hundredth the cost of the bloated products offered by proprietary companies from more affluent countries.
Free software doesn’t try to control people. When people depend on proprietary software, the vendor can dictate what users are and are not allowed to do. Free software licenses reject such domination. Free software is also less likely to be used for the surveillance that leads to abuses ranging from the biased delivery of ads to the distortion of political campaigns.
Of course, the development processes behind free and open source software present difficulties.
Funding has always been a headache. Essentially, projects depend on free-will donations of time and money, whether from individuals or from corporate backing. Most users are perfectly content to be free riders and never contribute a penny to maintenance. Many free software projects shrivel up and disappear for lack of support.
On projects that persist, developers often become employees of companies that use the software and recognize the value of paying staff to contribute. These companies derive their revenue from other sources, including proprietary software. Other free software developers make a living as consultants or offering training.
The other major problem with free software is the uncertain timing of feature releases. Because the projects depend on volunteers or on the staff of companies who have other priorities, a feature that you want can be delayed for years. This is not always bad. In contrast, many proprietary companies release buggy software in order to meet the deadlines they promised their customers, or just to guarantee continued income.
Finally, many people and institutions still don’t trust free software or the processes behind it. Even after spectacular multimillion-dollar failures, such as the FBI Virtual Case File project or the Department of Veterans Affairs health record upgrade, major institutions continue to put their faith in the promises of proprietary companies instead of free software processes. All who appreciate free and open source software must continue to push for more trust.