Google 为啥不给 Android 开发一个像 Swift 那样的 Native 语言呢

现实一点,上 Java8 我就很开心了
■网友
不问是不是,先问为什么。你让Go情何以堪呢?https://golang.org/
■网友
这个要看公司策略, 苹果不也是ObjC用了N年直到ObjC臃肿到让人难堪的程度, 才开始换Swift的嘛. 随随便便换语言, 成本太高了. 当然了, Google有这个实力, 他也换得起, 就看它愿不愿意. 外人很难捕捉它的意图, 或许, 在它内部, 已经有对应的项目也不一定. 另外, Java虚拟机往往不是那么影响效率的, 至少, 目前来看, 差别已经微乎其微了, 没有必要纠结这个效率. 至于跟C/C++对接, 不是有NDK吗? 当然, 没有Java那么好用.
■网友
Dart不是吗?
你要的只是编译成native而已了
dart有aot功能,这就已经是native了
底层与c/c++对接,skia本身就是c++写的,然后dart也提供了ffi
这个就不是问题了
另外java那边也差不多,prism是c++写的,然后project panama会提供更加高效的native interface
跟dart几乎是一样的
swift其实借助了llvm,llvm同样有ir,也就是中间码,这个跟byte code比较像,byte code跟ir的互转也有一些人在写,当然这都是理论上没问题,但没有那么多人去做而已
而且flutter可以提供jit和aot两种编译模式,在debug的时候,你用jit可以快速编译部署,节省编译时间
等到发布的时候,你再做aot,提升运行效率,这个比swift只能编译成native要有层次感
毕竟测试的时候,吭哧吭哧编译半天比较浪费时间

■网友
IOS是苹果的,手机也是苹果的。安卓不全是谷歌的,那么安卓如何保证在各个厂商下的硬件兼容呢?中间层语言是最好的解决方案。这样手机厂商解决底层,应用开发者只解决应用问题,无需关心底层。

越是编译成机器码的语言,和硬件结合越紧密。所以谷歌的选择对于发展来说利大于弊。

■网友
你可以先玩kotlin,虽然不是google出的
■网友
目前google已经主推Kotlin来开发Andorid了。
同时也推出了跨平台框架Flutter,它的开发语言是Dart,也是现代化的语言。
在今年的Google/IO大会上,google发布了一个全新的 Android 原生 UI 开发框架Jetpack Compose。
Compose是全新的声明式开发UI的语言。
告别了现在XML写布局的繁琐工作。并且可以自动更新UI数据。
关注公众号「Android开发之旅」学习最新的Android开发知识。
Google 为啥不给 Android 开发一个像 Swift 那样的 Native 语言呢




■网友
吐槽一句,java的性能,和C的差距真的不大,你还是看看android现在的引擎如何分配内存,分配多少以及如何缓存吧
■网友
谷歌发布全新设计语言:跟苹果Swift天壤之别谷歌并不是没有设计语言给android。有些东西不是别人有我就要有的,这样做的是腾讯。语言相对于开发来说并不是很重要的,重要的是后面的库。Objective-C和Swift依托的都是后面的cocoa和cocoa touch库,这才是重要的。苹果之所以开发swift语言在我看来是为了两点:1.Objective-C的啰嗦是公认的; 2.为了开源,而开源是为了利用混居在Linux上的那一大堆大神开发者的业余时间来开发苹果应用。另外可能可以附加一点,swift和js的语法在某种程度上相似(Swift 跟 JavaScript 有什么相同和不同点? - 前端开发 中@黄玄 的回答),这可能某种程度上也减少了swift语言给开发者的陌生感。而java语言已经挺好用了,而且java的普及度那么高,谷歌没必要特意再弄一个开发语言换汤不换药地让开发者重新去学习适应。
■网友
为了回答这个问题专门去研究了一下Swift语法,比起OC的啰嗦好了很多,但是跟Java比起来,还是非常非常的啰嗦;习惯了写Java的人,还真瞧不上Swift这种啰嗦语法。


推荐阅读