作为某种意义上算是靠谷歌的技术吃饭的资深伪全栈,简单说一下个人感受:
- 谷歌有自己内部的代码仓库,几乎所有项目初期肯定都是放在内部仓库上,这样才能和他们自己的工作流对接上,这点没啥好diss的。问题在于开源和发布以后,像之前和比较老的大型项目,代码量很大,内部依赖极多,所以只能把主仓库开源到gh等平台,构建过程中再连接谷歌的服务器拉代码和资源,因为以前也没什么好的办法,改动起来成本高,还容易导致构建失败,也影响他们自己的开发流程,所以我个人也是能理解的;现在比较新一点的项目,基本都能做到全量开源,很少出现上述的问题了
- 虚拟机这点不知道指的是啥,毕竟vm是一个很大很复杂的概念。有些东西在虚拟机里运行是有好处的,比如他们搞的新系统,以及安卓开发时的avd虚拟机,主要是可以屏蔽硬件差异,否则在Win、Linux、Mac上各自搞一套运行时和适配,难度和维护成本难以预计。它毕竟不像Mac上的iOS模拟器,硬件是确定的,可以用原生方式开发模拟器。如果指的是安卓上App运行使用的jvm,那就更难说了,只能说那个时代的理念就是推崇jvm这种一次编译处处运行,问题在于jvm本身的优劣共存。所以发展到现在,vm概念已经升级进化成jit和aot,既保证通用性,又保证原生和性能优势,相比于jvm的笨重和各种问题,可以在开发成本、持续维护性和使用体验上做到兼顾。
- 专有服务这点,我个人是这样理解的。作为公司,在合理的协议基础上提供专有服务,收取相应费用是很合理的,有盈利才能健康发展,不可能要求一家公司把所有东西都开源,所有服务都免费提供。比如GMS,如果能用那是真的好用,但是提供这些服务要成本的,不可能让没有合作关系,甚至是利益不符的第三方白嫖吧?举个例子,用oppo手机可以用小米的云服务吗
我觉得不好的地方:
- 有些技术和服务的健壮性。这个说实话,各家都挺差的,不管国内外,不管是云服务还是各种技术方案乃至编程语言,bug和问题都是越来越多,虽然也和现在IT领域的复杂度不断上升有关,但是就我个人而言,还是觉得谷歌的一些东西的质量和他的体量相比不够高,完全打不到我的心理预期。比如firebaase服务、Google Cloud、android command line tools、k8s。他们有些是文档写得一塌糊涂不知所谓,有些是工具和产品本身的稳定性极差,不停不停的恶心你为难你。
- 西方世界的自以为是。主要体现在对cjk用户的实际需求的无视,比如现在在google上搜索简中和日文的信息,大概率得到无用信息,搜索质量差以前很多;比如安卓系统上的cjk文字显示和输入法等各种问题一直没有得到重视,一直到最近的android14系统才支持了字体的非线性字体放大,终于可以实现中文的各种字重显示,而不是只能显示普通和加粗这两种;在比如我曾经请求为某个谷歌的项目增加中文文档和中文支持,结果对面开发以“不需要,中文用户可以使用谷歌翻译”为由拒绝了,在他们眼中似乎谷歌翻译可以很好的翻译中英文本,因为他们平时只能接触到印欧语系的多国语言,于是就觉得谷歌翻译已经可以解决世界上所有的语言翻译问题,实际我们都知道机翻有多垃圾,更别说去年谷歌翻译的国内服务器也关了,国内在默认情况下彻底用不了
很多人大概不知道但我想夸的点:
- 对国内开发友好。这点可能很多人不认同,但如果是从15年左右开始做安卓开发到现在的人就会理解,曾经开发个项目,会因为网络和资源问题而多么的困难,现在几乎就不会碰到了,因为现在安卓开发的各种常规资源在国内都有镜像了,大多数情况下都能顺利高速下载;以及很多技术的说明文档上,会特别注明如果是国内用户因为网络问题无法正常开发时,可以通过哪些操作来解决,还有一些中文镜像网站——当然这些主要是谷歌在国内的团队和一些国内开发者贡献的方法,但也正是因为谷歌总体来说比较好的开源态度,才能使这些东西能够出现在官方的文档和说明里。
- 开源的态度。在所有科技大公司里,谷歌对待开源的态度是最好的,对各国开发者也是最开放最支持的,虽然很多人会觉得目的不纯或者夹带私货等等,但是事实还是如此。同样是开发者大会,苹果和微软的基本就是CEO上台吹一波新产品,然后让几个产品负责人上来解释两句,最后画一个大饼。谷歌的IO大会除了吹新产品新技术,还会做一些更贴近技术本身的分享,可以让开发者真正学到东西。此外还有I/O Connect开发者分享会在各个国家(包括中国)和地区开展,邀请当地的开发者分享技术和交流,再来是全球范围的谷歌开发者社区(GDG),国内就有上海、北京、广州等多个组织,经常会由官方牵头组织交流会,很多人由此获得了很大提升,分享而成果基本都会整理后发布并开源出来,平时多关注就能接触到很多业内最新的技术和方案。再来谷歌的很多技术在开源环境下也获得了广泛的支持,比如前面提到的“专为国内用户写的网络问题解决提示”,以及一些CJK独有问题的处理,很多都是通过开源方式由一些国内大大神贡献解决的。我就曾为一个马来西亚的大神维护的谷歌相关技术的仓库提交了一些代码,最终方便了我和国内一些小伙伴的使用;我的一个相关的小工具也曾获得一位巴拉圭的小伙子的大量代码贡献,这种全球性的开源合作,除了纯粹的开源社区,在大型商业公司的技术里其实是并不多见的。
你确定不是那玩意儿?
Dalvik?
1:产品不管开源闭源都要理解谷歌服务器,但是这里连接服务器非常的麻烦
2:虽然说是开源但是总喜欢搞一大堆专有化的东西或者是夹带私货
3:总喜欢让产品在虚拟机里面运行,慢死了
4:喜欢集成专有化服务
5:喜欢在安卓里面集成一大堆奇奇怪怪的专有化的玩意,对机型还卡的死
未完待续