The Decompiler Dilemma

The whole advantage to free software is that you can take it apart and look at it, right? That is what most free software advocates would have you believe. So what would happen if the GNU Project released a Perfect Decompiler, a decompiler that could perfectly decode any binary into source code understandable by humans? (For the theoretical purposes of this discussion, let us also assume the impossible case that the binary is decompiled into a verbatim copy of the original source code.) Would this help or hurt the Free Software Movement?

The only barriers ensuring that proprietary software remains proprietary would be those of law. In a pure state of anarchy, a perfect decompiler would be indistinguishable from having all software released as free software. It would essentially render the Free Software Movement perfectly successful in anarchist states. Complete access to the source code of any application could be obtained with little effort, and modification would be limited only by the quality of the newfound code. In the world as it exists today, however, this would not be the case. Proprietary software licenses across the board prohibit disassembling in the first place, and copyright laws prohibit the possibility of doing anything interesting with the decompiled code. It would seem that, besides abandonware and oddly-permissive proprietary licenses, a perfect decompiler would be meaningless to the Free Software Movement due to the artificially imposed limits of the government. Is that necessarily so?

One current roadblock to the Free Software Movement is the diamond-water paradox. The diamond-water paradox points out the fact that water is necessary for survival, yet free, whereas diamonds are useless but highly treasured. Like water, free software has an infinite availability. Like diamonds, the supply of proprietary software is limited by cost. It makes no difference which is more important or useful; when monetarily limited, proprietary software will be seen as having more value than free software. No matter what the quality is, only a fool would exchange something of greater value for something of lesser value. Free software users simply value freedom much more than purchase price, making the free software option more valuable. This is where free software advocates stumble: in order to change what software people use, they must change their entire set of ideals and ways of thinking.

The most common arguments for the promotion of free software involve uncertainty as to how one is being treated, privacy, the ability to control one’s experience, and the ability to share. With a perfect decompiler, uncertainty and privacy could be addressed very easily. After the release of such a decompiler, a fairly large number of privacy-indifferent companies would have their reputations damaged until they released privacy-respecting software updates. After a package of unapologetic apologies, the effects of distrust would be fairly short-term, and would not in themselves result in a significant drop in sales.

The ability to control one’s own experience is, more often than not, seen as a form of individualism. Big companies can never sue every individual that questions their castle on a cloud. Just like the world of software patents today, the actions of independent developers would go unnoticed, for the most part. In other words, only big companies that made modifications to software (and developers who intended to resell modifications) would be hurt by the inability to modify source code, and individuals would be able to make all the changes they wanted. To individuals, this would sound like something that would trip up only large corporations, when in reality, it is from those large corporations that the most useful and important modifications come.  Plus, nobody would ever come to depend on a platform that cannot be reliably run in any situation.  The mixing of individualism and formal/corporate usage is a difficult concept to understand, and one that many seasoned free software advocates still do not grasp.

Finally, the ability to share is seen by a large percentage of the population as a right that already exists. The sharing and usage of illegal proprietary software is so rampant today that the ability to share decompiled code (modified or vanilla) would not be immediately seen as a problem. While it is debatable whether or not this is the path down which society should be going, many of those savvy enough to legally share software are already doing so.

Keeping these ideas in mind, why would any non-philosophically-inclined individual see the value of free software with the availability of the perfect decompiler? Besides existing free software sympathizers, the grounds for showing the advantage of free software would be so small that even the philosophically inclined would have trouble seeing the value of complete freedom as outweighing the value of practicality.

The relevance of this is fairly straightforward: access to the source code is all that many free software supporters really want. It is hammered into the community members’ minds by the most philosophical among them that the term “free” is what is important; however when asked to justify reasoning, it is much more rare to hear reasoning that protects the freedom to redistribute modified or vanilla copies when given access to the source code. It just makes things more difficult for both parties, and is often left out of the explanation of freedom. But does “freedom” really make sense without the holistic picture?

It would not be logical to discuss only the Free Software Movement, however, without giving a nod to its step-sibling movement, the Open Source Movement. The Open Source Movement has made huge contributions to the Free Software Movement, and a significant number of people consider themselves members of both efforts. Open source, however, respects only the interests of businesses trying to maximize profits, without giving a nod to its consumer-protecting step-sibling.

