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

有几个原因可以解释为什么一些原本的Java项目会试图用Go语言进行重写和开源:

  1. 性能和并发性:Go语言以其出色的性能和并发性能闻名。相对于Java,Go具有更低的内存占用和更快的执行速度,这使得它成为处理高并发和大规模系统的理想选择。因此,一些Java项目可能希望通过重写为Go来提高系统的性能和扩展能力。
  2. 简洁性和可读性:Go语言以其简洁、清晰和易读的语法而闻名。相比之下,Java的语法和代码结构相对复杂。通过使用Go语言,项目可能希望减少代码量和提高代码的可读性,从而使代码更易于维护和开发。
  3. 单一二进制文件:Go语言的编译器可以将所有依赖项和运行时组合为一个单一的二进制文件,不需要外部依赖。这简化了部署和分发过程,减少了配置和依赖管理的复杂性。
  4. 社区和生态系统:Go语言拥有活跃且不断增长的开发者社区,提供了许多优秀的开源库和工具,这使得在Go中进行开发变得更加高效和便利。一些项目可能希望加入Go语言的生态系统,以获得更多的支持和协作机会。

需要指出的是,重写一个已经存在的Java项目是一个复杂的任务,需要权衡重写的成本、风险和收益。这个决策可能受到许多因素的影响,如项目规模、性能需求、团队技能等。因此,并非所有的Java项目都会选择重写为Go语言。




有人的地方就有政治,对互联网公司来说,重构是政治斗争和裁员的重要手段。

给你举个例子吧。前同事A之前在某家公司做运维主管,公司是自建的机房,包括部署,监控,故障自愈,数据库等等平台有关的一切,都是他一手搭起来的,没有人比他更了解。新来的开发经理不服,非要自己来部署,导致出了大故障,等待跑路,A出马几分钟搞定。于是公司只能继续供着他,工资奖金啥的都给的多,偶尔他请假了,有问题也只能等他回来,时间长了,领导哪能容忍这种事?

正好这时候云服务器强势上位了,公司领导拍板决定全面上云,让其他技术也参与,担心这位仁兄不配合,承诺迁移完后有奖金。几个月后迁移完成了,Redis、MongoDB、MySQL使用云托管的,先废一半。部署的时候由开发一起参与CI/CD流程,这时候他的重要性再次被减弱,没多久待不下去了。

放到开发重构也是一样的道理,公司的业务架构都是老员工搞起来的,老员工岂不是会恃宠而骄?那新人怎么上位?

所以不要觉得有一技之长会越来越吃香,公司领导不会让一家独大的局面长久的,会威胁到他。




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

一. 体积可以明显缩小,部署更简单

因为容器服务越来越主流,这到不是说Java不能在云原生环境使用,现在云原生里的微服务模式,主流编程语言还是Java,只是,依赖于JDK平台确实让容器镜像体积大了很多!大部分情况下,微服务本身jar的体积(包括各种依赖的flat jar)也与JDK本身的体积相差无几(甚至不及)。在多个服务情况下,拉取镜像的成本就高很多,虽然分层存储可以有效降低存储容量,但这也依赖所有微服务需要相同的镜像基座(部署好JDK),对于不同厂商的微应用(服务)情况不一定乐观。

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

二. 开发难度不大

后端应用服务最重要的是稳定,Java之所以能长时间占据后端开发市场份额,也是因为其异常及GC机制能够平衡好程序开发难度程序质量这两个矛盾体。而Golang也引入了GC,开发难度也不高(并不比Java难),不需要特别优秀的能力也能写出健壮的后端应用。

三. 语言发展的必然结果

现在越来越多的人开始使用Golang写后端应用。当你进入这个领域,你就会发现,你需要的各种框架,基础设施基本上都是在重复写一遍其他已经进入该领域的语言的各种框架和基础库

展开阅读全文

页面更新:2024-02-11

标签:重写   项目   高效   可读性   开发者   语法   体积   效率   内存   性能   领域   语言   代码   程序   财经   公司

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top