写点什么

RoboVM 将死

  • 2016-04-28
  • 本文字数:3285 字

    阅读完需:约 11 分钟

本文翻译自 RoboVM is Dead ,作者是 Mike Fleischauer,翻译已获得本人授权。

文章标题几乎已经说明了一切。虽然这则消息让人感觉遗憾,但基本也在意料之中。也许有人还不知道,RoboVM 是一种可供您在 iOS 设备上运行 Java 应用程序的技术。这种技术也许对游戏开发者最为有用,可以让 LibGDX 应用程序在诸如 iPad、iPhone 以及 Apple TV 等设备上运行。

到底是如何实现的?这里面还有些故事…

为了支持 iOS,LibGDX 于 2013 年 5 月从 Xamarin 迁移至 RoboVM(这事本身就够讽刺了)。当时 RoboVM 还是开源的,在功能方面比 Xamarin 做得更好。当时一切都发展的很好,直到 2015 年 10 月Xamarin 突然收购了 RoboVM。从那时起,这个开源项目基本停摆,大家开始不看好 RoboVM 的未来。Xamarin 通过为 LibGDX 开发者提供免费许可的方式对这一问题做出回应,这些举措打消了开发者对未来的很多顾虑。当时我和 Xamarin 的 CEO Nat Friedman 进行了如下交流,现在看起来就有些诡异了:

真正的魔鬼都隐藏在细节中,对吧!老实说,Nat 是个正直的人,我觉得他当时根本想象不到接下来会发生的事。随后 Microsoft 在 2016 年 2 月宣布收购了 Xamarin。对大部分开发者来说,这无疑是个好消息,因为消息公布后没多久他们就让 Xamarin免费并开源了。这一系列事件中真正让人纳闷的是,RoboVM 到底该怎么处理?Xamarin 以前的目标是掌控向移动设备移至应用的过程,但 Microsoft 的目标更主要是提高.NET 开发堆栈的接受率。这么说吧,目前 Microsoft 并不是 Java 最大的支持者,那么当尘埃落定后,RoboVM 该怎么办?

直到今天,RoboVM 团队发布了这样一则消息

过去几周来,为了确定 RoboVM 的未来发展方向,我们与 Xamarin 和 Microsoft 合作对该产品的技术和业务情况进行了评估。考虑到使用 Java 进行移动开发的大环境后,我们最终决定逐步停止 RoboVM 的开发。

为了帮助客户消化这则消息的影响,我们准备了一篇常见问题解答。对于其中未包含的问题,请联系我们:support@robovm.com。

我用 RoboVM 开发的应用会遇到什么情况?

客户已经发布的应用将不受任何影响。如果您的应用还在开发中,您还可以像其他任何 iOS 应用那样继续完成开发工作,除非 Apple 在 iOS 中引入了某些较为重大的变动。您在 RoboVM Studio 中创建的 Android 项目和应用可以使用 Android Studio 或 IntelliJ IDEA 打开并编译,您在 Android 和 iOS 上使用的任何跨平台 RoboPods 也依然可以在这些项目中使用,不过可能受到未来一些重大系统级改动的影响。

对于正在使用 RoboVM 开发的应用,我该如何处理?

取决于应用开发工作所处阶段,目前有多种方式可以帮您继续开发,包括帮您移至到Xamarin 的工具,并可换为使用以iOS 为目标的Java SDK 版本。尤其是 libGDX 刚刚公布了自己对 Intel Multi-OS Engine(多操作系统引擎)的支持,这意味着对于目前大部分活跃的 RoboVM 开发者,都有可用的备选方案。此外 Microsoft 和 Xamarin 都非常愿意为您的移动应用开发工作提供帮助,同时我们也希望能帮助您继续前进。如果您想和我们讨论您的应用开发计划,请给我们发邮件:support@robovm.com。

我能否继续使用自己的许可?

可以。在 2017 年 4 月 30 日之前,您可以继续激活现有的已付费或免费赠送的订阅。这样您就有了足够的时间可以将现有应用过渡至其他方案。

我已经购买了许可,可以获得退款吗?

可以。我们对截至今天的所有现有客户提供全额退款服务。请发邮件至 support@robovm.com 申请退款。