The two most commonly cited reasons that businesses release their software as open source are to gain more users and to develop a community around it. Open source software will not draw a significant number of new users, as we saw above. Consumer ideals are the greatest draws to free software, so open source’s added appeal would be very, very small if a perfect decompiler was developed, considering our explanation. (This reasoning ignores the “no cost to the consumer” mentality of such software because, if the source code was easily decompilable, the illegal acquisition of no-cost versions of proprietary software would be significantly more user friendly and commonplace than it is today.)

A much more difficult question is whether or not communities could be created around a company’s open source software. Even now, though, communities don’t develop overnight. Many times, they don’t develop at all. So exactly how could companies make the decision to give up their monopoly forever in order to get a piece of the profit the community has to offer? With “trade secrets” now readily available, it would seem that there would be much less harm in declaring a particular piece of software “free”. Does that mean companies would be more likely to make this dive into open source?

Community dynamics in software can generally be simplified by focusing on one target niche at a time. In general, there are a limited number of people in the world interested in contributing to free software projects that fill the niche that scratches their itch. The ideas of game theory and Cournot competition suggest that, if all software in a particular niche is identical, all of that software will eventually be open source. Differences do exist among pieces of software, though, and these differences prevent every company from choosing open source and filling the world with truly free software. Traditionally, open source has been seen as a “last resort.” But it has only been a last resort when one company wants to gain an advantage over its competitors. Because every software company would be equally shaken by the same deadly handshake, there would be no additional incentive to gain a relative advantage. One could go as far as to argue that the availability of community members in each niche would decrease, because some of those once interested in programming free software would begin illegal underground work. But again, this would be an industry-wide decrease in resource availability. The relative advantage gained over competitors would just be less.

It can thus be concluded that, even if all source code was made available, it would not increase the number of companies that elect to “make the most of the situation” by choosing open source. Each company in each niche would not turn their eyes to open source because, when enough companies use this route, the advantage to doing so disappears. The number of software developers in the world (and especially the number interested in contributing to free software) is finite, so additional opportunities for contribution only mean more fragmentation and a shrinking community for each company that has already chosen open source. With lowered overall profits from the state of the industry, it would not be economically wise for companies to take advantage of the situation.

It would be naive to suggest, however, that the proprietary software industry would accept such a decompiler without a fight. Both legal and technical means would be used to achieve the end of keeping software restricted in such a way that makes it marketable using the same strategies as physical products. There would no doubt be at least one massive class action lawsuit from the software industry. Depending on the position of the various governments of the world at that particular time, it may or may not be ruled illegal on the spot. (The American government would probably follow the model of the DMCA and rule the usage of the decompiler itself illegal because it gives citizens the power to do illegal things.) Really, though, decompiling software and improperly distributing copyrighted material is already illegal, so it would never stop the effects. How else would the companies fight?

Lawsuits would be their best tool. Yes, they would likely use the same technique the entertainment industry uses today (make a big deal out of it every time a consumer is sued), but there would be much worse cases. The most damaging would be those where the software industry creatively manages to persuade the government that causation is synonymous with correlation. With the right (or wrong) wording, the proprietary software companies could conceivably claim the illegitimacy of accessing any source code to which one doesn’t own the copyright. In other words, this would outlaw truly free software. With enough money, who knows how far preposterous claims such as this could make it. These kinds of claims severely damage the freedom of those partaking in legal activities for ethical causes, a very negative yet plausible effect.

There are more fighting techniques beyond lawsuits, though. For example, there would certainly be obfuscater wars, whereby a software company continuously develops a source code obfuscater to bide time before the obfuscation technique is implemented by the authors of the decompiler. There would be company personnel hired exclusively to expose those who use the software illegally. More means would be used, but I won’t detail them here. The biggest thing they have in common is their heightened cost. This is already a problem with proprietary software: part of the purchase price includes the costs necessary to restrict the user. This would only make the issue much worse, and create more of a need for true freedom.

Taking every view into consideration, it is surprising to see how an action most would think coincides with the goals of the Free Software Movement would actually hurt it. People would see free software as having much less value, and there would be less ground for encouraging its use. Companies would not release all their source code to make the most of the situation; if anything, they would change by becoming less likely to do so in the future. The corporations would work through both technical and legal channels to prevent users from changing their software, and in the process, they would tread on the rights that keep the Free Software Movement alive and thriving today.

