辣椒、龙舌兰酒、大沿尖顶帽……墨西哥在人们心目中,是一副热辣辣火烈烈的形象。早前两部电影,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