开放源码阵营加入Microsoft.NET利大于弊
开放源码阵营加入Microsoft.NET利大于弊 最近,开放源码阵营传出要根据尚在草拟阶段的欧洲计算机制造商协会(ECMA)标准,建立一套开放源码版本的Microsoft.net,此一消息曝光后让开放源码阵营的人一阵哗然
。GNOME的原创者之一Miguel de Icaza公布了Mono计划。GNOME计划最初的目的是希望提供标准使用者接口与接口数据库,让开发人员得有撰写程序的依据,并藉此提升Unix在桌面软件的竞争力(类似Windows开发人员使用的Win32接口)。
GNOME和KDE是UNIX平台上两个相互竞争的标准使用者界面,这种情形在Linux上更是如此。而Mono计划的目的则是希望利用现行开放源码技术,让UNIX开发人员得以安装功能丰富的.NET开发平台,使得他们在Web服务领域上能更有竞争优势。以下透露了Mono的内幕消息,并探讨它对开放源码阵营及微软的意义。
何谓Mono计划
Mono是透过开放源码原则与技术,在Linux上安装.NET开发平台。微软的.NET开发平台包含一运行时环境(提供垃圾收集、线串)、虚拟执行系统、完整的类别库(.NET架构)、一套新语言(C#)以及一组语言规范(即CLS,通用语言规范)组成;CLS可让任何编译器厂商产生同一平台上与其它语言兼容的class与程序代码。为了促进.NET开发平台的普及度,微软把C#、runtime以及产生CLS-兼容工具所需的元数据(metadata)提交给ECMA进行标准化。
具有讽刺意味的是,SUN当初也曾向此一标准机构提交Java,但后来发现一旦经过ECMA认证,SUN就无法主控标准化过程,因此他们便撤回原提案。你可以在.netEXPERTS上获知ECMA提案的详细内容。
Mono的各个组成元素将包括一个C#编译器、虚拟执行系统、.NET类别库,以及视觉开发工具。利用现有GNOME技术,将可大幅加速Mono的实施。GNOME架构组件只需稍微修改,便可套用大部分的.NET类别库,无需重新大规模的编写程序。此计划最有意思的地方就是:只需利用现行经过GPL(通用授权协议)授权技术,以及在GPL协议下所开发新的技术(如C#编译器),任何人皆可以自由扩展和升级这些技术。在非微软操作系统中安装.NET开发平台将更能使开放源码、分享开发构想的精神发扬光大。而这点也正是开放源码阵营有所歧异之处。
开放源码阵营的正反意见
观点1:对开放源码运动有害
开放源码阵营对这项消息各有正反面解读
。Mono计划一旦实施后,使用者就可以用C#(或者Mono中任何与CLS兼容的开发语言)撰写应用程序、在Linux(或者任何其它有GNOME类别库的操作系统)上进行测试、然后用于Linux或者微软平台上。而这正是开放源码支持者所担心的。由于微软投资了数十亿美元来提升.NET操作系统下的.NET架构,许多开放源码人士认为Mono宛如另一个快捷方式,方便GPL开发人员将其程序转用在微软平台上,Java与Linux反而被排挤到一边。他们同时还担心微软会建立强制连结至HailStorm服务(例如Passport),强迫那些开发Mono的公司必须将应用程序移至窗口环境下才能正常运作。大多数持有这种看法的人士皆认为只要有利于微软者必然对开放源码有害。
观点2:对开放源码运动有益
但另外有许多开放源码的拥护者责任为这是个绝大的开展机会。首先,他们认为若.NET架构能以GPL为基础,并遵循ECMA标准的话,微软在考虑扩展标准,或实施像HailStorm这样的服务时便能采取一种与操作系统无关的公正姿态。他们同时也认为这正可搭上C#及.NET类别库培训和支持的庞大市场潮流。如果Mono计划严格地遵循ECMA标准,那么培训课程、书籍以及各类支持在Windows上执行C#和.NET类别库的相关补充教材都将有助于开放源码人员在Mono上开发各种系统。
而支持Mono的人士则认为Linux以及其它技术(如GNOME)正可趁机进军目前使用微软的企业市场。理论上,原本使用Windows作为开发平台的企业可选择Linux上作业,避开微软服务器授权费。这些人认为,越多程序设计师支持Mono计划,.NET运用在Linux上将比微软开发于Windows来得强。果真如此,微软届时便不得不承认开放源码的力量的确有助于系统技术的开发与最佳化,善哉Mono计划。