This just goes to show the importance of finding the source cause of a problem. It would seem (and many assume) that the root dilemma of the Free Software Movement is the inability to access the source code of all software. In reality, though, the problem is about the legal inability to deal with such source code. Free software advocates advocate using free software for reasons involving read access to the source code, but rarely touch on the most basic concepts of true freedom. This example is, of course, a fictional extrapolation, but an extrapolation from which an important lesson can be drawn. Like all things in the world, the Free Software Movement cannot continue stably on any path but one founded on the most basic and important ideals. The foundation of a house only works when it supports the entire structure.

Published in: on August 16, 2010 at 7:52 pm  Comments (11)  
Tags: , ,

The Fear of Knowledge

I had the opportunity of listening to a presentation by a poorly-informed faculty member at my school regarding copyright laws.  This was an eye-opening experience for me into the way those who believe to have a solid grasp of copyright view it.  My class of 30+ students listened intently, believing everything they were told, as Mrs. Smith started her lecture…

This teacher (whom I’m referring to as Mrs. Smith) is very knowledgeable about what she does.  Her job mandates that she know a lot of “facts”  about copyright.  (“There’s a world of difference between truth and facts.  Facts can obscure the truth.” – Maya Angelou)  It is quite apparent that she learned about copyright from the same place as other teachers who are obsessed with “facts” about it.  Just do a Google search for “copyright for teachers” to see what I mean.

The presentation started with Mrs. Smith explaining to us a very basic overview of what copyright it, things even monkeys probably know. (Though, I admit, the class was not packed with monkeys.)  “Any violation of copyright law is called plagiarism,” she explained.  She went on to tell us a story about a woman from Duluth who was caught downloading only 24 songs illegally, and was charged over $200,000.  “You will get caught,” she exclaimed.  The truth behind this court case was obscured by her “facts”.  The lady in question, Jammie Thomas, a single mother of two, was sent a text message by the record companies telling her that they knew she was sharing at least 1,702 songs, and that she needed to stop immediately.  She didn’t.  She received a letter in the mail asking her to settle for a rather small amount of money.  She replaced her hard drive, and took the issue to court.  The lawsuit itself was over only 24 of those songs, for which she was charged $222,000.

“Do you know who you are stealing from?” she asked.  “The artists.  Every time you illegally download a song, those artists lose the money that is rightfully theirs.”  In reality, though, the artists only make about $1 from every full-length CD sold.  Online, it can be an even lower percentage.  It has been shown that illegal file sharing actually helps the artists, though no major media company will allow these types of stories on their news networks.  Think about it this way: the artists see so little of the money that their music sells for.  Sharing this music gets it out to more people, boosting the popularity of the artist.  If you were an artist, would you rather have your music reach everybody in the world and become extremely popular, or reach fewer people and make a small sum of money from the sales?  Most of an artist’s revenue comes from live concerts, and ticket prices are directly correlated with popularity.  “Some artists put their music in the public domain, just to get it out there, but almost all free downloads you find are illegal,” stated Mrs. Smith.  Artists don’t benefit from public domain music, which is probably the reason that very few public domain tracks exist.  Most prefer a Creative Commons (or another “some rights reserved”) license, which carries the attribution clause.  She made the assumption that anyone with a copyright will protect all of his/her rights.  This is not the case with the music I compose, nor is it the case with the thousands of people on Jamendo and similar sites.

Regarding academic copyright, Mrs. Smith explained the concept of “fair use”.  “If you are working for academic reasons, you get additional benefits from this system.  You can use any copyrighted material you find in schoolwork, as long as you cite the creator appropriately, and use only pieces small enough to be accepted as ‘fair use’.  Now, fair use includes…”  I raised my hand.  “What about the DMCA?”  “What about it?”  “If it comes from an encrypted source, we are not permitted to touch it, even for ‘fair use’.”  “You’re right.  Every now and then you come across a website that doesn’t allow you to right-click and copy.  Those sites are the exception to this rule, but for everything else, this rule is effective.”

