甲骨文试图逼Google就范:9行代码引发的危机
Java本来是开源技术,大家都只要遵守Java的开源协议,就可以免费的使用Java语言,可是创建Java的Sun公司被Oracle收购之后,Oracle变得有点为所欲为了,眼红Android给Google带来的商业利益,Oracle很明显不愿意为其他企业免费做嫁衣。
2010年甲骨文公司一直诉状将Google告上法庭,声称Google在开发Android时没有经过许可就使用了Oracle应用编程接口数据包。即使Google为了避免版权危机重写了JavaAPI,可是还是因为有跟OracleJDK相同的九行代码,最终导致了版权危机。当然这其实是同一位工程师在两家不同的公司工作过写下的相同的代码。可是因为这9行代码,甲骨文曾经要求Google赔偿88亿美金。
从那之后Google一直在尝试替代Java的可能方案,先后传出过自家的Go、Python,以及JetBrains的Kotlin,现在又弄出了Flutter(基于Dart语言)作为客户端解决方案,都是想要尽可能摆脱Java的掣肘。
只不过替代的难度很大,这么多年的技术栈积淀,Google对于Android生态的管控又远远不如苹果,各手机大厂商的Android版本也不总是能第一时间跟上Google的步伐。
苹果生态都在自己的管控下,能够将iOS技术栈一夜之间从Objective-C更换到swift,反过来Google不行,现在Android10都出来了,使用Android7.0以下的用户占比依然超过了70%,Google有心杀贼、可是偏偏无力回天,正可谓骑虎难下。
更激进地、Google为了解决这个问题,Google甚至专门开发了一个Fuchsia这样一个新的操作系统,试图随时替代Android,可是到目前为止Google也没敢强行上马。
阿里、腾讯都在用,Flutter促进Dart迎来新转机?
Flutter是完全基于Dart语言的一个开发框架,它更像是个前端解决方案,想必大家都已经很熟悉Electron、ReactNative这些前端客户端解决方案,这些方案的优势在于减少在iOS和Android两端的重复开发,尽可能的一次编写多端运行,减少开发成本。
Flutter的优势在于,有AndroidStudio这样一个出色的IDE支持,能够开发Android、iOS、以及Windows等多终端应用,可以最大限度的实现技术复用,尤其是减少了很大的移动端开发成本。
阿里旗下二手交易平台闲鱼就是采用的flutter作为核心技术栈,尽管暴露出了一些问题,但是这却让闲鱼团队用了很小的人力成本就开发和维护了这个阿里内部用户量排名前几的App,很明显Flutter很好的满足了闲鱼的技术需求。除此之外,Google自己旗下的应用,腾讯的Now直播团队,滴滴、京东都在进行一些Flutter的尝试,相信未来基于Flutter的应用会越来越多。
总之未来Android会逐渐向Dart迁移,而后端服务会不会继续以Java为主,大家讲不清楚,毕竟你像微信用的还是C++,WhatsApp还是用的Erlang,应用开发商自己也有权利选择采用什么样的技术栈。