解密开源代码Demystifying Open Source

当然,开放源代码有它的好处,也有它的挑战。

一个就是,某些项目的动力是不能保证的。 “开发团队有时感兴趣的是技术先进,不是商业,”Gesmer Updegrove LLP的合伙人Andrew Updegove强调, 该公司是Boston一个代表超过65家标准制定团体的法律事务所(http://www.consortiuminfo.org)。 “因为对于用户的友好也许报以态度冷漠,那在现实商业中的采用可能是一个挑战。 此外,这完全是一个志愿者的努力,所以对于真正最终的用户并没有一个预先存在的维护设施。”

确实,某些领域的开发工作可能会踯躅不前,这是寻求支持时的一个风险。 看看IVR(Interactive Voice Response)应用或语音浏览器的开源工作,最近的更新可能是两年前的了。

可是另一面,协同计算的基础设施工作汇集了大量的工作和能量,永不停滞, 以Linux内核开发为例,全世界超过750,000人曾卷入。

CIO、CTO或其他人想通过裁减开源软件用于商业特定的需要会冒随后没有支持的风险。 但也被广泛认可的是,最开放的项目通过各种论坛和协会有着最高级别的支持, 有些甚至超过了商业世界所能有的。 而且,开源制造商对自己所发布的软件、模块和操作系统提供全面的支持。

另一个常常错误的概念是开源软件是便宜的,甚至免费。 除非Web所发布的软件正是工程师想要的,否则freeware中的“free”有些用词不当。 然而开源代码可以95%不变,几万行中只需要调试或改变几行就成为一个大项目。

甚至Linux最大的倡导者也承认,调试代码比写代码困难十倍, 这也是为什么开源社区的项目头一次尽可能完全自己写。

然而这是目标,80:20的规则被开源项目放大了。 “软件开发的笑话是花20%的时间做80%的项目,然后再100%的时间去做剩余20%,” Brooktrout Technology的Burger说。

基于开源的开发表面上已成为调试和重新塑造代码的演练。 Linux上的开源应用必须经过调整才能用于Solaris, 或者针对Pentium处理器的软件需要裁减才能在PowerPC上跑起来。 这也就是说,厂家和运营商使用开源产品必须在他们内部对项目重新塑造。

“虽然开源可能使得完成一个工作需要更少的工程师,但却需要有闯劲的思想者, 能够迅速进入开源代码,并且在失去软件发布和技术支持时能够排除风险。” Acterna的Le Foll说,它承认在向开源软件转移的时候,需要做巨大的改变。 “我必须改变研发队伍一半以上,这里有很多挫折, 因为一些人就是不能在这种模型下工作。”

“由于这么多电信公司都是‘电话网上在线收款机’, 所以已经有很多程序员在维护计算机系统, 你只需要几个高水平的人就可以实现开源的好处。 当然你也必须愿意为这个工程付出代价。”Burger说。 他相信缺乏商业特定的应用问题将会得到解决: “最终,终端用户不需要买操作系统,他们买应用。 所以如果大多数开源应用是‘校园级代码’将会成为妨碍。” 可是,随着IBM、HP和Sun的日渐支持,这些代码会被刷新的。

随着SCO的诉讼,对授权和知识产权的关注也日显前台。

开源代码是在GPL(General Public License)协议下发布的, 所以GPL下开发的软件,修改是被期望贴回社区的。

在作为开源操作系统的Linux之上写应用程序是可以避开GPL的。 根据GPL方针,动态链接提供了几种方式不需要专用的应用放回开源社区。 有几种方式,归根结底就是动态链接使用开源代码。 可是,如果你修改开源代码,建议你将修改返回社区, 也便于继续金字塔式的开发。

“如果你创建了专用扩展,那么你保持它专用,这也是商业上有时既维护不同又采用开源的方式,” Burger说。“只是你卖给谁设备,你必须提供你使用的所有源代码。” 发给客户所有开源软件的代码,不论他们需要不需要,这是过去的情形。 “也就是说,家用路由器跑在Linux上,”Burger说,“你必须把Linux给用户。 现在是,如果客户要它,你才必须拿出来,否则没必要。”

虽然开源的这些要求对于设备制造商是有法律约束作用的, 对于在家中开发的人员实际上是没有约束的。

“在使用开源代码时,我们仅仅在应用层保持战略上的不同,”Unibill负责销售和市场的高级副总裁David Guggenheim说。 “我们也有一个提供开放源代码的计划,它不是一般的开源软件协议,并不是像Linux任何改变都需要传回开源社区。”

他解释道,“后台在得到对应用更多的控制,还需要保持区别。” 提供对源代码的访问能够克服计费和客服部门两个常见的问题: 一个是不同客户间的区别, 另一个是推向市场的时间太长,产品特征路线图必须在厂家和客户之间同步。

“我们想应用放在我们这儿,我们可以处理所有传统的计费任务, 而客户的重点可以放在IT资源和围绕其自身特点的开发工作上。”Guggenheim说。 风险就是客户的IT部门必须遵循一套原则保持与Unibill的产品路线同步。



©2004 CoreUp Designs