简单来说,Microsoft 看了看 RoboVM,发现它与自己的规划不符,于是就一枪崩掉了。疼啊!今时不同往日,连 Microsoft 都在想方设法让自己显得对开源更友好,希望通过包容、扩展,以及废除等做法摆脱自己的过去。他们没有选择将 RoboVM 重新开源,让用户至少能像以前那样自娱自乐,这一点真的让人感觉遗憾。如果有足够多的反对声音,也许他们最终会这样做的,至少现在有关这个话题的讨论对 Microsoft 来说并不是多好的消息。不过他们能为所有提出申请的客户全额退款,这一点做的倒是不错。

与此同时,LibGDX 开发者又该何去何从?从上文链接的内容中可以知道答案。LibGDX 项目的创始人 Mario Zechner 针对这一话题发布了一篇内容相当丰富的博客文章。建议您通读全文以了解各种可用的选项,不过我依然会将重点摘录如下:

RoboVM 将死,然后怎么办?

几位 libGDX 员工持有的免费 RoboVM 许可密钥可用于将自己的 LibGDX 应用部署至 iOS。这些许可密钥在2017 年 4 月 17 日之前可以继续使用。然而RoboVM 将不再获得后续更新,不会增加新的功能或修复 Bug。整个社区所依赖的所有 RoboPods 也将面临相同问题。更重要的是,现在已经无法注册新的免费 RoboVM Indie 许可了。

简而言之,如果您已经使用 RoboVM 开发了一款游戏,在许可过期之前您可以继续使用 RoboVM。如果您要新开发一个游戏,此时将无法使用 RoboVM。但无论哪种情况,您都应该尽早更换为其他备选方案。

备选方案都有什么?

RoboVM 有很多备选方案,然而在功能方面没有一个能比得上 RoboVM。一起来看看这些可用方案吧。我们会从不同的视角审视这些方案:工具 (IDE、Maven、Gradle) 的支持情况、绑定的支持、二进制文件大小、性能,以及与 Bitcode 的兼容性。

深入介绍前,我想重点谈谈对 Bitcode 的兼容性,这也许是最重要的功能。Apple 最近提出了一个新的要求,禁止以原始机器代码 (Raw machine code) 的形式为 watchOS 和 tvOS 提交应用。Apple 希望开发者以 Bitcode 的形式提交应用。Bitcode 是一种(近似于)独立于机器的中间语言,Apple 会通过这种语言为提交的应用生成实际的机器代码。因此任何对于 Bitcode 没有明确支持计划的解决方案都存在巨大的劣势。

可用方案(每个方案的特性和不足之处请参阅 Mario Zechner 的博客原文):

  • Mobile OpenJDK 9
  • Codename One
  • J2ObjC
  • Avian
  • Xamarin + IKVM
  • Intel Multi-OS Engine

–节略–

LibGDX 在 iOS 上的未来是怎样的?

Tomski 已经为 Multi-OS 引擎写了一个新的 libGDX 后端。LibGDX 的发展路线图如下:

  1. 清理 Multi-OS 后端,将其与 libGDX 设置界面相集成,更新相关文档。这些工作我们已经完成了 95%,希望能在本周末某个时间发布相关代码。
  2. 下周发布一个新的 libGDX 版本,让 Multi-OS 引擎成为新建 LibGDX 项目的默认 iOS 后端。
  3. 开始为流行的第三方 iOS 库创建绑定。我们希望整个社区都能参与到这项工作中。
  4. 在许可过期(2017 年 4 月 17 日)前维持 RoboVM 后端继续运行。我们会尽一切努力修复后端可能存在的任何 Bug,然而我们无法修复 RoboVM 本身存在的 Bug。

您现有应用的发展路线图应该是类似这样的:

  1. 继续使用 RoboVM 1.14.0 以及相应的后端发布更新。
  2. 立刻开始为您在 iOS 平台下的应用添加基于 Multi-OS 引擎的版本。
  3. 测试您的应用,并将 Bug 报告至我们的跟踪管理系统
  4. 尽快切换至 Multi-OS 引擎。

目前的情况就是这样。天还没塌,世界末日也还没到,不过前路上很快会遇到一些坎坷。一些人无疑会对此感到沮丧,不过还请理智发泄您的怒火。这件事上 Mario 和 RoboVM 团队并不是反派,实际上他们刚刚失去了自己的孩子,试想一下吧这时候你会有怎样的感觉?

