The Essence of Spit

Thursday, May 04, 2006

Free Software

Stallman, GNU, and the FSF

I recently attended a lecture by Richard M. Stallman, of GNU and the Free Software Foundation fame, at the University of Illinois at Chicago. Recently, I have had a bit of a disappointed view of Stallman's philosophy because of his stubborn views in respect to DRM in free software. I was quite convinced of Linus Torvald's "I'm a coder, not a politician" view in respect to software and licensing, but Richard M. Stallman's speech made quite an impact on my views, and was very thought provoking.

It began with his defining of free software and why it was necessary, as per the Free Software Foundation essay (required reading). According to Stallman's speech (and the essay), Free Software is defined by 4 inalienable rights of the user:

  • The freedom to run the program, for any purpose (freedom 0).
  • The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to improve the program, and release your improvements to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
What made this truly interesting is his reasoning why this is necessary to the user, even if the user is not a coder. In this case, according to Stallman, it is the user's right to be able to hire people to code for them if they are unable to fit that feature themselves. This would ensure that free software did not destroy jobs of programmers, and that any user-base could get the money together to make sure the requested change was implemented. This would ensure that not only could programmers keep their jobs, but that a group of users wouldn't be ignored by profit driven corporations.

This is but a single point, and if you are unfamiliar with the GNU public licensing and the Free Software Foundation, I strongly recommend reading their essays.

Free Software and Teaching Programming

This became more interesting to me as I am currently busied with writing many papers for my English Literature class at IIT. Current copyright laws work as such that anything that is written is covered under copyright law unless the author expressly says otherwise. This is good, if it weren't for ridiculous extensions to the amount of time before copyrights become public domain. When a piece of literature is written, anyone can read it and deconstruct it, with the proper skills. One can use this information to increase their own skills in writing, and have one's own creative submissions to the world. Though it takes a lot of money to get works published, and its obvious when there is blatant plagiarism when dealing with a "best-seller".

This creates a couple of problems in software design. Software is written in a language that can be read by any programmer and is easy to develop. It is then compiled into a machine-readable form that is decipherable by humans, but quite useless for any major changes or redesigns, as it is extremely difficult to read and learn from. Free Software gives the user the original language it is written in and allows the reader to deconstruct the software, learn, and possibly even add something new and amazing to the software community.

This is a large problem in teaching programming, because often times the most popular complicated software is closed source, so many students lose the chance of ever gaining any experience in seeing real software outside of little programs that explain core academic ideas. This greatly slows down the advancement of computer programming: students cannot see how a piece of software was composed and cannot learn how real, popular, usable software is created without industry experienced. Graduates from college are left without any real applicable training since few of them have actually worked on real projects.

Perhaps it's the nature of the beast, but it doesn't have to be that way. (see Selling Free Software). I am no purist GNU/FSF fan-boy, but I do believe that this must be considered and known by every programmer and every user, as often times they are only ever exposed to a hopeless other side of "that's just the way it is."

17 Comments:

Post a Comment

<< Home