Software is an abstract invention. Never before have we borne witness to a product so easily copied, distributed, and utilized. As such, rules governing its use and the direction of its evolution are a point of major controversy today. All software should be free in the sense that all software should preserve the freedoms of its users.
Software doesn’t have to be free in the monetary sense. In fact, in this day and time, software shouldn’t be free. Allowing software to be a commodity that can be bought and sold gives large corporations and small startups an incentive to spend time and money on their creation. While the products released under this model aren’t up-to-snuff with the platonic ideal of quality software per se, there’s no way to achieve it with the level of computer literacy currently found around the world. Those that code would continue to code for good and crank out quality products, but the influx of young computer science wannabes would be stifled before it reaches its peak saturation. Money is always a driving factor for humans and we’re just not ready to move beyond that yet. In the near future, perhaps with a generation, charity programs geared towards the increased of computer literacy in the general public will allow us to reach a point where completely free software is feasible. But that time has not come to pass.
Just because software should ‘t be free, as of yet, doesn’t mean that software shouldn’t be “free.” When you purchase a physical object, you have full control over it. With some restrictions, you can dismantle it, remix its creation, and otherwise tamper with it as you will. With the advent of digital creations, this ability has been suffocated with red tape. Programs are shipped with encrypted code and jailbreaking mobile devices has become a basis for termination of service. If the platonic ideal of a coding utopia is what we’re striving for, then starving us of our rights to access all the data we have purchased is nothing more than an obstruction to progress. Having access to data allows us to learn from the advances and shortcomings of the products we use. It allows amateur programmers to see the workings of an industry-class software production without having to wait until after they finish formal education to get their feet wet. Essentially, it allows us to teach ourselves, to understand the world around us without restriction by selfish red tape – otherwise known as progress.
Many might argue that a coding utopia isn’t what the human race should be striving for. Humans are misguided by striving for anything else. Computers are the future. In fact, computers are the present. In the end, humans have to evolve beyond simply escaping Darwin’s cycle. The death of our planet, our sun, our solar system, and eventually the universe is imminent. The only way to escape such a fate is to try to gather as much knowledge as possible in the limited time we are given. Even then that might not be enough, but we owe ourselves, and future generations, the ability to find out. Coding is the road to automation and the focus of human effort towards things that are productive in the long run rather than menial pastime. We owe our future a society where we strive for excellence, not monetary gain.