RoboVM 的消亡

作者:James Darvell

微软最近大肆宣扬其对开源社区(尤其是 Linux)的热爱和支持,但尽管它正在采取具体措施来改善对 FOSS 项目的支持,但其动机可能并非完全出于利他。 微软继续在多个方面资助对开源项目的法律攻击,并且在符合公司利益时,它已经扼杀了开源项目。

RoboVM 就是这种情况,它是一种 Java 到移动平台的编译器,支持跨平台移动开发。

RoboVM 最初是一个开源项目,尽管在 2015 年 10 月其母公司被 Xamarin 收购后发生了变化。 Xamarin 拥有多个类似的产品,支持使用不同编程语言进行跨平台开发。 自然,Xamarin 将 RoboVM 视为对其产品线的合适补充。

收购后不久,发布了一项声明,称开源开发模型“对 RoboVM 团队不起作用”。 该项目被关闭,并且许可费用增加以匹配 Xamarin 产品线中的其他工具。

今年早些时候,微软收购了 Xamarin,并且在自豪地宣传 Xamarin 的大部分工具套件时,似乎微软的跨平台开发计划中没有 RoboVM 的位置。 上周,RoboVM 团队宣布该项目将被关闭。

这对依赖 RoboVM 的项目来说是个坏消息。 当你考虑到有许多开源框架和库(例如 libGDX)时,关闭该项目将使许多开发人员陷入困境。 一些移动应用程序公司将不得不在放弃现有游戏和应用程序或者使用新的技术栈从头开始重写它们之间做出选择。

尽管还有其他几个正在开发的开源项目可以将 Java 应用程序移植到 iOS,但它们距离可以用于生产环境还很远。 在接下来的几个月中,这些项目无疑将会看到开发和其他贡献的增加; 但是,在它们成为 RoboVM 的合适替代品之前,还需要一段时间。

那么,为什么微软决定放弃一个拥有蓬勃发展的用户群的有用工具呢? 官方的说法是,该公司认为它不符合其移动开发的愿景。 几个类似的开源项目的存在可能是一个因素——为什么要投资构建一个在地平线上存在激烈竞争的平台呢?

但是,有些人会说微软只是不喜欢 Java。 1997 年,Sun 公司起诉微软试图侵吞 Java,当时微软确实引火烧身。 那时,Java 将成为“互联网的语言”,并且将 Java Applet 支持引入 Internet Explorer 是一个重要的目标。 以真正的微软风格,Windows Java VM 仅部分支持发布的 Java 标准——更重要的是,它添加了不属于官方标准的功能。

目标是创建一个在 Microsoft VM 上运行的代码将无法在任何其他平台上运行的情况。 通过劫持 Java 标准,微软计划夺取 Sun 的用户群并决定 Java 的未来。 当然,该计划导致了一场代价高昂的灾难,这解释了该公司自那时以来对 Java 的不温不火的态度。

无论幕后有什么阴谋,RoboVM 的故事都说明了开源和自由软件之间的区别。 并且,它表明构建依赖于专有代码的软件是多么冒险——当你的应用程序的基础的持续存在受到公司经济和政治的影响时,总是有可能它会消失,并且你的应用程序也会随之消失。

加载 Disqus 评论