Mono 1.0 不仅仅是开源社区的一种新奇工具

原创 2004年08月14日 11:54:00
作者: 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),我们正在利用我们的工具包努力去实现这一目标。

js脚本语言javascript,只有你想不到

JavaScript,只有你想不到 - 51CTO.COM 很长时间以来,JavaScript在我眼里都是编程语言中的二等公民。早先,它经常是很多安全问题的发源地,就像是胶水一样,它能把HTML应...
  • gdpppt2
  • gdpppt2
  • 2015-01-29 23:29:47
  • 549

简析MonoTouch工作原理

MonoTouch使用静态编译方式将代码编译为ARM二进制代码。使用MonoTouch创建的每一个应用程序都是独立的,也就是说,应用程序所需要的东西都要打包,之所以这样,是因为iPhone不允许使用共...
  • hzbooks
  • hzbooks
  • 2012-12-03 17:24:03
  • 5294

.net 应用迁移到Mono 工具 (Moma)

        Mono Migration Analyzer (Moma) 是一个用于开发者使用的MS .net下开发的应用程序迁移到Mono平台的不兼容性检测工具。工具通过分析.dll或者....
  • shanyou
  • shanyou
  • 2006-11-30 22:44:00
  • 1320

[HDOJ1002] A + B Problem II 高数度加法运算

A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K Problem D...
  • ajioy
  • ajioy
  • 2011-10-25 23:01:01
  • 962

“不仅仅是土豆”精神

平庸和优秀的距离并没有那么远,如果我们办每件事情都像小王那样,不单只求完成任务,而是围绕要完成的任务进行一些深入的思考,把每件事情做到120%,那么我们就会由平庸蜕变为优秀!...
  • XingKong22star
  • XingKong22star
  • 2016-03-09 10:56:54
  • 3626

Unity优化杂谈2(MONO内存)

Mono内存是Unity中不会释放的内存,他的容量一旦被撑大,项目所占的内存就会跟着增大,不能手动释放。是一个比较危险的地方,wetest给出的标准是峰值不要超过50M,wetest里面会有最大的to...
  • qq_40557211
  • qq_40557211
  • 2017-10-10 15:09:30
  • 53

【Scikit-Learn 中文文档】新异类和异常值检测 - 无监督学习 - 用户指南 | ApacheCN

许多应用需要能够判断新观测是否属于与现有观测相同的分布(它是一个非线性的),或者应该被认为是不同的(这是一个异常值)。 通常,这种能力用于清理实际的数据集。 必须做出两个重要的区别: 新奇检测: 训练...
  • u012185296
  • u012185296
  • 2017-11-23 12:37:20
  • 476

服务器基础

  • 2014年10月11日 15:39
  • 5.73MB
  • 下载

Problem E: 新奇的加法运算

Home Web Board ProblemSet Standing Status Statistics Problem E: 新奇的加法运算 Time Limi...
  • m0_38015368
  • m0_38015368
  • 2017-05-04 13:32:17
  • 354

不仅仅是邮箱:8类新奇电子邮箱介绍

电子邮箱是我们用得最多的网络工具,但通常,我们仅仅用它来收电子邮件,发电子邮件。其实还有许多新奇有趣的电子邮箱,会给我们带来方便,比如,解决垃圾邮件的打扰,发送超大附件等等。一、发送2G超大附件 Fi...
  • ming_ke
  • ming_ke
  • 2008-09-01 10:54:00
  • 1579
收藏助手
不良信息举报
您举报文章:Mono 1.0 不仅仅是开源社区的一种新奇工具
举报原因:
原因补充:

(最多只允许输入30个字)