作者: ZDNet China


7月20日专稿(翻译:李海)对于外人来说,Mono这个将.Net推广到Linux平台的开源项目背后的意图很难让人看懂。.Net 这个原本为Windows程序员设计的开发平台如何才能够为Linux应用程序编程服务?  

然而,经过三年的辛勤工作,创始人Miguel de Icaza终于将向Linux社区公布一点Mono开发工具的情况了。Novell去年收购了Ximian以后,Mono开发工作已归Novell负责了。对于开源社区的人来说,Mono可能不仅仅是一种新奇的东西。

Mono和微软的Visual Studio不同,它不是一种开发工具,Mono更象是属于微软开发工具底层的东西。就像是微软的C#语言,代码库以及普通语言运行时(Common Language Runtime)一样。

de Icaza借鉴了微软的一些技术,其结果可能让更多的程序开发员将目光转到其它操作系统上去,比如Linux。利用.Net中的通用虚拟机(Universal Virtual Machine),程序员可以有很多的语言选择。

在他那装饰有小猴子图案(mono在西班牙语中意为猴子)的办公室内,de Icaza向CNET新闻网站的记者谈起了即将发布的Mono 1.0。

问题:现在,Mono 1.0已经完工,它能够给我们带来什么新东西吗?

回答:哦,Unix环境是程序员的苦难世界。而Mono 1.0能够让我们在其它平台上开发软件,因为它是一种很先进的集成开发环境(IDE)。

比如,Novell就利用了Mono开发出了一种名为iFolder 3.0的东西,它和 Longhorn的WinFS功能有些类似,能够进行数据同步,备份等等工作,相当有意思。程序员们可以用C++编程,但不必在window环境下进行,或者也可以在window平台上用C#编写程序。当Novell 收购Ximian的时候,他们就准备让Mono可以适应Windows与 Linux两个平台。

因此,Mono现在可以用同样的工具基础支持Windows,Linux和Mac OS三种平台。 Mono能够让程序员更多的考虑编程本身,而不是平台问题。总之,Mono具有许多新的开发功能。我们Novell已经将Mono作为内部的开发平台了。

假设将Mono比作是一种接口技术,微软已经向欧洲计算机制造协会提交了类似的技术标准,那么你们如何跟上微软的步伐呢?进展怎样?

是的,Mono 1.0是在2004年年中发布,我们虽然3年之前就开始着手开发了,但微软早在1年半之前就已经推出了他们的产品,因此,我们是晚了。事实上,我们比微软落后很多,大约有18个月吧。但我们仍然发布了Mono 1.0,人们正在开始使用这种工具。

我喜欢Alan Cox说过的话,“自由软件总是晚来。”当你写第一行代码的时候,你只是因为有需要才去写。你现在有需要,而不是3个月或者6个月后有需要。你不得不推迟推出,自由软件总是这样。

我们已经兼容了.NET 2.0功能。Mono 1.0已经完成,我们正在封装软件。但是我的开发团队可没有闲下来,我们已经在开始进行Mono 2.0的开发工作。比如,我们已经在着手兼容微软的C# 2.0规范。

微软定期向欧洲计算机制造协会提交.Net升级规范吗?

是的。微软已经提交了所有的Net 1.0核心部件,他们也已经提交一些Net 2.0的标准规范。因此,如果微软公布自己的通用编译器产品的时候,我们也有了同样的编译器。当微软的通用编译器尚处于测试阶段,我们就在考虑自己需要拥有同样功能的编译器和虚拟机。但是微软的标准并不能完全帮助我们。

微软提到了Longhorn中将包含的新东西吗?

是的。他们谈到了Longhorn。我喜欢Longhorn,它在不断的变化当中,Longhorn不是标准,对吧?事实上,我们还没有见到Longhorn,只有我们亲自接触到它,才能够知道其中的新功能是否有用。