The worst part about Mrs. Smith’s presentation, though, was that the only argument she gave was fear.  Her message can be summed up in a quote of hers: “Don’t do it – you will be caught.”  When her husband brought home illegal DVDs, she apparently told him, “You may not play those on our DVD player.  They are against the law, and we will be caught.”  She told us about how the computers at school were constantly being monitored, and how any administrator could view the screen of any computer at any time.  “Does anyone monitor your computer at home?” she asked random students throughout the class.  Mrs. Smith “explained” to us who was monitoring our computer at home; she claimed that the police, the government, and our ISPs are monitoring our desktops at all times.  The examples she cited mostly involved students getting seen with drugs/alcohol on their Myspace pages.  Our government is becoming more and more involved as a Big Brother every day, but it still cannot watch desktop activity.  It does have the ability to monitor packets from suspicious parties, but those parties are untouchable if they properly anonymity themselves.  Microsoft has the ability to do so much more than the government, so why didn’t she mention them?

Copyright infringement should not be based on fear.  Fear is a very powerful tool that is all to often exploited by governments and those in power to get the information they want stuffed into people’s minds.  Where do you think Mrs. Smith learned this information?  Was it a credible source?  Chances are it was, which brings up the question of who you can really trust.  If people stopped blindly trusting the government, what would happen to fear as a propaganda technique?  When discussing copyright, it is best to decide where your ethics are.  “Should I share an ogg (or mp3) of this out of print CD with my friend?”  “Should I consider a small violation of the DMCA a crime if I will only be using the content for what used to be called ‘fair use’?”  “Should I cite this public domain resource?”  “Should I tell my friends about this artist and give them this audio file to get them interested?”  “Should I download this BBC documentary I found on BitTorrent so I can learn about Elephant migration patterns for my report on African mammals?”  There are so many possibilities.  The government has drawn an unreasonably inhibitory line in the dirt, and used fear to enforce it.  As a result, the only way to figure out what is right or wrong is to make the ethical decision yourself.

Published in: on May 3, 2009 at 11:03 am  Comments (9)  
Tags: , , ,

Explaining Software Freedom to a Beginner

I needed a good way to explain software freedom to people who have little to no computer experience (possibly parents or grandparents, kids, stay-at-home moms/dads, etc.), so I created the following blog post.  Many of these people could benefit from free software, but aren’t going to learn about it through mainstream media.  These people are usually easy to convert to Free Software, because they don’t already have blind opinions about the benefits of proprietary software.  They also don’t resist with the “I don’t want to learn a new program” excuse, because they haven’t put much time into learning any software yet.

You are free to modify and distribute the following under the terms of the GNU FDL.  To redistribute this, you can download it in PDF format or ODT format.

What is Software Freedom?

Many years ago, when computers were just being invented, people really didn’t care about computer software. If a company or organization was lucky enough to own a computer, it would find or create a piece of software to use on it afterwards. Other companies or organizations with computers would be nice enough to give away the software they had written, because it really didn’t mean that much to them. People had all the freedom they could want with this system. They had the freedom to give away their own software, and to receive software from others. They had the freedom to change any piece of software to accomplish the task at hand. They even had the freedom to give their modified version of a piece of software away to someone else in need.

Since then, the times have changed. Now, many pieces of computer software are locked down in a way that prevents people from making changes, just so that the software can be sold for a profit.

What is wrong with most software?

The reason companies lock down their software is because know they can make money off something that should be shared among everyone. Under normal circumstances, there isn’t any problem with people trying to make money. There is a problem when people want to make money so badly that it interferes with progress and innovation.

Different companies and individuals had to keep reinventing the wheel in order to sell their software; they couldn’t just change someone else’s software to fit their needs. Lots of people spent a lot of time writing computer software that somebody else had already written. If these people had shared the software they wrote with everybody, all of the time spent duplicating an existing program could go to improving it.

Another problem with not sharing software is the fact that one company or individual maintains complete control over what that piece of software does. More often than not, that person or company will be interested in making money instead of making the software as powerful and useful as possible. Therefore, the program’s creator is free to put obtrusive or unobtrusive advertisements into the program.

Obtrusive advertisements are pop-ups, nagging screens asking you to buy the “full version”, and other advertisements that ask you to spend your money in a certain way. An example of an obtrusive advertisement that you may be familiar with is the MSN icon (the butterfly) on the bar at the top of Windows Media Player. Another example of obtrusive advertising is when the Apple iPhone adds the text “Sent from my iPhone” to the bottom of all emails sent.

