透明性同样重要
开源社区吹捧的优势之一是,您可以阅读源代码,并在需要时对其进行更改。现在老实说,我们有多少人会费心去看源代码呢?拜托,承认吧。是的,这和我所想的差不多。对于你们中 5% 真正阅读代码(或调整代码)的人,干得漂亮,但是,虽然我们大多数人并不生活在 C 语言(或 C++ 或在此处插入您最喜欢的语言)中,但我们确实必须配置、调整、扭曲、弯曲,有时甚至强迫代码以正确且有用的方式工作,无论是与我们的库还是其他应用程序友好相处。因此,开放也可以意味着透明。这是一件好事。
现在,我刚刚花了过去几天时间学习 Microsoft Sharepoint (MOSS)。是的,对于那些担心的人,我会在淋浴和喝一杯烈酒后恢复过来。为了公平起见,我不是程序员,也不是网站管理员。我做管道和配件。我可以构建盒子,加载代码并追踪泄漏,但当我看到代码时,我开始眼花缭乱。话虽如此,我确实维护了几个小型个人(非花哨)网站,并且刚刚读完关于 MOSS 的内容后,我只有一个问题 - 为什么 Redmond 的人们必须把它弄得如此复杂且不透明?
我使用层叠样式表和 perl 模板工具包的组合来统一我的网站(抱歉,当我必须学习文本操作语言时,python 并不存在,所以 perl 就是它,但 Smarty 为 python 做的事情与 TT 为 perl 做的事情相同)。但是在 MOSS 中,一旦你剥开各层,它就是 Visual Basic。而且也不是简单的 VB,至少从我读到的地方来看是这样。此外,MOSS 吹捧可以使用 SQL 数据库来存储其页面。好吧,我想我已经这样做了很多年了,因为我将我的页面保存在版本控制中(首先是 cvs,现在是 svn),并使用 TT 和 CSS 模拟 MOSS 复制“主页”并使其他页面看起来像它的能力。
它的“主要”卖点之一是 MOSS 是“集成”的,或者可以很容易地与其他 MS 产品集成,但是拜托,我不应该需要博士学位才能解释它。还需要另一个博士学位才能使其工作。你会认为,凭借开源社区展示的所有框架,所有“简单”的做事方式,Redmond 的家伙会吸取一些提示。
我有没有提到透明性角度?好的,这是一个简单的透明性问题。你如何备份这个烂东西?如果这是一个 LAMP 系统,你抓取目录并执行 MySQL 转储(或你最喜欢的 DB 命令)并 tar 打包整个混乱的东西(或其他任何东西)。如果某些东西坏了或者你必须恢复,你只需转到备份并砰的一声,(假设你有良好的备份 - 你确实检查过那些对吧?)你就恢复正常了。Redmond 的这个庞然大物产品并非如此。在许多地方,它告诉你,如果你想备份它,你必须基本上将代码保存在其他地方是安全的,因为内置的备份实用程序不会捕获某些自定义项。对于我为代码支付的费用,该软件不仅应该备份它,还应该给我一个带有跳舞女郎的逐步演练向导,而不是警告我“某些功能将不会被备份”。
在我们讨论成本时,我可能是最后一个真正强调成本的人,特别是自从它通常只占总项目成本的 10% 或更少,但它是很容易枚举的部分。我们在 Redmond 的朋友们有一个许可结构,需要 Daniel Webster 的精明才能弄清楚,并且需要 Rockefeller 的财力才能承担。Beelzebub 是否在微软的许可部门工作?这几乎让我怀疑有多少商店没有获得正确的许可。
在 LAMP 环境中,它非常简单明了。你需要螺栓,你就把它拧进去。几个面板?检查。甲板船体?焊接。与微软相比,开源经常被描述为一辆你自己组装的汽车(我会将微软描述为更像现代航空公司 - 座位五美元,毯子十美元,枕头六美元)。但我宁愿拥有透明性,知道我的泄漏在哪里,并且能够在系统崩溃之前阻止泄漏,而不是猜测下一次井喷将来自哪里。