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显然有此雄心,一切只能让时间来验证了。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=72182


你可能感兴趣的:(on)