Friday, July 30, 2010

GNU and Open Source

The GNU project developed some of the 21st century's most important software. The GNU Compiler Collection is used on Linux systems, BSD/OSX systems, and on Windows. GNAT has, for the most part, replaced any other Ada compiler ever created. The list could go on, but you get the idea. The sad thing about GNU is that it is so ideologically bent that I can no longer support it.

I am not looking to start a fight here. Please respond with your opinions on this topic. Let me know where you stand. My mind is open.

Richard M. Stallman (founder of the GNU project) has mixed his politics with his software. I have done this in one sense. In two posts of mine, I talked about making the US federal government work in a somewhat open source development process kind of way. I did not, however, talk about policies in government. GNU in general, and RMS in particular, talk about "ending" proprietary software. They are on a crusade to do away with proprietary software entirely under the belief that is your human right to modify and redistribute any code on Earth. On the GNU website (Philosophy section), you can find quite a bit of material, much of which talks about the evils of copyrights and closed source software.

Software, like literature, is an art form. As an art form, I feel it is appropriate for artists to have copyrights. If I make a painting, and someone else copies my art, takes that art as her own, and then proceeds to become wealthy using my artwork has a wrong against me not been committed? This talk about freedom seems skin deep to me. Where is the freedom to keep your code as yours? Where is the freedom to choose closed source? The GPL claims that no warranty comes with code. What if I want a warranty? I guess I choose closed source code, huh?

RMS and I disagree on just about everything really. I favor true freedom. The principal of my ideas is that my rights stop where your rights begin, and as such I will fight to protect your right to close your code, even though I personally would never do so. I will never favor any form of regulation at a federal level (states, sure, do what you want to as a state; further, consumers vote with their wallets, you don't like what a company does then don't buy its products), I will never support an increase in government size. I would never vote to give more power to a politician. Stallman would take the opposite stance on all of those issues. This seems to me to be expressed in the difference between "free software" and "open source software" and the licenses that would accompany each (FS = GPLv3, OSS = MIT or BSD). In the "free software" model, you are free to use software in any way you want, but you may never claim that it is your software. You can never try to keep code to yourself. You would be committing a crime if you choose to not allow derivative works of your code. In the open source model, you are free to do as you wish with the software you write, and others have that same ability.

To me the difference between the two groups of software are really quite simple. There is free software and pseudo free software. Free software would allow a company to incorporate their closed code with open code and leverage open source software for financial gain (think OSX), and all the while maintain the rights of all parties involved. On the other hand, pseudo free software would not permit such a merger between closed source and open source software.

As the programmer behind some code is it not your right to do with that software as you please? If you do not want to allow users to ever own that code, but only own a license to use it, is that not your right? If you want to allow them to change that code, redistribute it, and so forth is that not also your right?

It seems like we are in this battle between the rights of the creators and the rights of the consumers, and I have no idea why. To me it seems as if people having the ability to choose whether or not they want closed source or open source software solves this issue. I could be wrong about all this. Let me know what you think.


TorbjornLunde said...

RMD reminds me a bit of communists. They usually see freedom in a different way (being poor --> no freedom). This is fine, bit they go futher and want to force their view of freedom upon others and fail to regonize other freedoms, espescially if they conflict with their political goals.

I think these license-wars ars a bit funny. It seems like you have to choose a side, either you ars on the GPL-side or you are on the BSD-side. However, why not decide case-by-case. It doesn’t have to be a religion. (Not that there is anything wrong with having a strong preference.)

By the way: I think you have the most smart and balanced OSS-related blog (that I know of). Keep up the good work.

David said...

Free to choose whatever license you want for your own code, No problem, I will fight for your right to do that.
If you want your code "free" in your sense, choose a BSD license, but a lot of bludgers will come along and not give anything back, so you nor anyone else will have any benefit from exposing your code, just like when someone takes your painting and makes it there own, you have given them that right with your code!, but you wouldn't feel you had been ripped off like you would with the painting?
Yrs I would agree Richard come over as being a bit "over the top" but at the end of the day, he is often proved to be right about the darker side of human nature. Linus is often more pragmatic, But I must confess an admiration for Richard in spite of his extreme views on closed software

tbuitenh said...

If I understand them correctly, the FSF does not intend to force anyone to use the GPL. What they do want is a GPL'd (or even just MIT'd or BSD'd) alternative for each and every closed source program, so one will always have the freedom to choose not to use closed source software. Once that goal is achieved, that will probably lead to the "end" of proprietary software: if everything else is the same, why would anyone choose to receive fewer rights?

As for your painting example - this is a reason why one wouldn't want to use a BSD or MIT license. Because others then can take your code for free and "make a fortune". I don't really understand why you so badly want to be a charity working for proprietary companies for free.

Finally, everyone is free and welcome to provide warranty on GPL'd code, and even to sell that warranty. The GPL itself says so in section 4: "You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee.". It's just not provided by default. This means that if someone takes your GPL'd code for free and some bug in it causes their computer to explode, they can't sue you. This is a good thing.

