技术开发 频道

编程语言不需要开源

  不是。

  历史已经说明了为什么开发人员、企业和其他用户使用或投资于一个有专利权的编程语言是不会有任何问题的。回首上世纪九十年代,当时对于各种形形色色的企业开发来说,最流行的一种语言就是Visual Basic(VB)。而整个的VB生态系统都是受微软的管理、控制和规划。

  尽管受完全的支配,各公司们仍然投入了成百上千万美元来开发VB软件(数亿?)。这些公司愿意投入这么大的资金,是因为他们从这类软件开发里看到了巨大的价值。

  开发人员需要向微软购买开发工具,最终用户需要支付微软Windows许可费。大多数情况下,跟微软其它产品相连接的VB应用程序会负担更多的许可费。所有的这些可以总结为是一个成本/收益的评估,开发和部署VB软件显然是一个不错的正确的选择。

  那时以后,Visual Basic开始向一个全新的、非完全兼容的方向发展:Visual Basic .NET。这一直是微软的要将它的开发系统向.NET转移的计划中的一部分。这会给开发工作增加一些成本,但过去开发的VB软件仍然可以在这个平台上以一种向后兼容的模式运行,只需要做一些微小的改动。

  把软件向.NET平台迁移显然会造成新的可能非常大的代价,但微软投入了巨大的人力物力来使这个平台向后兼容,使这个Windows生态系统避免了这些迁移成本。

  对于微软来说,Visual Basic和它的开发系统是使Windows平台上出现这么多有用的软件的一个非常重要的因素。它因此带动了Windows许可证的销售。鉴于此,他们创立了MSDN,这也成了开发人员技术支持和开阔视野的圣地,获得了无人可及的成果。

  通过这种语言、这种程序以及它与数千万Windows程序员之间的联系,你可以看出,今天的软件开发者明天将继续使用这种语言。对于微软来说,有一种很现实的商业需求促使他避免和这些开发人员疏远。

  相对于微软,Oracle处在一种不同的情形中。当他得到了Solaris,他把它当作他的整个数据库销售策略中的一个组件。Oracle并没有打算把Solaris开发成一个独立的平台,也没有打算创立一个像MSDN一样的东西来帮助程序员为这个平台开发程序。

  他对Java的推动和发展将会围绕着这种语言,而不会把它当作Oracle其它产品的一种支持产品。在他还没有明确的对于Java的未来的商业计划之前,他会走Sun所选择的道路:为各种环境认证Java虚拟机(JVM),包括其中的Java运行时环境(JRE)。如果Oracle不打算接受开源实现,那所有现存的JVM和JRE都必须来自Oracle和他的授权者。

  这就意味着Oracle有了资金来源,而另一方面,所有的用户将需要为运行Java软件而支付费用。

  微软通过它的应用程序运行环境 — 微软Windows操作系统 — 创造出来巨大的商业成就。各种公司为此付费已数十年之久。

  当Oracle可以用Java运行环境敛财时(通常会隐藏到硬件或操作系统成本中),我没有感觉到他会对Java环境强征补偿性的许可费。Oracle一点都不傻,他会努力的让Java保持在一个有效的开发战略上。开发和部署Java软件现在是、将来也会是企业们最可行的选择。

  为了进一步说明这个观点,设想如果一个企业想通过不支付Java环境费用来“节省成本”,这意味着它要迁移到另外一种语言(假设今天大部分的企业都在使用Java)。这种迁移的成本,包括培训费,聘请专家,完全重写应用程序和工具组件,来回的测试,最终的部署,这些很容易就使成本超过了继续使用Java开发和部署的成本。

  正确的做法是不要担心Java是开源还是具有专利所有权。不要理会如今发生在新闻界的讨论。它跟你的商业需要和长远的企业软件生态健康没有关系。

  此博客由Greg Stein发表

  Greg是Apache Subversion项目的管理委员会成员/理事,副主席,副总裁。Apache软件基金会的前任主席。他由于在版本控制系统(包括Subversion和WebDAV)的工作而广为人知,Greg最近在Google做技术管理工作,他在Google启动了Google Project Hosting项目。他目前关注于与许可认证,开发工具和社区建设等相关的事情。

  [英文出处]:Open languages are not required

0
相关文章