Mono

      辣椒、龙舌兰酒、大沿尖顶帽……墨西哥在人们心目中,是一副热辣辣火烈烈的形象。早前两部电影,Man on Fire和City of God,淋漓尽致地把墨西哥地底下一股邪火展现在世人面前——那地方,是天真、直白、充满诗意和理想,而且暴烈的,一如兽类盘踞的伊甸园。

     所以,当一些杰出而理想化的IT技术人物渐次在这块土地上崭露头角,世界并不应感到吃惊——Miguel de Icaza就是其中一位。他推动了Gnome这一著名Linux桌面系统的产生、创建Ximian公司(后被Novell收购),在开源世界里,是一个成功地引入商业概念的奇人。

     2001年,Miguel de Icaza和朋友一起开启了Mono,基于UNIX的.NET Framework开发平台实现。

     .NET是微软希望借以打击Java的重要武器。.NET与Java相比(抛却因成熟度带来的差异不谈,那是可以弥补的),前者跨语言而不跨平台、后者跨平台而不跨语言。在跨平台支持方面,.NET先天不足。当然这与微软“捆绑操作系统”战略密不可分——既有好处,也有坏处。然而无论如何.NET要比Java晚生多年,在某些方面绝对要比Java具有更多优势,也从Java学习了许多优秀的特性。所以,对.NET发生极大兴趣的,不光是原来的微软开发者,还包括Miguel de Icaza这样的Linux拥趸。

     Mono在西班牙语中的意思,是“猴子”。这个名字让人想起墨西哥人火辣直白的性格,那与《西游记》中孙悟空的野性难驯别无二致。Mono项目野心极大,它包括C#编译器、CLR引擎、兼容.NET Framework的类库(支持ADO.NET和ASP.NET等)、第三方类库Gtk#(gtk+工具集的.NET实现)、甚至还有漂亮的IDE、调试工具和文档浏览器。

     Mono的主要组成部分是:

  • 公共语言架构(CLI)虚拟机,包括类装载器、Just-in-time编译器和运行时垃圾回收机制;
  • 基础类库,运行于CLR之上的任何语言均可使用,包括兼容.NET的类库和Mono独有类库。
  • C#语言编译器。未来将实现基于CLR的其他编译器。

     Mono已经发布了1.0版本。在这个版本中,最基础的部分已经实现,包括:

  • C#编译器  
  • VM(虚拟机),包括JIT和预编译器
  • IL assembler、disassembler
  • 开发和安全工具
  • 核心库:mscorlib、System、System.XML
  • System.Data和Mono database providers
  • System.Web:Web应用平台和Apache集成模块
  • System.Web.Services客户端和服务器支持
  • System.Drawing
  • System.DirectoryServices
  • JIT支持: x86、SPARC和PPC架构
  • 通过IKVM实现Java集成
  • 运行时的嵌入式界面

     Mono将紧随Microsoft,在2005年发布支持Whidbey(.NET 2.0)的版本,于2006年发布支持WinFX的版本。

     从目前的状况来看,Mono还远未成熟。尽管已经有一些站点在Mono之上搭建,但总体上并没有为大多数人所接受。这里面既有效率效率的原因,也有兼容度的原因。但无论如何,一只天不怕地不怕的石猴已经横空出世了。

     事实上Microsoft也有自己的.NET UNIX实现:Rotor,但我相信他们不会很快在战略层面上支持跨平台的.NET Framework。依照微软一贯的做法,类似Mono这样的尝试,也不会进入被打击之列——且看你能做出什么东西,再做打算。

     Mono,这只初入人间的猴子,是否能够成长为齐天大圣?Miguel de Icaza显然有此雄心,一切只能让时间来验证了。

 

 

什么是MONO? MONO项目是由Ximian发起的,由Miguel de lcaza领导的,一个致力于开创.NET在Linux上使用的开源工程。它包含了一个C#语言的编译器,一个CLR的运行时,和一组类库,并实现了 ADO.NET和ASP.NET。能够使得开发人员在Linux用C#开发程序。

