专栏名称: 程序员大咖
为程序员提供最优质的博文、最精彩的讨论、最实用的开发资源;提供最新最全的编程学习资料:PHP、Objective-C、Java、Swift、C/C++函数库、.NET Framework类库、J2SE API等等。并不定期奉送各种福利。
目录
相关文章推荐
大淘宝技术  ·  Agent工程能力思考记录 ·  1小时前  
蚂蚁技术AntTech  ·  清华蚂蚁开源首个全异步强化学习训练系统,SO ... ·  昨天  
51好读  ›  专栏  ›  程序员大咖

谷歌离职员工:谁能从谷歌手里偷走安卓?

程序员大咖  · 公众号  · 程序员  · 2018-03-31 10:24

正文

请到「今天看啥」查看全文



他们设法渡过了这场危机,但这并不容易,因为 Android 的开发栈是全世界最大堆的狗屎三明治。


狗屎烹饪


在 Google 大多数工程师都很清高,他们认为做移动或者 web 编程是不入流的事。“我不做前端,”他们用最傲慢的语气说。这种现象我喜欢称之为“鄙视的 DAG,”DAG 的意思是有向无环图(Directed Acyclic Graph),有点像流程图。在鄙视链顶端是崇高的搜索工程师,他们用的是 C++ 语言,这门语言被认为比 Java 要更酷,而后者又比 Python 酷一点,然后后者又比 JavaScript 酷一点。而搜索又比广告(Ads)酷点,广告又比 App 酷点,App 又比工具酷点,工具又比前端酷点。诸如此类。程序员喜欢互相鄙视。如果你时一名 Google 移动工程师的话,那实在是太不幸了,因为你处在所有鄙视链的最底端。


但是,在我本人亲身经历过从系统编程到大规模数据工程、编译器设计、服务框架、游戏开发、web 开发以及移动开发之后,我向你保证,就算前端编程不比其他的编程工作难,也绝对不会比其他工作容易。后端的一切都干净整齐有序呈分布式或并行化;相对于依然跟 25 年前一样恶心混乱的 web 编程,后端简直就像天堂。但是跟移动编程(包括 iOS 在内)相比,web 编程就像一趟美好的巴里之旅,而前者就像一堆狗屎三明治。


Android 呢?是的,那是所有里面最大的狗屎三明治。Android 开发者是英雄,如果你原谅我的话里有话的话。为 Google Maps 或者 Facebook 或 Snapchat 这样的大型应用对 Android 进行编程就像……算了就算我说了你也不会相信我的。你修改了一行代码,然后坐下来等 20 分钟再看看会发生什么吧。而且你每改动一次,不管这次改动是如何的微小,80% 的可能是第一次都不成功,因为功能互用性矩阵是出奇的稀疏。当然,你可以使用X,也可以使用Y,但是X和Y同时用就不行,因为去你的,伙计。


得,我还没扯到设备兼容性问题。我在 Google Play 商店上面得到了一堆的 1 星评价,因为我的 Wyvern 游戏 app 偶尔无法在 LG 设备上正常运行,于是我被迫到 eBay 上买了台寒酸的 60 美元的 LG 设备(而不是一台寒酸的 600 美元的 LG 设备)来复制那个 bug,结果发现,嘿,他们有两个 Android API 来在列表框上获取鼠标点击事件,但其中一个 API 在 LG 上没法用。


我的意思是,想想看吧。


现在的情况是:大大小小有一堆的竞争对手都想出了自己对 Android 框架的替代。我说的不仅仅是缺失功能的支持库,尽管他们缺少了很多。不是。我说的是对 Google 的整个 Android 开发栈的完全替代。微软有 Xamarin,Adobe 有 Cordova,Facebook 有 React Native,我的意思是说这是个疯狂小镇。真的,好好看看吧。Framework7、Appcelerator Titanium、Onsen、Sencha、Kendo、XDK、Ionic、Mobile Angular、Unity,我的意思是,到底发生了什么事?


这就好像是但凡尝试过 Android 编程的人都已经放弃并且宣布:“这太糟糕了我要自己创业把它做得更好。”


不想被竞争对手超越的 Google 回应道:“哦是吗?你不可能跟我们争的,因为我们准备自己跟自己争!”然后他们推出了 Flutter,我绝不是乱讲——这是一款跟原生 Android 竞争的、100% 严肃的 Android 开发栈,Android 团队根本就不愿意承认它的存在。

活着真好啊。


对 Android 的袭击








请到「今天看啥」查看全文