分享

Go 语言在将来会不会顶替现在 Java 在 Android 开发中的地位? |

 pgl147258 2014-09-01

【许哲的回答(54票)】:

这种预测不是没有可能,但近期内希望不大。

目前Android的项目用Java写的应该是最多的,java是很成熟的语言,也是开发者数量非常多的语言。考虑到学习成本和重构代码的成本,短期内Java在Android开发界的地位,绝对不可动摇,这点毋庸置疑。

但Java也带来很多问题,Android 也有很多问题,用过Android和iOS设备的人,都会对速度有所感触,Android 的应用总是不如iOS的来得快。

造成这点的有很多原因,但语言本身肯定也是原因之一。Object-C 是native的,而Java却是要用虚拟机的,这个摆在那里,不可能改变。如果Google要大力提高Android的速度的话,在底层架构不能大动的基础上,让native的Go语言上位,也不是不可能的事情。

另外就是恐怖的Oracle吃掉了Sun,所以Java的版权也归了它。这个问题上,Oracle已经告过Google了,对于Oracle这种律师比工程师还多的公司而言,它肯定成天在琢磨着怎么从Android这里榨取钱财;虽然说眼下有平定的势头,不保他日卷土重来。撇清对java的过度依赖才好,而google自家开发的,拥有完整知识产权的语言应该只有Go和Dart而已,Dart是和JavaScript一个层面上的,看来看去也只有Go合适了。

而且从Go 1 发布的文档上看,Go 的可移植性相当好,以Google的实力,应该不成问题。

最后,也是最关键的。Go 是非常优秀的一门开发语言,在可以遇见的未来,对于移动终端上并发的需求也好,native级别的执行效率也好,性感的,能提高开发效率的语法糖也好,Go都是有资格争取老大的。

拭目以待吧,现在预测还太早,我个人很喜欢这门语言。

【傅晗的回答(7票)】:

2年之内不太可能,Go目前的定位是网络服务器、分布式处理、分布式存储等与GUI无关的系统级、并发编程为主。理论上增加GUI处理也不是很困难但是目前Go开发小组的主要精力还没有放在那上面。另外Android系统使用的ARM CPU,它与x86 CPU在并发/并行编程上的内存模型不相同,需要从底层上来解决这个问题。还有就是Go的GC目前效率不是很高用在服务器上还没什么但是放在移动终端上显然就有性能问题了。最后就是要针对arm cpu做编译器的优化这些工作都要一点点的开展。也许等Go普及了就能在android上用Go做开发了

【andyjin的回答(1票)】:

我感觉android的开发语言可能像现在开发web一样,有多种语言选择。不同的需求,不同的语言。但是java肯定不会被抛弃。

【曹小华的回答(1票)】:

会支持的,但要替换java的统治地位估计还要很久。

android除了java sdk,现在还有c ndk,go sdk肯定会出,只是时间迟早的问题。

gae已经出了go sdk,就看谷歌公司愿意投入大力推go lang。

【时允的回答(1票)】:

会,在一届google io上,有人提问过 ,go语言的一位主管明确说了yes。

好像是2-3年前的吧,记不清了。

【黄振威的回答(3票)】:

不会的。现在Android的基石之一就是Java,而且Google还费大力气弄了Dalvik VM,如果摆脱掉java的话,会给开发者、手机制造厂商等生态系统中重要的几个环造成不好的影响。换了开发语言,就会导致所有的程序面临重写的危险。如果Google要摆脱Java,也不会操之过急的。而且目前Go语言偏重Web应用,并不能取代java在本地端的地位。

【有容的回答(0票)】:

大家对熟悉的东西比较习惯,即使动摇,依然能支持,说个题外话,哪个舒服方便用哪个。程序语言的用户是开发者,是软件公司,能给用户带来效益,自然大势所趋。

【陈斌的回答(0票)】:

顶替可以省去专利麻烦啊,但go还是新手怎么过渡看谷歌了

【林兴的回答(0票)】:

除非普及度很高,否则基本没可能。因为在google的计划中,android上替代java的工作是由dark来完成。google希望dark能成为统一的前端语言。

【石冠南的回答(0票)】:

除非go语言在实践中有重大突出表现,否则,还是java领先

【知乎用户的回答(0票)】:

有可能 参考swift

【杨成的回答(0票)】:

Go 还不算完善

Golang 之初见

【一湖星空的回答(0票)】:

Java肯定会被干掉,是不是Go却不能确定。

【知乎用户的回答(0票)】:

一门语言,成为广泛使用的语言有几个点需要满足:

  1. 跨平台。
  2. 大量的优秀的支持库。
  3. 企业级框架。

不能跨平台,很难应用广泛。其发展必然受到影响,就算这门语言在其自有的生态环境中,发展良好。但是其封闭性,是违背事物发展规律的。这不科学。

没有优秀库的支持,每个人都在重复造轮子,大量重复逻辑的实现,是很抓狂的。还需要社区的支持。

广泛使用,势必要进入企业级开发领域。没有企业级框架的支撑,很难做到广泛群众基础。

from http://coder3.com/think-form-chen-hao-video.html

【知乎用户的回答(0票)】:

目前go的性能和java比,还相差1个数量级左右,并不是象大家想象的那么好,当然正在不断提高中

===========================================================================

最新消息:go1.1这个版本性能提升很多,性能已经超过java了,现在就是gc还有点小问题,外围的包也越来越丰富,写常见的web程序是一个非常好的选择。

go在andriod上替换java目前是有心无力。google内部已经把和java同一个爹的mysql全部替掉了,所以支持java的同时再支持一个go这样的原生语言是非常有可能的。但目前看go的近期开发计划,半年之内没看到任何消息,目前go全定位在web端程序的开发。

原文地址:知乎

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多