在 Forge:为什么选择 Linux?

作者:Reuven M. Lerner

打开香槟庆祝吧!本月,《Linux Journal》庆祝其第 100 期发行,我决定暂停探索开源 Web/数据库技术,加入庆祝行列。

Linux 用户(以及开源软件的倡导者)有很多理由感到高兴。尽管高科技经济不景气,但开源软件的开发仍在以极快的速度继续进行。《Linux Journal》首次出版时,很少有人听说过这位芬兰学生创建的免费操作系统。如今,许多人都听说过 Linux,即使他们不了解它是什么,或者它能为他们做什么。

事实上,虽然我的许多客户都知道我推崇开源解决方案,但他们总是好奇我想知道我为什么偏爱它们,更重要的是,为什么选择这样的解决方案也符合他们的利益。因此,冒着对皈依者说教的风险,本月的专栏回顾了 Linux 成为构建服务器端应用程序的优秀平台的几个原因。我希望我在这里提出的一些想法将有助于您在未来的岁月里向您的同事和客户宣传免费软件解决方案。

成本和稳定性

黑客对教授新技能和观点的技术和工具感兴趣。但在现实世界中,人们有兴趣尽可能快速且廉价地完成工作。软件是一种达到目的的手段,而不是目的本身。

因此,我发现向人们推销开源软件的最佳方式是说它做得更多,花费更少。这两个因素中的任何一个本身都不够;很容易找到昂贵、高质量的软件,安装廉价、低质量的软件毫无用处。作为消费者,我的客户总是渴望花更少的钱获得更多,而免费软件在这方面吸引了他们。

当我向客户推销解决方案时,我首先解释说我正在为他们提供他们可能认为不可能的东西:廉价的软件,可以做他们想做的事情,而且不会崩溃。当我向 Windows 用户解释说,在我运行数十个系统的六年多时间里,我还没有见过 Linux 系统崩溃时,他们感到震惊和难以置信。当我告诉他们这款软件可以在互联网上免费获得时,他们更难相信了。

我的客户经常想知道谁在支持该软件,以及如果出现问题会发生什么。他们很高兴听到我不仅可以为他们提供他们需要的支持,而且如果他们不认可我的工作,他们还可以从其他地方寻求支持。当然,这与许多咨询公司对软件安装的态度和限制形成了鲜明对比。因此,开源方法比传统的软件模式对消费者更友好,降低了成本并鼓励了竞争。

当然,并非所有免费软件都是高质量的,也并非所有顾问都真正了解自己在做什么。社区开发过程可以产生出色的结果,但这并不意味着互联网上发布的所有内容都保证安全稳定。事实上,很明显,许多程序,包括一些流行的程序,都是在没有任何测试的情况下上传的。这些程序给整个开源社区带来了坏名声,而且往往弊大于利。每年几次,客户打电话给我,让我修复他们下载的程序,这些程序最初运行良好,但最终证明自己是不安全、不稳定或充满错误的。

修复错误

即使您发现您的服务器依赖于一个充满错误、不安全的开源应用程序,一切也并非都完了。这是因为免费软件的性质确保您可以修改它以满足您的需求,或者在出现问题时修复它。这样,共享源代码许可证允许用户查看源代码,但不允许修改或修复源代码,就错失了重点。购买房屋或汽车使您有权自行修理;为什么软件应该有任何不同呢?

诚然,共享源代码许可证确实意味着更多人会查看代码,因此安全性和稳定性问题将更快地被识别和修复。但是,能够阅读源代码远不如能够改进源代码重要。此外,将这些改进反馈到社区版本意味着每个人都将从您的调整中受益,并能够进行进一步的改进。因此,为社区进程做出贡献符合每个使用开源软件的人的利益;这不仅仅是一件好事。

因为我倾向于使用成熟的工具,如 Linux、Apache、Perl 和 Python,所以我很少发现我下载的软件中存在错误。但是,每年几次,我都会发现我使用的软件中存在问题或限制。访问源代码保证了我可以尽快启动并运行,这也意味着其他人不必遭受我已修复的错误。

具有讽刺意味的是,考虑到与打印机驱动程序类似的问​​题促使 Richard Stallman 创立了自由软件基金会,其 GNU 项目对于 Linux 和自由软件的成功至关重要,我今天仍然可以使用这个论点。令人惊讶的是,我们如此迅速地习惯了拥有可用的源代码,并且能够检查或修改我们计算机系统的每个部分。

同样,Linux 系统往往“电池已包含”,借用 Python 世界中的一句短语。我最近开始了一个将在 Solaris 上部署的项目,我很快就记起了典型的 Linux 发行版与标准的 Solaris 安装相比,是多么的丰富和储备充足。诚然,我可能要花上半天的时间来下载和安装 gcc、Perl、Python 等等。但是在 gcc 在我运行的每台机器上都可用的几年之后,感觉我好像被扔回了 UNIX 的黑暗时代。