Shillelagh said...

Well stated. If you don't like it, you don't have to use it. Don't buy it. Don't support it. Encourage others to do the same, and lead by example.

However, it's both ignorant and immature to cry about how more laws are needed every time an injustice is spotted. Most laws are unjust, anyway. said...

Great Article. Loved it.

The main message I got was that everybody has the right to release their work (technical, creative) etc. with a copyright license that is in line with their values, preferences and philosophical leanings.

But I must also say that you need crusaders. People in the middle often just don't have the energy to create the change that everybody desires. If it weren't for "extremists" like RMS the software world would be so stunted.

Its often the tension between the extremes that produces the ideal middle.

Ford said...
great point.

Shillelagh said...
Also well stated. I can see that.

Bill said...

I used to be against RMS mostly because of his self-righteousness, like he's some kind of self-appointed software messiah. He talks in very black-and-white terms and sounds a lot more like a religious zealot than a software developer. It seemed too extreme and impractical to me. I was annoyed, and still am, with his demand that we say GNU/Linux instead of Linux, because it feels like "strings attached." GNU creates this software and licenses it with their own license, which says nothing about how we must name the bundles of their software. And then only after we've become hooked on it, they start saying we really should be naming it after them.

But for every other issue I had, I changed my tune after the BitKeeper fiasco. This proprietary software provider changed their licensing terms on a whim, and I watched as the entire kernel team had to drop what they were doing so they can write around BitKeeper and develop Git. Talk about impractical! Yes, short term, it was more practical to use proprietary software, but long term, it was actually very impractical. Ultimately, they were better off for it, because now they're free, and no one can jerk them around again. Long term, the most practical thing would have been to insist on only FOSS from the beginning. That's exactly what RMS has been saying all along.

I was also persuaded by RMS' argument about the moral dilemma of "helping your neighbor." I thought of all the times I'd tell a friend, "hey, you gotta hear this band!" or "check out this software!" but if I wanted to share it with them, I'd have to break the law. So I was forced to choose between two moral choices, one of helping a friend, and the other of being a law-abiding citizen. I can avoid this dilemma by using only FOSS and Creative Commons content. I find it tends to be of higher quality anyway, once I get used to it.

GPL vs. BSD doesn't seem like a big deal to me, but I definitely see the drawbacks to BSD when I look at companies like Apple taking all this great code and locking it down, not contributing their innovations back to the community. But that was the licensing choice of the creator of the original software, so they obviously think it's okay. I just wouldn't want my own software to be treated this way, and I'd prefer to support software that can't be treated this way.

I like copyright, but agree with RMS about some of the ways it's abused. I believe each artist or creator has the right to choose what to do with their own creation, but there are limits. There are already limits to copyright. I just don't think there are enough.

RMS does sound like a religious fundamentalist, which I think is more a limitation of his leadership and social skills than of his philosophy. His rants make it sound like you're either with him or against him, but this is no more true than for any other free software advocate. I didn't care for much of what Eric Raymond or Linus Torvalds said, but I didn't feel like I had to in order to appreciate other things about them. Try not to let RMS' poor social skills or your disagreements with him blind you to all he's done for the FOSS community, or stop you from agreeing with him on some of what he says.

Ford said...

I see what you are saying, and to a point I can agree with you.

Ps: apple has contributed back. Webkit, hfsutils, and various other improvements. They've also done things like clang and llvm development which was all given back to the community. Notable places where they did not give back were x11, and bsdutils (many of their changes were never released to the public). It's a mixed bag so to speak.

Jacob said...

You are wrong about almost every area you talk about. Many of the programs you would call "Open Source" like Firefox, GIMP, GNOME, OpenOffice, are actually Free Software (it even states itself as such in the license). The difference you are referring to is the difference between Copyleft Free Software and normal Free Software (both are also called Open Source).

The idea behind restricting a distributor (only a distributor, if you modify a program for personal use you don't have to supply source code) from making the software proprietary is the same reason we made murder illegal. One person should not be allowed to exercise the freedom to take away another person's freedom.

Jacob said...

Also, Mac OS X uses a lot of GNU software, I would argue more GPL than BSD, but there's no knowing, OS X is proprietary.

Kevin Benko said...

Well, I agree that RMS is a bit of a zealot, and his philosophical position on free software is but one facet of his larger worldview. Nevertheless, I think that whether we agree with him or disagree with him, RMS, and his position, are necessary. RMS keeps the dynamic flowing between free software and EULA-ware, and if it were not for the existence of both RMS and anti-RMS, then Linux (ack! GNU+Linux!!!) would not have evolved as is has, if ever.

For the record:
I use Linux exclusively. I use the proprietary Nvidia driver, I use the Opera browser, and I have proprietary games, via WINE, on my computers.
I am also a firm supporter of the free market and philosophical anarchism.

[I'm not sure who the anti-RMS would be]

Ford said...

@Jacob: will show you some of the opensource software used in OSX, the rest changes per release of OSX, and is available through various apple websites.

the majority are GPL/MIT/BSD and Apple Open Source License.

NuclearPeon said...

You say software is like literature and art, but I strongly disagree.

Software is logic implemented so a computer can understand and utilize that logic to achieve desired results. It's basically number-crunching data and interacting with hardware. Some things you'll notice:
1) Has a real-world definable purpose
2) Is not unique (math and logic are absolute)
3) Software is wide-spread and many lives depend on it