Unobtrusive advertisements are certain features or the lack thereof that force you to use software from a certain company again in the future. Unobtrusive advertisements are far more common than obtrusive ones. An example of unobtrusive advertising is the fact that Microsoft Word saves in Microsoft’s “.doc” format instead of the international standard, “.odt”. This forces you to use Microsoft Word again in the future if you want to view or edit that file. It also forces anyone else who wants to view or edit that file to use Microsoft Word.

The History of Software Freedom

One of the first people to realize a problem existed was Richard Stallman. In the 1970s, Stallman became frustrated when he couldn’t make an improvement to a piece of software he had received at no cost. This made him start to think about the computer software market. He was talented at creating software himself, and he knew several other people who were as well. They decided to create all of the software that a computer needs to run, and then share it with anyone who wanted it. It would be free of cost, but more importantly, anyone would have the freedom to change and redistribute it. Stallman wanted to make sure that, if modifications were made to his software, other people would be able to benefit from those modifications as well. Therefore, he put a modest requirement on his software that stated, “If you make changes to this software, those changes need to be shared as well.” He called this collection of software “GNU”. In 1991, another component was added to GNU to complete it called “Linux”. Therefore, the complete system was called “GNU/Linux”.

What is is called?

Stallman called this form of software “Free Software”. Most people incorrectly call any software that is free of cost “Free Software”. In true Free Software, the “Free” part refers to freedom, not cost. While it is true that most Free Software is free of cost, not all software that is free of cost can be called “Free Software”. Many times, applications that are free of cost are marketed as Free Software. There have been other names given to Free Software to help differentiate it, including “Freedomware”, “FOSS”, and “FLOSS”. Often, is is also called “Open Source Software”, or “OSS” for short. (Open Source Software has a few very minor differences from Free Software, but for our purposes, they are the same concept.)

Stallman also called any piece of software that wasn’t Free Software “Proprietary Software”. He carefully chose not to use the term “Commercial Software”, because he knew that some companies have indeed found ways to make money off Free Software. Calling freedom-subtracted software “Commercial Software” would give the impression that Free Software can’t be used in the industry, which is far from the truth.

Why Free Software is great

Free Software is generally much higher quality than Proprietary Software for several reasons. Many of the people who create Free Software do not get paid for doing so; it is created completely in their free time. These people obviously have a passion for creating software, since they are willing to do it in their free time. This gives the free software community the cream of the crop developers. There isn’t anyone working on Free Software who does it just for the paycheck.

In addition, all software is shared. This means that, unlike proprietary software, the wheel is never reinvented. Let’s say an German developer spends several years of his life creating a computer program that does the user’s yard work, and decides to make it Free Software. Now let’s say that a Russian software developer wants to create the same program, but in Russian. All that Russian developer has to do is go through and translate the existing piece of software. In the world of Proprietary Software, that Russian developer would have to start from scratch and recreate the whole application. Free Software just saved this person years of work. After a while, you can see everyone’s hours, days, and years start to add up to a considerable amount of time saved. This time saved directly translates into quality and progress

Free Software won’t always do everything people want, but it is guaranteed not to do the things people don’t want. If there is anything that the world as a whole does not like inside a piece of Free Software, it will eventually be removed by someone who feels strongly about its removal. This system of checks and balances is one of, if not the best, system of quality control ever created.

Final Comments

Free Software is any software the gives people the freedom to do what they want with it. Proprietary Software is any piece of software that is not Free Software. Free Software offers a massive number of advantages over Proprietary Software, because it is created by people, for people. Features are not added to or subtracted from Free Software based on how much money they will generate, but instead on how useful they will make the software.

One of the reasons not many people know about Free Software is because Free Software projects usually don’t advertise. The creators of software usually prefer to use all of the money available to them to improve the software. The only advertising these projects get is word of mouth.

To help promote the spread of Software Freedom and the advancement of technology, try using some pieces of Free Software instead of Proprietary Software. Two very well known pieces of Free Software you may want to try are the Firefox Web Browser ( and the OpenOffice Productivity Suite ( There are Free Software applications to replace most Proprietary Software. Two good sites to go to to find more free software are Osalt ( and the Free Software Foundation Directory ( Together, we can help spread Software Freedom.

Published in: on July 4, 2008 at 12:45 pm  Comments (13)  
Tags: , , , , , ,