MONO项目无论对Linux还是C#开发人员都应该是个好消息,尤其是C#开发人员更会相信.NET将因此进入Linux系统,.NET 将变成通用于Windows和Linux的标准技术,并因此大大削弱Java的跨平台优势,从而使得.NET在与Java的持久战中取得关键的一役。很多人对MONO项目都期望有加,Microsoft也时常拿MONO项目作为显示自己开放性的一种手段。

... ... ... ...

哎,善良的程序员们,听我一言:

好的技术往往会因为政治阴谋而夭折。我讨厌政治,但事实证明这个世界不是光以技术为导向的。在考虑技术的采用时,我们有时不得不面对残酷的利益冲突。

这里有个逻辑问题,无论是.NET,Java,VB,Delphi,还是C/C++程序员都可以想想: 当今世界对微软构成最大威胁的竞争对手到底是谁,是SUN和他的Java,还是Linux? 这里还有另外一个问题,微软为什么如此憎恨Java (别忘了Microsoft和SUN曾经一度是“朋友“)? 最后还有一个问题,Java程序员那经常挂在嘴边的Java最大优点是什么?

微软创造.NET是为了和Java竞争,抢夺企业开发的市场,很多人都这么以为。当然,这看不出有什么错,而且理由也很正当。Java程序运行在世界各地的服务器上,统治了企业应用开发的大壁江山,微软要有未来就必须和Java争。在开发.NET的过程中,微软几乎什么都做了,他完全参考Java的语法,融合C/C++的特点,再加上花重金从Borland请来专家做出个被Delphi程序员认为是抄袭的Visual Studio .NET,还天才得发明了“跨语言“特性。不管怎么说,微软是下了血本才搞出了个.NET来和Java竞争。我刚才说“微软几乎什么都做了“,也就是说他有些地方没做,什么呢? 你估计也猜出来了---它.NET就只能在Windows上跑,要到Linux上跑就不行。微软是不是傻了啊? Java最知名的优势---跨平台,这一点你微软不去和他争,自暴其短啊。呵呵,微软有句名言---“不是不会做,而是不想做“。让.NET 在Linux上跑对微软来说“不是不会做“。摆明了,微软就没打算让.NET在Linux上跑。可为什么微软不想这么做? .NET一跨平台,Java可就立马失地300里啊,你真要和Java干,就理应出这一招啊。为什么你就是“不想做“呢? 除非,除非,你微软有难言之瘾,在你拿着.NET大剑砍杀Java之时背后有另外一个阴影让你分心。

那个阴影是一个企鹅。

在一封泄密的电子邮件里,一个微软高官给盖茨写到: 我现在很担心,我们的朋友SUN搞的那个语言让世界上的程序员可以开发出在非Windows上运行的应用程序,注意是非Windows。他们的努力将威胁到我们最重要的产品线。我认为是应该制止这一行为的时候了。

盖茨先生在读了这一封电子邮件后,震惊不已,只说了一句话: “我真是吓坏了“。也就是从那时起,微软和 SUN 的合作关系终止了,两家公司进入了彼此竞争的时代,一直延续到今天。

 

的确,微软只要打败了Linux,Java自然英雄无可用之地。

但是情况又很复杂,linux的发展在很大程度上得以java的支持,所以在一定程度上打击java对于微软来说也是必要的,但是其根本目的是linux!

如果说没有了linux,java就像断了一只脚,那微软为什么不想想让其断另一只脚呢-----windows。如果在windows上 java德不到支持,可能java损失的比丢掉linux还要重!因此,对于sun来说,也没必要反对microsoft吧(好像最近两家又开始合作了)。还是想想如何与Borland竞争吧,看看人家的JBuilder。

至于mono,呵呵,真是两边不讨好。既然微软以linux为死敌,微软肯定不会支持了;sun呢,更不可能了,可能比反对微软来的更激烈,所以mono估计前景不会怎样。但是对于我们开发者,还是很乐意看到mono的发展,至少本人是支持的。

也又可能mono在其他公司支持下发展起来,那会怎样?情况会非常有趣。对于sun来说,无疑多了一个头号敌人。这时,sun就会集中精力对付它了。微软呢,可能回采取既联合又斗争的态度。四者关系真的是错综复杂,如果sun也搞os的话,哈,那真有好戏看了。到时,sun也要反对linux了


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值