没有秘密

工程师非常不擅长保守秘密,正如 Scott Adams 偶尔在他的呆伯特漫画中指出的那样。事实上,开源软件吸引我的原因之一是它没有秘密。客户聘请我是因为他们想节省时间,或者因为他们缺乏特定领域的专业知识,而不是因为他们被迫这样做。因此,我倾向于将自己比作律师或会计师,他们都根据可免费获得的信息提供建议和文件。

这种“没有秘密”的理念往往与我的客户相处融洽,包括那些对了解软件如何工作完全不感兴趣的客户。他们知道他们可以问我问题,我会尽我所能给出最好的答案,而无需躲在营销炒作、强制更新或含糊其辞的背后。当然,我的技术客户喜欢知道他们可以深入研究代码或阅读文档;阻止他们了解我知道的事情的唯一因素是时间和经验。

我的非营利客户在许多方面是开源软件的完美受众,他们经常对使用此类工具的可能性感到兴奋。特别是,我发现教育机构喜欢信息共享和社区参与,无论是在软件领域还是在生活的其他领域。告诉他们他们既可以省钱又可以参与志同道合的人的社区,这是一个强大的组合。此外,非营利组织通常没有动机将变更保留在公司内部,这意味着他们可以更轻松地参与开源社区。

高质量的工具包

当我第一次开始为《Linux Journal》撰写这个专栏时,大多数服务器端 Web 应用程序都是手写的 CGI 程序。仍然有大量的网站使用此类程序。但是,随着 Web 变得越来越复杂,人们已经要求使用工具包,以便在短时间内更轻松地开发高质量、可扩展的 Web 应用程序。许多专有软件公司已经填补了这个空白,这不足为奇。然而,令人震惊的是,他们为他们的软件要价多少——出售的条件是必须聘请他们的顾问来定制它,然后是强制性的服务合同。

幸运的是,开源世界已经做出了回应。许多开源工具包可以用于创建复杂的服务器端应用程序。正如我们在最近几个月看到的那样,Zope 是一个出色的(如果很复杂)应用程序服务器,可以创建连接到数据库和其他信息源的 Web 应用程序。下个月,我们将开始研究 OpenACS,它旨在使在线社区系统易于构建和修改。此外,诸如 mod_perl、Mason 以及 Apache 软件基金会赞助的众多 Java 和 XML 相关工具等环境越来越意味着,找到合适的工具可能与安装和使用它一样困难。

但是,尽管这些工具包很棒,但我们必须记住,并非所有人都会被说服。我在这一方面最深刻的教训是去年,当时一位潜在客户决定不聘请我创建一个简单的内容管理系统,用于为 Web 制作产品目录。我被告知我的报价比最接近的竞争对手低 80 万美元。然而,因为我使用的是开源软件,而竞争对手是内容管理领域的知名品牌,所以我输了。(自那以后,该客户经历了一轮裁员和季度亏损,他们的网站似乎仍然是手工管理的,所以至少我赢得了一场道义上的胜利。)

我们还应该记住,并非开源领域的每个参与者都可以信任他们会兑现对社区的承诺。许多开源倡导者感到惊讶和失望的是,Lutris 去年停止了其开源 Enhydra 企业 Java 应用程序服务器,将其转变为专有产品。幸运的是,还有其他替代方案;不仅 GPL 许可的 JBoss 应用程序服务器在过去一年中人气急剧上升,而且 Sun 最近明确表示,非营利性开源 J2EE 实现将能够在未来几个月内获得官方认证。这应该有助于进一步减少一些企业与开源软件相关的耻辱感。

但是,即使您遭受挫折,也不要被愚弄:正如 IBM、HP 甚至 Sun 现在承认的那样,Linux 和开源软件功能强大、稳定,应该认真对待。“世界统治”尚未到来,但品牌认知度、财务现实以及来自学术界和商业实体的钦佩都在帮助我们前进。

生日快乐!

我将在本专栏的结尾向使这本杂志成为可能的辛勤工作的工作人员致敬。在开始撰写这个专栏之前,我阅读了《Linux Journal》将近一年,并且我每个月收到邮件时都会继续阅读它。这些文章始终如一地反映了地球上一些最具创造力的软件开发人员的多样性、复杂性和兴趣。

《Linux Journal》现在已经发行了 100 期,这一事实应该毫无疑问地证明,Linux 和开源软件将继续存在。我希望在第 200 期纪念版问世时写一篇类似的文章。

电子邮件:reuven@lerner.co.il

Reuven M. Lerner 是一位专门从事 Web/数据库应用程序和开源软件的顾问。他的著作《Core Perl》于 2002 年 1 月由 Prentice Hall 出版。Reuven 与他的妻子和女儿住在以色列的莫迪因。

加载 Disqus 评论