为什么许多原本的Java项目都试图用go进行重写开源?

个人觉得应该是三个主要原因吧。

一. 体积可以明显缩小,部署更简单因为容器服务越来越主流,这到不是说Java不能在云原生环境使用,现在云原生里的微服务模式,主流编程语言还是Java,只是,依赖于JDK平台确实让容器镜像体积大了很多!大部分情况下,微服务本身jar的体积(包括各种依赖的flat jar)也与JDK本身的体积相差无几(甚至不及)。

在多个服务情况下,拉取镜像的成本就高很多,虽然分层存储可以有效降低存储容量,但这也依赖所有微服务需要相同的镜像基座(部署好JDK),对于不同厂商的微应用(服务)情况不一定乐观。

Golang在这部分表现好很多,虽然打包后的Binary也不小(相比于C),但它包含运行时支持及静态链接,非常独立(单体程序易于部署),体积相比Java的服务,总体要小很多。

二. 开发难度不大后端应用服务最重要的是稳定,Java之所以能长时间占据后端开发市场份额,也是因为其异常及GC机制能够平衡好程序开发难度和程序质量这两个矛盾体。

而Golang也引入了GC,开发难度也不高(并不比Java难),不需要特别优秀的能力也能写出健壮的后端应用。

三. 语言发展的必然结果现在越来越多的人开始使用Golang写后端应用。

当你进入这个领域,你就会发现,你需要的各种框架,基础设施基本上都是在重复写一遍其他已经进入该领域的语言的各种框架和基础库

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复

    作者信息

    标签TAG

    相关文章