一个好技术因为商业方面的原因被放弃,这种事确实很糟糕。我认为,如果 Microsoft 将 RoboVM 项目开源,而不是彻底杀死它,这样的结果更能让所有人皆大欢喜。再宏伟的计划也有可能无法实现,而开发和维护这种项目所需的技能并不常见。因此不妨给这个技术一条生路,不要让它成为商业决策的牺牲品。更重要的是,这样开发者也能在过渡至新解决方案过程中获得更多时间、更丰富的选项,实现更平滑的过渡。

最终,这不是 Xamarin、RoboVM,或 LibGDX 能决定的。这件事的决定权百分之百在于 Microsoft。如果您想将自己的精力专注于一些有意义的事情,那么这事就是一个很好的目标。毕竟 Microsoft 是一家试图改善自己在非微软平台开发者,以及开源社区成员眼中形象的公司。但是这样的举措… 无疑提供不了任何帮助!


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-04-28 19:004125
用户头像

发布了 283 篇内容, 共 106.0 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

空窗期太长?这么说就对了!

王磊

Java

手把手系列:小程序插件的开发与引用

FN0

小程序 小程序插件

百誉控股完成对Electra New Energy Vehicle Inc控股权的合并

财见

.NET 9 预览版 5 发布

EquatorCoco

.net

开发高质量体育直播软件平台的秘诀:激发用户高质量内容的生成

软件开发-梦幻运营部

Dotnet算法与数据结构:Hashset, List对比

不在线第一只蜗牛

List 数据结构 算法

互联网不行了?程序员不吃香了?机会在哪里?

伤感汤姆布利柏

和鲸101计划夏令营火热进行中!北中医助阵医学数据探索,快来学习

ModelWhale

AI 数据科学 实践 Workshop 夏令营

从IBM ESB升级到RestCloud iPaaS的全面指南

RestCloud

ESB ibm ipaas 数据集成工具

AutoCAD 2024 for Mac(cad设计绘图) v2024.3中文版

Mac相关知识分享

公式中获灵感,这群研究生在云上攻克铝电解能耗难题

华为云开发者联盟

物联网 华为云 华为云开发者联盟 先锋开发者云上说 企业号2024年7月PK榜

小特性 大用途 —— YashanDB JDBC驱动的这些特性你都get了吗?

YashanDB

数据库 yashandb 崖山数据库

Java Executors类的9种创建线程池的方法及应用场景分析

快乐非自愿限量之名

Java 线程池

TikTok直播卡顿、封号频发?搭建TikTok直播网络解决!

Ogcloud

tiktok直播 tiktok直播专线 tiktok直播网络 tiktok直播带货 TikTok跨境直播

Sam Altman 新公司将打造 AI 健康教练;全新大模型架构 TTT 超越 Transformer 丨 RTE 开发者日报

声网

开源可视化报表,JimuReport 积木报表 v1.7.8 版本发布

JEECG低代码

积木报表 jimureport 报表工具

JeecgBoot 代码生成器使用入门

JEECG低代码

代码生成器 jeecg-boot JeecgBoot jeecg

Flink+Paimon在阿里云大数据云原生运维数仓的实践

Apache Flink

大数据 flink paimon Apache Paimon

追剧学习两不误,华为阅读暑期书单伴你乐享一夏

最新动态

Gartner: 全球服务器出货量上涨,浪潮信息市占率11.3%居全球前二

财见

SpringSecurity安全管理

EquatorCoco

spring 安全

软件测试学习笔记丨Allure2报告中添加附件-视频

测试人

软件测试

10个JavaScript One-Liners让初学者看起来很专业

OpenTiny社区

JavaScript 开源 前端 OpenTiny

和鲸科技荣耀入选2024 H1 「中国最具价值 AGI 创新机构 TOP 50」

ModelWhale

AI 云原生 AGI

Macs Fan Control Pro for mac(电脑风扇控制软件) v1.5.16中文版

Mac相关知识分享

Lightroom Classic 2024 for Mac(LRC2024) v13.2.0中文版

Mac相关知识分享

DDoS攻击详解

网络安全服务

udp DDoS cc tcpip DDoS 攻击

东南亚TikTok直播专线

Ogcloud

tiktok直播 tiktok直播专线 tiktok直播网络 tiktok直播带货 TikTok跨境直播

linux进程管理

不在线第一只蜗牛

Linux 运维

Docker Compose 一键快速部署 RocketMQ

JEECG低代码

Docker RocketMQ

RoboVM将死_Android/iOS_大愚若智_InfoQ精选文章