.NET的一点历史故事:Novell的崩溃和Xamarin的重生

https://blog.csdn.net/sD7O95O/article/details/78096502

学习安装 mono 时了解到的。 
2017年05月07日 08:34:30 dotNET跨平台 阅读数 144
 
 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sD7O95O/article/details/78096502

Novell 是一家神奇的技术公司,它自行开发和收购了很多不错的软件和标准,涵盖 NetWare、IPX、WordPerfect、Quattro Pro,Unix,SUSE和Mono。它曾有心挑战微软的霸权,最后不免以失败收场,但在开源运动的发展历程中,它所扮演的角色无可取代:

  • 1993年它收购 Unix System Laboratories 并由此获得 UNIX 版权,并在 SCO 诉 Linux 社区这个世纪大案中保卫了 Linux。

  • 收购 Ximian 和 SUSE,使得 GNOME 和 Mono 等开源项目得到了一个相对宽松的发展环境并进入企业市场。

  • 与微软达成了专利合作协议,并且增进产品互操作性,也促成了 Moonlight 项目开发过程中 Mono 团队和微软公司 .NET 团队之间的初次合作。

可是和 Sun 公司类似,因为运营状况不佳,2010年11月 Novell 被 Attachmate 财团以22亿美金价格收购。这家专业收购公司的财团很快开始重新组合各种资产,在大约半年后开始对 Novell 公司进行大规模裁员。各个产品组中 Mono 团队受到的影响最大,全部成员失去了饭碗。

裁员目标的选择当然体现了 Attachmate 管理层的市场判断。他们知道 SUSE 是个优质资产,必须加以保护。但他们没看好当时正值发布初期的 MonoTouch,和尚在全力研发中的 Mono for Android 这个极有市场潜力的产品。这种短视不仅给两个极有价值的项目带去不确定的未来,也直接导致原有用户连已经购买的产品都不能激活。

Miguel de Icaza 在这个关键时间做出了一个重要的选择,体现出了做事的腔调。首先他安抚人心,团结团队中各位成员,然后立即给正在外地休假的 Nat Friedman 打了个电话。两个从1999年就合作的老朋友一拍即合,准备自己投资创建新的公司来继续 Mono 系列产品的开发。和给 Mono 项目起名一样,他们再次选择了猴子这个机灵的家族,把公司命名为 Xamarin(来自 Tamarin 这个猴子的分类)。

虽然 Mono 依然是一个开源项目,Xamarin 员工参与其中并没有障碍,但是 Attachmate 当时仍然掌握着 MonoTouch 等收费产品的代码版权,怎样通过合适的渠道拿到这个版权对于初生的 Xamarin 来说。

这里 Miguel 采用了一个神奇的方法,一面保留和 Attachmate 接洽的可能,一面利用 Mono 开源项目的源代码来从头开发 MonoTouch 和 Mono for Android 的模仿产品。为了避嫌,这次原来开发 MonoTouch 的几个工程师转去做 Mono for Android,而预研 Mono for Android 的几个工程师开始从头重写 MonoTouch。

大概是因为技术方面已经没有特别挑战,Xamarin 很快开始了产品封闭测试,准备在最短时间内将它们推向市场。很多老用户也开始给 Attachmate 压力,而潜在新用户更是焦急地等待新产品的发布。

2011年7月事情峰回路转,Attachmate 资源整合后刚刚建立的 SUSE 主动找到 Xamarin 来谈合作,并在一揽子协议签字后将 MonoTouch 和 Mono for Android的版权拱手相让。当然作为交换,Xamarin 公司继续为 SUSE 客户提供 Mono 相关产品的技术支持服务。Mono开源项目的主导权也正式由 SUSE 转交到 Xamarin 手中。

经过这次合作,Xamarin 终于卸下一直担心的专利包袱,全力投入到新产品的开发之中。有趣的是,之前交叉开发的过程中据说团队里诞生了很多全新的想法。在拿回 MonoTouch 等产品版权后,这些新想法也逐步在产品之中一一实现,总算没有白费气力。

值得注意的是和 Novell 时代的 Mono 团队相比,Xamarin 是一家更为纯粹的移动平台开发工具公司。很多带有 Novell 时代印记的老技术明显不再大幅改进,失去了活力,包括:

  • libgdiplus 和 Mono 的 Windows Forms 实现

  • Mono for Visual Studio,一个在 Visual Stdio 中开发和远程部署调试 Mono 程序的插件

  • Moonlight,开源的 Silverlight 实现

同时也有部分 Mono 核心团队的成员因为个人原因加入其它公司或者创建了自己的公司。不过他们其实从来没离开过 Mono 这个业已庞大和有生命力的生态系统,各自又在新的岗位上推动了 Mono 的发展。后面将会详细介绍其中的两位代表。

附带提一个2014年9月发生的趣事。MicroFocus 公司宣布收购 Attachmate 集团,就此获得了 Novell 这个厂牌。而几年之前 MicroFocus 同样收购了 Borland 公司。这两个古老的著名品牌最后以这种方式聚到一起,令人唏嘘。

本来前面已经讲过连载结束了,不过今天整理的时候发现其实自己的博客上面已经发布过一个接近完整的章节了,所以就随手贴过来,以饲读者。原稿地址是,

https://blog.lextudio.com/mono历史片段-novell的崩溃和xamarin的浴火重生-bf1dd7b8621b

另外关于剩余多数章节的阅读方式,我现在还没有找到合适的渠道。所以有兴趣提前购买阅读的朋友,现在可以直接联系我(邮件至 support@lextm.com)获取相关信息。感谢支持。

相关文章:

原文地址:http://weibo.com/ttarticle/p/show?id=2309404104291332827636

最新文章

  1. 解决SpringMVC的@ResponseBody返回中文乱码
  2. CSS HACK 及常见问题
  3. (转载)图解Linux系统的系统架构
  4. centos6.5 升级python 到 python 2.7.11 安装 pip
  5. 活锁(livelock)
  6. JS解析DataSet.GetXML()方法产生的xml
  7. cocoaPods第三方库使用详解
  8. centos 命令行 连接无线网卡
  9. MyBatis之TypeHandler
  10. Head First设计模式之工厂模式
  11. Leetcode 4.28 Tree Easy
  12. D - WE POJ - 3273 (二分法)
  13. Python中的鸡肋多线程
  14. 课程四(Convolutional Neural Networks),第二 周(Deep convolutional models: case studies) ——3.Programming assignments : Residual Networks
  15. 《深入理解Java虚拟机:JVM高级特性与最佳实践》读书笔记
  16. pytest.3.Assert
  17. Application Metrics With Spring Boot Actuator
  18. php 魔术方法 说明
  19. window.location对象详解
  20. 八大排序算法的python实现

热门文章

  1. printf:函数参数计算从右向左,从左向右?
  2. MFC消息反射机制
  3. single-pass单遍聚类方法
  4. [Linux]安装kali虚拟机后忘记root密码
  5. CountDownLatch和CylicBarrier以及Semaphare你使用过吗
  6. react-redux学习初步总结
  7. LeetCode 132. 分割回文串 II(Palindrome Partitioning II)
  8. iSCSI存储技术
  9. Qt 串口通信 高速发送出错的解决方法总结
  10. mysql数据库——特殊sql语句整理之修改表结构