自从Oracle在18年底决定对Java进行收费后,互联网大厂中,B站、今日头条的后台开发转战Go语言,那么未来go语言会成为将来主流?




go语言可以代替java吗 go语言会取代java吗_go语言可以代替java吗

编程语言



相比Java,go还是相当不成熟的一门语言。

Go语言设计的初衷:就是要快速解决问题,学习门槛低,如果简单问题只能由设计来解决,那不如去学点语法、脚本语言更好,那么最好用的语言还是php和js。

难怪大佬直言:纯技术人员的悲哀之处在于他们缺少成本意识和管理思维




go语言可以代替java吗 go语言会取代java吗_Go_02

编程语言



业务越复杂,越适合用java。java的性能很强悍,比如网站12306和淘宝就足以证明这一点。而go语言连个好用的缓存框架的都没有。

重点得看他们的技术环境,像B站这样大量视频处理的本来就和C语言脱不了干系,此时go和底层更好的结合是不错的,而且这里和他们CTO的选型偏向有很大的干系。

但是很多一般公司,不会优选go语言,因为它的语法实在太烂,生态系统不够完善,另外,公司要做的工作非常多,即管控其版本快速迭代带来的切换冲击。




go语言可以代替java吗 go语言会取代java吗_go语言和java比_03

编程语言



以市场来看,以go作为主语言的业务模型,基本上是视频,通信,游戏,云设施等,业务并不是特别复杂,但是需要很好的性能。当然,java语言的性能也不差,但是真的吃资源。

go的公共库质量较差,而且go的包管理其实一直都在变,这个是个很大的问题,就职业来说,go比较适合c++转型。

而企业级开发,电商,大数据类公司,金融支付等等,你能想到的基本都有java的影子。go不太适合业务复杂,各种数据处理的系统。比如转换,多次排序,过滤,聚合。这时候java真香,永远不嫌多,无需要重复造车马,这是 Java 成功的关键所在,历史沉淀下来的,让 Java 提供的选项太多,我们深入学习后就知道 Java 的学习成本比 C++ 更高。




go语言可以代替java吗 go语言会取代java吗_Go_04

编程语言



可能有人会疑惑为啥 Java 比 C++还难学?

是因为 Java 提供的选择项太多,语言、标准库和其它语言框架互操作方面,要掌握和拿捏好,学习成本非常高昂,否则写出来的程序可能非常低效或者复杂。

在生产力方面,Java 已经成为无所不包的航空母舰了,而在性能方面,C/C++ 依然占据着牢固的地位。对于 Go,它在需要性能时是 Python 与 Ruby 这些脚本语言的一个选项,而这些动态语言脚本基本应用在管理域:环境资源应用的监控和部署等,也有些把它们拿来做服务端开发,而在苛求性能时,这些语言的确就不擅长了。




go语言可以代替java吗 go语言会取代java吗_Go_05

java



Go 在某些场景下,比如数据分析或 HTTP应用方面,它是一种可选的角色,而在通用和复杂应用业务域,无论语言、生态和成熟度,都未准备好。Go 要做的工作还很多,还需要更多地迭代。