微软的应用程序接口(API)叫做WinFX,也有人称它是WinFS,我们这边也有类似的技术,叫做iFolder。但由于Longhorn并没有最后成形,我们不知道做WinFX是否会补充到Ximian的产品当中去。因为事情在不断的变化,因此很难讲。如果情况有了眉目,我们会开始着手兼容的,因为尽可能的兼容是我们的目标。

开源社区的人对你你们兼容微软的C#提出了批评没有?

是的,当然会有不同的意见,我认为,这并不是属于开源对其它平台相互斗争的问题。

那么专利问题呢?微软难道不会有天要求你们为.Net标准支付专利费用吗?

关于这点,我认为,Mono不会有任何的专利侵犯问题。

你们仔细研究过这方面的问题了吗?

我们已经仔细研究过专利方面的规定,我们没有发现任何违反专利的现象。但是,微软起码有3万多个专利,我不知道你是否研究过一个专利,但这些专利主要是表示它是一种发明的法律诉求。

不会有专利方面的麻烦吗?

需要考虑这方面的问题。我们已经审视过一些,我们并没有犯规。

然后还有“在前规定”,也就是这种东西在这之前存在过吗?例如,多语言虚拟机,事实上,它是一种非常老的概念,早就存在于很多的产品当中了。开源软件基金会委托一个开发小组完成了这种虚拟机的开发工作,只不过它过去从来没有被投向商用市场。

那么你们的方针是什么呢?

当我们发现,如果已经侵犯了某项专利,而且又无“在前规定”的保障之时,我们就会去除这些有问题的代码。这就是我们的方针。我们将去除任何侵犯别人专利的代码,因此,作为Mono的用户,你可以避免专利侵权纠纷。目前,我们还没有碰到专利纠纷,但这只是目前的情况。

Novell方面看待Linux的专利纠纷和你的观点一样吗?

不,Linux现在的官司和这种情况不同,因为,据说他们涉嫌侵犯版权。

人们总是在谈论如何拉拢程序开发者的事情,比如选择微软的.Net还是Java,你认为Mono会吸引Java 开发人员向.Net阵营靠拢吗?

目前的情况是,ASP.Net正在流行,而J2EE情况不妙。我们Ximian为了开发Mono,曾经做过一个调查,被访程序员表示,在ASP.Net架构上进行开发可以比在J2EE上让工作提高25%的效率,J2EE则更加理论化些。微软后来的一个调查也得出了类似的结论,他们的数字是30%。

J2EE现在存在的问题是,它已经变得非常非常的学术化,这种学院派的精致系统很难适应实际的需要。 25%意味着我们能够在短时间内部署架构系统,我们能够雇佣更少的开发人员。因此,原本要花费20万到2百万,为期 1年的项目,我们可以用更少的成本去完成。如果你能够节约25%,这就是很大的一笔钱。因此,技术产品不在于它有多么的精巧,而在于能够完成任务。因此,这并不是Java的错误,只不过这种构架没有为某部分用户考虑罢了。

但是,开源社区难道没有其它Java开发工具的选择吗?

是的,你可以看到很多人在使用其它Java开发工具,比如Struts,但问题是,选择的余地相当的小。它不是说仅仅通过学习就行了,也不是通过培训就可以通行四方就可以了。

基本来讲,ASP.net 计划和J2EE已经成为主要的开发工具了,因为它们背后都有足够的资金去推动它们的发展。尽管其它开发工具也存在机会,有些也属于高级平台架构工具,象Plone,但它们目前都属于少数民族。现在的情况是,如果你熟悉ASP.Net,或者是微软的开发工具,你能够将你开发的软件放在Linux上运行。

如果你象使用J2EE,你就去使用,如果你想用ASP.net,也可以去用,因此,Linux成为运行J2EE和.Net 的最好平台,Windows就做不到这点。

你们有能力在其它平台上实现微软Windows的所有功能吗?

关于新的用户界面内容(UI),我们正在利用我们的工具包努力去实现这一目标。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