Wednesday, May 23, 2012

Anti-Pirate Prejudice Taught to Beginning Programmers

I’m a bit hurt today. I think “hurt” is the best way to put it, because it hurts me whenever I see society kicking itself in the proverbial balls. “Why,” you ask? Because today I read a lesson in an introductory programming course which displayed a devastating display of institutional ignorance being instilled in young programmers. It is an unfounded bias that I believe to be the source of much of the confusion in the professional approach to software development and the enforcement of copyright and software patents today. What was the unfounded, biased implication made in this lesson? That open source is in some way a bad thing.

This school, while by no means Ivy League, is accredited and is listed in the US Dept. of Education database of accredited postsecondary institutions and programs as such. So how bad was this lesson? Well, the biased slip is rather subtle, which makes it far too easy to be accepted as fact rather than opinion by those who are not already aware of the values of open source. Especially since the main topic of the lesson is not one of licensing.

The lesson is explaining the differences between compiled vs. interpreted programming languages. Speaking in regard to compiled programming languages, the following is said:

“There are advantages for creating programs this way, one of which is that you can give out the .exe file to users without giving them the source code of the program.”

I realize I am posting this out of context, but I assure you that no definition of “advantages” or explanation of why it is an advantage to hide the source code of a program is given throughout the lesson or in any of the prior lessons leading up to it.

Later in the lesson, speaking of interpreted languages, the word “advantage” is never used, nor are there any advantages implied. You will, however, notice some very different language used here.

“One disadvantage of this method is that when you give out your program for others to use, you are giving them the source code of the program.”

Interpreted lagnuages represent those that generally produce software in an open source fashion by default. Again, no explanation is given for why this could possibly be considered a disadvantage. Why does these disadvantaged programming languages even exists? Should we be building ramps for these languages, because it sounds like they might have trouble getting up stairs?

As a student, I am left to either blindly accept it as a fact that open source development is some sort of disadvantage or to call into question the validity of this institution’s capacity to competently education students in this field of study. Opting for the path less traveled, I chose the latter. This little slip of anti-pirate sentiment was enough for me to go as far as double-checking whether this school is even accredited. It also had me wondering just how prevalent this issue is among otherwise reputable schools.

Even Stanford, home of Stanford Center for Internet & Society, makes it clear that any student caught copying another students code will be suspended, charged with 40 hours of community service and issued a no pass/no credit for the related course. In the collaboration policy for their CS143 class on compilers, Pascal Van Hentenryck, Prof. of computer science at Brown University, is quoted.

“Your code is like your boyfriend or girlfriend. It’s okay to talk about it on an abstract, high level. But you don’t want to go into the specific details, and you certainly don’t want to share.”

The following is specifically discouraged by students of Stanford as per the honor code:

* Copying code
* Using work from past quarters
* Studying someone else’s code
* Debugging someone else’s code

These rigid standards and harsh policies shared by some of the most prestigious schools in the world are most often taught before a student has even written their first “Hello World!” program. They set a foundation for the entire career of many of tomorrow’s software developers without allowing the student of software programming to consider the realm of benefits offered open source development, shaping their programming method to be one restricted to reinventing the wheel.

Granted, reinventing the wheel is a necessary skill if you are entering the world of proprietary software. My only gripe is that the opportunity for the student to choose whether or not to work in proprietary or open source development is not given. Proprietary development has, in essence, been made “opt-out” by leading educational institutions.

Of course I am not writing this to get down on Stanford or Brown University or any specific school. I am simply exploring one area in which we may find solutions to problems related to copyright, software patents and piracy which become much more difficult to approach further down the road when that student begins developing software for real world application. Copyright infringement and patent disputes will remain an eternal struggle for software developers for as long as software is developed and released under a proprietary license.

On the other hand, have you tried to pirate GNU licensed software lately? It’s Gnot possible. mehuhuh

In a recent piece by Pirate Party founder, Rick Falkvinge, he labels policy makers (as opposed the Hollywood and rights groups) as the primary target that will ultimately lead to the copyright and patent reform that must be made if we are to maintain our rights to free speech and civilian privacy. Why might policy makers be views as such an important “target” to Mr. Falkvinge? It is likely because it is the enforcement of bad policy that threatens said rights. Good policies must and, therefore, good policy makers must be put in place in order to ward off such threats to our freedoms and economies.

Educational institutes have a responsibility to the future heirs to the software industry to set policies into motion, providing a foundation which will produce ethical software developers who will build a better software industry, a stronger economy and a society extends benefits to more rather than few. It is important to embrace and espouse educational policies which do not threaten our human rights, but instead harness their benefits. To do this, students must be given, at the very least, a clear, unbiased understanding of open source philosophy so that they may decide on their own whether open source or proprietary is more advantageous the themselves as individuals and to the industry and society they belong.