Mono 项目:你可能会期待意想不到的事情
早在二月份,Ralph Green 邀请我在北德克萨斯 Linux 用户组发表演讲。我讨论了 Linux 系统管理,然后回答了问题。观众席中有人问我关于 Mono 的问题。我带着偏见,轻率地回答了。然后观众席中的另一个人说我需要弄清楚事实。
所以,我请他详细说明,他以一种聪明且富有启发性的方式做到了。他解释说,他的日常工作是 .NET 开发人员,那是他的谋生之道。他晚上将项目从一个平台移植到另一个平台。我发现他说服了我,在场的 LUG 成员也大多如此。
即便如此,我仍然带着偏见离开了。
你可能可以猜到接下来发生了什么。我最终自食其果,为一个客户设置一个 Sourceforge 风格的托管环境。我能找到的唯一免费开源项目具有 BSD 许可证。该项目是 SharpForge。你猜对了,作者用 C# 编写了这个项目。
就在那时,我不得不深入研究 MonoDev,这是一个让我想起 Visual Studio 的 IDE。我还研究了 Mono,在各种开源论坛和社区邮件列表中寻找人们的评论。我看到了一些负面评论,但看到了更多正面评论,并且看到了许多用 .NET 编程的新项目。
也许人们对 Mono 普遍持积极态度,因为代码可以在 Linux、FreeBSD、UNIX、Mac OS X、Solaris 和 Windows 上运行。
更多调查
我决定加入 SharpForge 项目,以进一步调查 Mono 这件事。现在我又开始编码了 - 只是这次不是用 C,而是用 C#。目前这对我来说没问题,因为我正在学习并且乐在其中。加入一个开源项目总是让我感到满足。但是,我想知道我的偏见是否会再次出现。以下是对偏见的概述
当 Miguel de Icaza 在 2000 年末开始吹捧 .NET 技术时,我立刻认为他是叛徒。1999 年,他因在 GNU 网络对象模型环境 (GNOME)(类似于 Windows 的桌面环境)方面的工作而获得了自由软件基金会的自由软件进步奖。然后,FSF 因为他未能遵守在任何采访中将 Linux 操作系统称为 GNU/Linux 并以此方式引用的政策而将他开除。
随着我对 C# 的研究,我发现 Miguel 有一些合法的意图。传说 Mono 项目始于 Miguel 查看字节码解释器,发现没有关于元数据的规范。2001 年 2 月,Miguel 通过访问 .NET 邮件列表寻找元数据文件格式。他一定获得了足够的信息,因为他开始开发 C# 编译器。
2001 年 4 月,Ecma(前身为欧洲计算机制造商协会)发布了缺失的文件格式,在 2001 年 4 月的 Gnome 用户大会上,Miguel 展示了他的编译器。
我没有从知情人士社区中读到或听到任何关于 Miguel 或 .NET 在 Linux 中的负面评论。相反,了解这项技术以及 Miguel 所取得成就的人们对他和这个项目都非常尊敬。这对我来说已经足够了。
我们将走向何方?
这听起来可能很悲观,但我见过很多开源倡导者启动项目,他们认为自己拥有下一个微软杀手。但是,绝大多数人开始时充满热情,但多年来一直没有碰过他们在 Sourceforge 上的代码。因此,向 Miguel 以及他在 Novell 的支持系统致敬。将近八年过去了,该项目仍在继续其进步和创新发展。
你可能知道也可能不知道,但 .NET 应用程序可能现在就在你的 Gnome 桌面上运行。你是否使用 Beagle、F-Spot、Tomboy、Banshee、SkyNet、Maemo、NUnit 等等?那么你就在使用 Mono 应用程序。
我知道我们将走向何方吗?不知道。但是,开源社区正在呈指数级增长,因为来自不同平台的开发人员已经开始协同工作。如果你更倾向于与 Red Hat 结盟,根据他们所说,Red Hat 是最大的 Linux 公司,他们在 JBoss(一种以 Java 为中心的技术)中投资了 4 亿美元。
我们正处于数字融合的早期阶段,人们希望实现跨平台兼容性。如果我们能使用工具来实现跨平台兼容性,我赞成。
对于那些对 Mono 有偏见的读者,我理解。我的意思是,我感同身受。与此同时,摆脱偏见,真正了解 Miguel 和他的开发团队所取得的成就可能会有所帮助。下载 MonoDev 并获取 SharpForge 的源代码。这一切都是免费的,而且都很好。