Art on the other hand is basically expression of creativity, therefore:
1) Has no definable purpose, different things for different people. Does not perform work in the same respect.
2) Is unique and therefore has value in its rarity
3) No one died from not seeing enough art.

You could argue that with digital art, it is no longer unique, which is true. Also it's why licenses exist such as the creative commons to prevent unauthorized distribution. And it's why RMS does not advocate that people modify other people's images on the internet. Strictly he advocates for software-only, although he many other political arguments that I do not feel relevant to this discussion.

Since you mention states, I'm guessing you are referring to the US. Keep in mind not every country works that way.

I'm in favour of more regulation of business but smaller and more efficient government. And I have some issues with RMS, but I still think his position on software freedom needs to be black & white, and is accurate and beneficial.

One reason why you shouldn't be allowed to close up your code is because it's logic and math. Where would we be if Pythagoras refused to open up his triangle-based logic? There are so many things we take for granted. As for it being a crime to not allow derivative works, if your software is truly the best for the situation, should it matter? Of course we all feel attached to our code we produce, and there's pride in what we do. But if people treat their kids like proprietary software, they grow up screwed in the head. Do you want your code to not achieve it's potential? That aside, if you don't want to release it, you have the freedom not to. But RMS is saying you shouldn't entrap people by making them use it and not having source code available in case the worst-case scenario comes to be. Just like all those trojans affecting M$'s software on industrial scata systems. This is about the long-term goals and results. Not "make money today, screw over a generation tomorrow".

Sure, people should have a right to make proprietary software and keep their stuff closed. Just as they should have a right to make the choice to hurt others and intervene with progress. Obviously we are not going to make the best choices 100% of the time and we shouldn't be condemned completely for mistakes we inevitably make.
I work for a company that makes somewhat proprietary software. I don't like it, and I'd prefer to make money in a more ethical way. It makes our job much harder to manage licensing AND try to do our jobs.

I don't mean to come off too harshly. Your rant poked a few buttons of mine; Your attacks on RMS calling him a religious zealot are unfounded and plain FUD in my eyes. I like previous articles of yours, so this isn't merely a flame war (I hope). I just think your position is misplaced because you aren't seeing things for how they are.

It may be a battle of developer versus consumer, but it shouldn't be a battle at all! Giving developers too much control means consumers get screwed, and vice versa. I'm sure you can see that. RMS wants them to work together -- GPL doesn't mean no cost software; he wants a more ethical payment structure (and good ones he has made) and obviously he's going to piss people off with his stance. But that's the price of freedom and I stand by him.

He isn't socially adept, and neither am I. But he has done a great deal to prevent Micro$haft from forcing us to a lifetime of insecure, expensive software. For that I am grateful.

The Casual Vegan said...

While I basically disagree with most that you wrote, I have subscribed to your blog. Working through the reasons why we believe is an important step many people never take.

Instead of comparing software to music or art which leads to grand parents being sued by multi-national corporations, let's consider the fashion industry.

Fashion for those who don't know is free and open-source. You can "steal" any design you want and make a profit of it without crediting the designer with the design! Bastards! Patients don't apply to clothes because the Supreme court feels (In over simplified layman's logic) that giving someone the power to patient your shirt might prevent you from being able to dress yourself functionally.

Yet, Fashion does NOT suffer from a lack of innovation. The rich are still getting rich off the backs of the poor. The designers are still making billions from their unique designs. In fact, fashion design has progressed more quickly than other areas exactly because you're forced to innovate when anyone can copy you.

A Gucci is still a Gucci even when the $50 K-mart copy is identical. Software should be free and so should art, music, math, and fashion. Call me a Star Trek dreamer if you wish. But we will make free software possible for everyone, for every need, everywhere in the world.

kenholmes said...

@NuclearPeon, you wrote "Just like all those trojans affecting M$'s software on industrial scata systems." Did you perhaps mean "accepting" and "SCADA systems" If so I completely; if not I am not sure what you meant.

@Ford, I refer you to

Ken Brown refers to open source and hybrid source software, matching your free and pseudo free software, although his take is rabid compared to yours. I hope you will look how he frames his arguments and his conclusions.

I can tell you have given though to these things and I believe you will do well to continue to think about them.

Ford said...

I can say similar things about artwork. Artwork is merely geometry, trigonometry, calculus, and color theory being applied to certain ratios known to be inherently attractive to humans. In this sense, it becomes a science. Programming is easily an art form. Think of video games, UI designs, and so on. The efficiency of a certain program can be considered art work. The way in which one chooses to accomplish a task can be very artful. Would you say that a chair is merely wood bolted together to make a suitable sitting place?

Post a Comment