Tuesday, April 8, 2008

"Free" Software

A week ago a man named Richard Stallman came to University of Richmond's campus and gave a talk about his work with the Free Software Foundation. The "Free" in free software isn't about cost, it's about rights associated with the software. Stallman and his foundation believe that all software users should have:
- The right to run the program for any purpose
- The right to examine and/or change the source code for the program. (So, this requires access to the source code)
- The freedom to redistribute copies as desired.
- The freedom to modify the program and distribute that modification
Stallman is against any software that is not "open source" or, in his word, free.

This sounds pretty cool. We would have access to everything on our computers so that we could learn how everything works, add any features we desired or remove features we didn't like. We could then provide our changes to other people who might want a similar setup.
But, this would mean the end of companies which rely on proprietary software development for revenues. Because, if you want to sell someone software that you've written, but after the sale the code for the program ends up online no one else will buy it, they'll just get it off the Internet.
Despite this, "free" software seems like a pretty neat idea and it could change the way people use their computers. I don't think this is an economically do-able system though.
Some applications require proprietary software to be of any use. For example, if the government has software that can accurately track and shoot down missiles, that's not something we want China to have the code for. With the code, they could learn the software's limitations and exploit those problems before anyone else had discovered them (there is no such thing as an error free program). In a more applicable situation, imagine that you run a medium sized company in a highly competitive market. You are consistently trying to better manage your business to lower your costs and under price the competition. If in house programmers create an integrated management system for your company that you then use to run aspects of your business, it isn't something you'd want to publish the source code for. Publishing the source code would remove any competitive advantage you would have over your competitors that the software provided. Or, if your competitors wanted to they could examine the code and look for vulnerabilities. Finding even one problem with the code could be enough for them to access your system and ruin your business. These are two fundamental problems with open source software on a wide scale from a security stand point.
Another problem with Stallman's point of view is the money problem. In his talk, he spoke of a world where anyone could change the code and redistribute it, fixing problems with it, changing functionality, or whatever. Since all the software is open source, anyone could make these changes. To use an example of his, a high school student that was into coding could learn how to implement the changes in software and make them. The immediate problem I see with this would be the development of a price war. Much like the outsourcing of physical jobs, coding jobs would get delegated to the lowest bidder on a global scale. This would hurt countries with high cost of living as programmers need to make more money to sustain themselves. In another possibility, if a company needed some changes made to their software, what's to stop them from reaching an agreement with a local college to have a class rewrite the code for academic credit? As a company, wouldn't this be a good thing to do? You still get the software, it's probably going to be good since students are being graded on it and it's free.
The free software movement isn't all bad though. I think there are certain applications where open sourced software can be of great use. Open source software is great for basic applications that are common needs for everyone. These include e-mail, document creation, and internet browsers. However, as the software becomes more specialized than the generic variety it becomes more important to keep it in house to protect your business security and investments.

No comments: