Free Philosophy: Part I The Beauty of Doubt

来源:互联网 发布:通信达的主力抄底源码 编辑:程序博客网 时间:2024/04/30 13:39

Free Philosophy: Part I

The Beauty of Doubt

By J. W. Pennington


Nearly every article that I have read in The Linux Gazette has been technical and/or practical, so let me apologize if this seems a bit "off topic." I am primarily an anthropologist, and as such have always been a bit more inclined to write about things more generally. Instead of the technical and practical, I want to wax philosophic for a bit on the subject of free software in general, and the Linux kernel in particular by "porting" a bit of my philosophy of life to the computer. I have tried to write these articles for both the newcomers to the Free Software Community (FSC) as well as for those who have been around a lot longer than I. I will not waste time on the definition of free software except to say that it is free as in freedom. For a definition, I would have the reader visit the GNU/Free Software Foundation website. The few facts that I intend to present will only be news to those unfamiliar with free software, while the philosophy- at least as seen from my vantage- will probably be new to all. My idea is to present what for the lack of a better term I call The Four Cornerstones to the Foundation of Free Software. These are the four main things that I consider vital to the Free Software Movement (FSM) in general, and to the Linux kernel in particular. They are, in no particular order: Doubt, cooperation, non-control (read: Freedom), and rebellion. I have chosen to break these up into a series, because it would be a bit long as one article. In each case, I will give an explanation of what I mean by the idea and an example of how it pertains to the FSM. I also offer the opportunity for discussion/argumentation if anyone cares to explore "Free Philosophy" further. To those few I invite the use of my email address at the beginning of these articles.

The first cornerstone that I will discuss is that of doubt. It is a very powerful and useful word, unfortunately, doubt has gotten a bad rap for no-good reason. When one thinks of doubt, they are almost certainly consumed with thoughts of lies, fear, and uncertainty. It is a dark word, and one that we rarely use in association with someone or something that we love. This is wrong. I believe that doubt, often pure, serious doubt, is absolutely necessary for any true love and exploration of a subject. I also think that if it were not for doubt- and the admission of self-doubt- we wouldn't have free software.

The FSC has a large share of doubt, and this has been one of its main strengths. We doubt that software will work properly, we doubt that it will work at all. We doubt that the code was written efficiently, we doubt that it couldn't be better. Most importantly we doubt that we, ourselves, have written it the best way it could have been written. This doubt, about our product and about ourselves, is the main strength of all free software. Do not misunderstand me on this point. I am in no way suggesting that we are "suspicious" of every program that we use, or that we build binaries expecting them to fail. What I am suggesting is that we do not consider the program "complete," in the sense that the code is unable to be improved or changed.

I'll give you two scenarios to illustrate my point:

Scenario one: I'm a guy who has been programming since I was twelve. I know that I'm a damn good (if a bit arrogant) coder. One day I finish a big program that is my masterpiece. I cried when I compiled this baby. Hell, I almost got divorced because of it! I have no doubt in my mind that this program is perfect! I would immediately punch anybody who said otherwise. So I market it. I box the binary and I ship it, knowing that I'm going to be the next Bill Gates. Soon, I find out that I am the next Bill Gates, after a fashion. My program locks computers from here to New Jersey. Not all of them, mind you, but enough to hurt sales and make people wonder. The bad thing is that I can't figure out why. Certain people didn't like it in the first place because it's big. Now, nobody want's it because it's big and buggy. Even though I tested the hell out of that program.

What I don't know is that some geek in Indiana has figured it out. He has two computers, and the program only crashes on one. It's the Pentium II with the BX chipset on the motherboard. It also crashes his friends LX chipset computer. I have a Pentium Pro, but everyone wants a Pentium II these days, and they all want that extra speed on the board. Suddenly people start realizing that my product (and probably my programming) isn't worth its salt. My masterpiece has failed.

Scenario two: Same guy, same program, same long fight with his wife. Is very sure that his program is perfect, but has just enough doubt (read: wisdom) to know that there is always somebody better. He has just enough doubt to realize that a program can be written in so many ways that his chances of using the best one in this situation are not 100% and his chances of using the only good one for every situation are pretty near 0%. So he offers his product as free software. He gives everyone the right to use it and modify it, hoping that no-one needs too, but knowing that many will do so anyway. Unfortunately, the program creates a nightmare for him by crashing every computer from here to New Jersey. In this scenario, however, there's a geek in Indiana who figures out the problem and writes a patch. Within weeks the patch has fixed the problem, and within months his program is ported to Alphas and Macs, something that he didn't even consider. His program is a success because he realized that he wasn't the one and only "God of programming." He had just enough doubt to temper his delusions of perfection.

Granted, this is a very simplistic situation, but it does highlight my main point. A lack of doubt, in every situation in life, leads to problems. Admission of doubt allows the possibility of another option, it is an opening, of sorts, to different ideas. To have absolutely no doubt is to become fanatical, and when one becomes fanatical, all options- all doors- close. All possibilities for change, or consideration of other methods are destroyed. Ironically, the fanatic's love for a subject eventually becomes its downfall. In the long term, and more radical situations, the very subject of the fanaticism is itself destroyed, because all thought that improvement or change could even be necessary are anathema to the fanatic's beliefs. Eventually, the subject of the fanaticism becomes something wholly different, and often counter, to its original purpose.

It's easy to see this closing of doors, options, and thought by looking at the worlds of politics and religion. It is also easy to see by looking at the world of proprietary software. Corel recently released its version of WordPerfect 8 for Linux, and has since been touting that the Linux community has a "desire for proprietary software," both on it's website and in the press. The company is so sure that its product is perfect, that it is just what the Linux community wants, that it was patting itself on the back just days after the program's release. I can only assume, knowing what I know about people and bureaucracy, that it laughs at any notion that the majority of the Linux community could possibly be silly enough to consider its program big and buggy, despite all the evidence to the contrary. The fact that, in the Linux community, "proprietary" is often a derogatory word, has never crossed their minds. My prediction is that they will continue to measure their "success" by the number of downloads, and not by the number of people who continue to use it on a regular basis. I suspect that many (myself included) downloaded it and almost immediately discontinued its use. The likelihood of a decrease in users is increasing because of good free software word processing programs and the continued growth in the appreciation of existing ones such as Emacs.

The FSC keeps doors open by holding on to that most important resource: Doubt. We are never happy or completely certain that something is "perfect," or that no-one else is able to improve on something. If it works, it is used and respected, but if someone, anyone, thinks that they could improve it- that's admired. We are also protected from the follies of proprietary software in another way. In the world of free software, KISS is the name of the game. The idea is often to Keep It Small and Simple (or my preferred version, Keep It Simple, Stupid). Here, the doubt is that a program that is a behemoth, with a lot of unnecessary fluff, is better than a small one which performs the same function, often more reliably. This is inherent protection from the delusions of grandeur that taint so many proprietary programs. Free software tends to keep its feet on the ground, instead of becoming the bloated dreams of a few hungry individuals.

Netscape recently learned of some of the benefits of the Free Software Movement when it released its code. Apparently, within days (perhaps hours) there was a group of Australian hackers who improved the code, increasing its security. This event was not only good for Netscape users, who have benefited from the increased security, but to Netscape as well. The company now has a better product to offer the consumers. The free software method offers a no-lose situation, and it guarantees success. The reason for this is the next cornerstone that I will be discussing: Cooperation. I will return next month to expound on that idea from the vantage point of my favorite linux soapbox.

 

-----------------------------------------------------------------------------------------------------------------

                                                     自由的哲学(一)- 怀疑的美丽
作者:J. W. Pennington

通常,在各大Linux网站所读到的几乎都是技术文章,所以在你还没开始读这篇文章之前,让我先说声抱歉,因为此文将会与技术性质文章有点离题。我本身的职业是从事人类学研究,所以我看事情通常都喜欢从再普通不过的角度出发。在这里我会尝试以较不同角度去探讨自由软件(Free Software)与Linux,并再加入一点我个人所谓的电脑生活哲学。除此之外,我希望在描写方面对于那些刚踏入自由软件社区(Free Software Community)的新手来说不会太难明白,而在高手们面前,也不至于见笑。然而,我将不会浪费时间去定义与及解释什么是自由软件(Free Software),但如果你想多了解多点有关于自由软件,欢迎到此网址GNU 工程与自由软件基金会(GNU/Free Software Foundation)参观。对于那些不熟悉自由软件的人而言,我所写的可能是新闻一则,但它在你对电脑的看法上-绝对是思想上的新的冲击。在此,我将会从四个点上出发,而这四点也可以说是 GNU 工程与自由软件运动(Free Software Movement)上的四大思想基础。它们分别就是:"怀疑"(Doubt),"合作"(Coorperation),"不受约束(自由)"(Non-control/Freedom),以及"反抗"(Rebellion)。我将会把文章写成两篇,因为如果集成一篇的话,将会有嫌于太长。在每个项上,我会以我个人的看法去诠释,并例举出它怎样与自由软件有关。当然,我希望大家千万不要吝啬于发表你的看法,如果你们对于-"自由的哲学"有任何意见,大家不妨说出来以作讨论。

第一项我将要讨论的是"怀疑"。"怀疑"是一个非常有力量与及有用途的一个词,但很不幸的,这个词总是予人一个不好的印象。每当你一想起它,你总会将之与"谎话","恐惧","不安"等等挂钩。这是一个负面的词,一般相信我们都不会用或很少用在所信任,所爱的人或东西身上的词。但这种想法是不对的。我个人认为在所谓真情来临之前,都必须经过一连串"严厉","纯洁"的"怀疑"考验。我也相信如果我们没有经过这些"怀疑"和"自我责省",我们就不会有今天所谓的“自由软件”。

在自由软件运动上,我们常常会分享大量的,一连串的“怀疑”,而这也正是成就自由软件的强大的因素之一。我们常怀疑这个软件是否能够正常运作,也常怀疑它是否能成事。我们常怀疑我们在软件源码编写上的,它所能够作出的效率,也常怀疑它是不是不能够再好。而最最重要的,我们怀疑我们是否正在用最好的方式去编写它。而这"怀疑',有关于我们自身与及我们的成果的"怀疑",也就是自由软件强大的因素。噢,千万不要误会我所说的。我不是建议你去怀疑每一个你现在所用的软件,或去编写一个不希望成功的软件。我所提出的是,我们并不考虑我们所写的软件是"完整的", 而不是自圆其说地说我们的源码已无法再作进一步改进了。

在这里,我将会针对"怀疑"这点,举例两个不同的个案去解释:

个案一:打从我十二岁那年我就开始编写程序。我认为我绝对是一个非常厉害,称职的程序编写员。有一天,我完成了一个举世杰作。当我成功地把它编译出来时,我高兴的哭了。而为此,我还和我老婆吵得差点离婚!毫无疑问的,这绝对是一个完美的程序!如果有人说它不是,我绝对会揍他一顿。接下来,我把这程序包装起来,推出市场销售。我知道我将会是另一个比尔盖兹。不久,当我的程序经过一番时尚之后,我发觉我真的成为了另一个比尔盖兹。从这里一直到新泽西所有运行此程序的机器都出现了问题。虽不是全部电脑,但已足够让企业蒙上损失,让人们好奇了。而最糟糕的是,我完全找不到出错在那儿。回想当初,已有一撮人因为这程序太大,而不太喜欢它。现在,更没人会问津这样一个充满漏洞的笨重程序,即使我多么努力的想办法补救。这时,有一个住在印第安的用户找出了问题所在。 他拥有两部电脑,但此程序只造成其中一部电脑有问题。而这是一架Pentium IV 电脑。相同地,他的朋友也拥有同样的问题在同型的电脑上。但此软件只仅在我那架Pentium III测试过。今时今日,每个人都希望拥有一架Pentium IV 电脑,每个人都希望他的电脑能跑快一点。因此,人们发觉我的程序(或我的编写功力)其实不是那么一回事。我的举世杰作失败了。

个案二:同样是一个人,同样是一个程序,同样是与老婆吵过架。也同样觉得他的程序是完美的,但是他有足够的怀疑(或解读为智慧)让他认为人外有人,天外有天。他有足够的怀疑让他认为一个程序可有很多编写方式,他的程序运用在这种型款的电脑上并不是100%好,而在各种不同型款机器上同时运行得很好的机率几乎是0%。就因为这样,他把此程序提供为自由软件。他给权利予每个使用者去自由地使用以及作出任何修改,他希望不会出现太多人需要修改,但与其同时他也知道将会有很多人会作出修改。同样很不幸地,这个程序也为他带来了噩梦,从这里一直到新泽西所有运行此程序的机器都出现问题。在这种情景下,同样地,一个住在印第安的人发现了问题所在,但不同的是,这个人这次对此程序作出了相对的补丁。而在一个星期之内,这个补丁解决了问题所在,而在接下来一个月,这个程序更能成功地移植到Alphas 以及 Mac 上,这一切都是编写此程序的人当初没料想到的。而此人的成功是因为他清楚地知道他并不是什么编写程序的“神”。 他只是拥有足够的怀疑去软化他对于他的程序完美的相信。

显然地,这只是一个简单化的情况,但已经突出了我想要表达的主题了。缺少怀疑,在生命中的每一个阶段,都会为我们带来问题。透过怀疑,我们被容许了其他选择的可能,而这也正就是融合各种不同的好想法的开端。如果缺乏了怀疑,就变得狂热与盲目,也就是自我关闭了选择的门。这将丧失改变的可能性,更别说到选择了。讽刺的是,狂热通常都会承受到沦陷。在时间逐渐逝去的情况下,狂热所带来的是自我摧毁,因为改变或进步对它们来说是一种诅咒。最后,它会变成一个你截然不认识的东西,甚至与你最初的目的背道而驰。

透过政治与宗教的世界我们可以很轻易地看到这种闭门造车的想法。而在商业软件的世界,我们也可以很明显地看到这种情况。Corel 在1999年推出其 WordPerfect 8 For Linux,认为此举绝对会招徕Linux社群的青睐。他们非常肯定他们的WordPerfect 8 for Linux绝对 是完美的,坚信这正是Linux社群所需的,躲在背后沾沾自喜。但真相就是,Linux社群的普遍认为,"商业"一词是具有贬义的,甚至从没出现在他们的脑海里。Corel往往以所下载的数目去衡量他们所谓的"成功",而不是去计算还有多少人继续使用。背后的真相往往就是,现实中的用户因为自由软件的迅速成长而逐渐减少,而随手沾来的例子就有OpenOffice, Emacs等等。

在自由软件运动(Free Software Movement)上,我们的思想门户是随时为"美丽的怀疑"而打开的。我们决不会完全肯定一样东西是“完美的”,又或者没有人可以再改良它。如果这程序是可行的,它将会受到一定的使用与尊重。但如果有人认为他可以再作进一步的改良,这将是非常受欢迎的。在自由软件的世界里,KISS就是它的准则,意指:"让它保持小而巧"(Keep It Small and Simple)。在这里,我们怀疑一个外表华丽的巨兽,是否好过一个能作出同样功能,稳定的但却更小的自由软件。这就是自由软件一直以来的沿用的保护,用以远离“完美的自满”的腐蚀。在软件的世界,自由软件在走的道路上是一步一脚印地,而不是自个儿发饥饿的浮华梦。

早在1998年,当Netscape 公开其源代码时,就体会到其所带来的好处。 明显的,在其公开源代码几天之内(或许几小时),就已经有一组来自澳洲的黑客帮他们修改源码,增加其安全性。这不仅是用户受惠,而Netscape也从当中受益。很明显地,在自由软件世界里我们总看得到双赢的局面,看到它披荆斩棘,一步一步地迈向成功的道路。而这里所谓的"合作"(Coorperation),也将会是我在另一篇所要讨论的。

原文来自:http://www.linuxgazette.com/

Copyright 1999, J. W. Pennington
Published in Issue 37 of Linux Gazette, February 1999

-------------------------------

 中文原文:http://www.linuxbyte.net/view.php?skin=art&ID=3592