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),我们正在利用我们的工具包努力去实现这一目标。

如何在Github上为开源贡献力量?

参与开源的一个好方式是为当前你正在使用的(开源)项目贡献力量。Github为多达五百万的开源项目提供托管。这里有各种技术集的项目,比如:recipes、 HTML/CSS、Ruby、Astrophys...
  • happyduoduo1
  • happyduoduo1
  • 2016年06月28日 14:15
  • 721

作为一名非Commiter,如何向开源社区提交自己的代码

前言作为一名职业程序员,如果去除待遇,薪资等等的因素考虑,从纯技术的角度出发,如何才能达到一个比较高的境界呢,答案是与最顶尖的那一批人交流合作,当然,最顶尖的那批人很多几乎估计都不在身边,而且大多在国...
  • Androidlushangderen
  • Androidlushangderen
  • 2015年11月02日 08:19
  • 5324

如何参与KVM/QEMU社区开发

如何在开源社区开发KVM/QEMU
  • nirendao
  • nirendao
  • 2016年12月16日 21:58
  • 1357

回调方法介绍之中国好室友篇(Java示例)

转自futeng在知乎 http://www.zhihu.com/question/19801131 的回答 ps:我不知道怎么转载知乎的回答更合适,若有侵犯到您的权利,还请联系我,我会尽快删除 ...
  • bf23456
  • bf23456
  • 2015年06月16日 16:46
  • 685

开源软件测评方法及工具

一、开源史上最成功的八个开源软件 就开源本身而言,它就是个成功案例。它不仅受个人喜欢,而且众多知名企业也青睐于它。虽然开源计划和开源产品数不胜数,但哪一个才是最成功的呢?这里所说的“成功”的定义是:...
  • wtyvhreal
  • wtyvhreal
  • 2014年12月31日 16:30
  • 1119

各种开源项目/库/工具介绍

值得学习的C语言开源项目- 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性...
  • QKK612501
  • QKK612501
  • 2017年01月16日 19:15
  • 1291

基于Node.JS的六款开源内容管理和静态网站生成系统

在内容管理系统(CMS)中,豪无疑问目前最流行的是 WordPress。它是一个可靠、 稳定的系统,有一个非常活跃的社区。它能使那些对技术不熟悉或根本不懂技术的人也能搭建网站,不仅局限于博客。它还是一...
  • natalie86
  • natalie86
  • 2015年04月17日 11:33
  • 335

小程序「Github开源社区」

来自公众号 : DeveloperPython01、初衷 大概上上周我花了周末两天的时间编写了一款小程序并顺利提交审核。也就在前两天我的小程序 「Github开源社区」 历经了两周的审核,终于。。。。...
  • m694449212
  • m694449212
  • 2017年05月26日 09:54
  • 1169

六款不容错过的开源持续集成工具

持续集成是敏捷软件开发工作当中的一大组成部分。从一轮冲刺到下一轮冲刺,技术团队在“不断前进”的同时持续推出各类增量化功能。不过当开发人员高度专注于添加功能的同时,代码错误有时候也会不期而至、并导致软件...
  • dj0379
  • dj0379
  • 2017年02月02日 06:53
  • 860

一共81个,开源大数据处理工具汇总

 接上一部分:一共81个,开源大数据处理工具汇总(上),第二部分主要收集整理的内容主要有日志收集系统、消息系统、分布式服务、集群管理、RPC、基础设施、搜索引擎、Iaas和监控管理等大数据开源工...
  • luobailian
  • luobailian
  • 2015年12月27日 14:01
  • 4381
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Mono 1.0 不仅仅是开源社区的一种新奇工具
举报原因:
原因补充:

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