Sun 公司曾经借由 SunOS/Solaris 这个 UNIX 操作系统,SPARC 硬件平台和 Java 语言建立了一个商业帝国。Sun 工作站应该是很多资深业界大佬们偶尔还会拿来回忆的一个经典产品。不过时间进入二十一世纪第一个十年的中段,它已经在竞争对手的轮番进攻下显出了颓势。作为最后一搏,当时的管理层采纳了开放源代码这个方式,希望学习网景公司孕育 Mozilla/Firefox 的经验来扭转乾坤。于是2005年,它宣布了 OpenSolaris 项目,开源自己的操作系统,并在2006年11月13日,更近一步将自己核心资产 Java 平台开源,并采用 GPL 这个非常严格的授权协议。虽然这些努力并没有完全解决 Sun 公司的经营困难,它最终被甲骨文收购,但是开放+开源的 Java 平台确实在之后的十几年中顶住了新型语言的冲击,既然是 IT 业界广泛采用的主要技术。与之相比,微软一家主导并且完全绑定在 Windows 平台的 .NET 技术,在二十一世纪的发展过程中却是从平淡无奇开始的。
2002年2月13日发布了 .NET Framework 1.0 和 Visual Studio .NET 2002 之后,微软将研发资源同时投到了多个领域,希望在广度和深度上追上 Java 的脚步。这些投资在后来的三年内逐步提升了 .NET 平台的开发灵活性,也补上了一些缺环,但是是否符合用户的需要则必须另说了。
第一个重要升级是2003年4月3日,微软发布了Visual Studio .NET 2003 和 .NET Framework 1.1。这个版本带来了一些新的特性,但是明显比较平淡:
IP v6支持
ODBC 和甲骨文数据库支持
配合 Windows CE 开发的 Compact Framework
ASP.NET 对于移动浏览器的支持
在2007年 iPhone 发布之前,J2ME 和 Windows CE 的竞争只能说是小孩打架。所以这次升级更多的是配合微软 Windows Server 2003 的发布。毕竟 Windows Server 2003 是微软第一个内置 .NET Framework 的 Windows 发布版本。
下一个重要升级就拖到了2005年11月7号的 .NET Framework 2.0 和 Visual Studio 2005。从这里开始,.NET 开始慢慢在广度上追上 Java,比如加入官方构建工具 MSBuild,官方测试框架 MSTest,加入64位支持,同时在深度上开始超越 Java,比如在 CLR/MSIL 层面实现真正的泛型。同时微软开始发布适合嵌入式系统使用的Micro Framework。
有了这个关键的版本做基础,微软后面连续发布了 .NET Framework 3.0 (2006年11月6日) 和 3.5 (2007年11月19日),终于在广度上再进一步,加入 WPF、WCF、WF 和 EF,ASP.NET 开始支持 AJAX。在深度方面,.NET 开始引入 LINQ 机制,使得数据库操作可以不使用 SQL 等查询语言,而是在 C# 等语言层面直接集成。
在 Java 开源之前,微软也做出了一些积极行动,比如
2004年4月5日在 SourceForge 开源了 WiX 工具
2006年6月正式上线了 CodePlex 开源托管平台
2006年11月2日和 Novell 公司达成了一系列开源软件相关的合作(Novell 公司当时是 Mono 项目的领导者,所以这些合作对于 Mono 团队有很大帮助)
但是它一直没有在是否开源 .NET 平台问题上做出决定。这些当然我们事后来看都是可以理解的,因为
微软公司的创始人 Bill Gates 领导了商业软件革命,使得软件有版权这一理念深入人心,并且建立了自己的微软帝国,同时也促使了其他商业软件公司成长壮大。
开源软件运动对于商业软件公司具有潜在威胁,而大型商业软件公司选择开源自己产品的案例不多(网景、IBM和Sun走在了时代的前列)。
微软公司内部对于如何运作开源项目,如何把开源代码作为竞争手段缺乏了解,所以迟疑不决。
但是当时没有追随 Java 开源的热潮去做 .NET 平台的开源,对于微软来说还是棋差一招。等它八年后意识到必须走开源这条路的时候,IT 世界的版图已经完全不同了。
相关文章:
.NET 的一点历史往事:和 Java 的恩怨
.NET的一点历史故事:招兵买马和聚义山林
原文地址:http://weibo.com/ttarticle/p/show?id=2309404102499094119132
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注