go语言替换j***a,go语言替换字符串

kodinid 4 0

大家好,今天小编关注到一个比较意思的话题,就是关于go语言替换java问题,于是小编就整理了2个相关介绍go语言替换Java的解答,让一起看看吧。

  1. 大家觉得Go语言真的比Java简单吗?
  2. 为什么许多原本的Java项目都试图用go进行重写开源?

大家觉得Go语言真的比J***a简单吗?

j***a适合很多人维护一个项目、这时候j***a的工业性质就能比较好的展现,优秀的程序员和拉垮的程序员写的代码不至于差别很大。而go不一样,每个人都有自己的喜好和思维方式,写出来的代码天差地别,所以适合中小型企业使用。因为开发起来比j***a快是真的。

web开发还是用j***a吧,用springboot简单方便,go语言优势是执行效率快,但我感觉并不简单,go没有异常处理,每个方法里都要判断err,代码凌乱,还有go的继承接口实现都是啥啊,直接实现方法就行没有override,写错了都不知道,还是j***a简单用j***a几行解决的事,go要写一堆

go语言替换java,go语言替换字符串-第1张图片-安济编程网
图片来源网络,侵删)

go学习门槛比j***a高,工具链更先进,內存占用是j***a的1/10,性能也不比j***a差,生态没有j***a完善,库也没那么全,面向对象差很多,代码可重用性差点

为许多原本的J***a项目都试图用go进行重写开源

国内不多,国外倒是不少公司会这么做,我司就这么做了,把之前部分微服务从J***a转为了Go,以及部分新的微服务也直接用Go开发。

当时部门开会讨论,非中国人那波人认为Go语言执行非常快,效率得到很大提升;但中国人这波人认为是浪费时间,J***a性能也不差,而且学习成本低。

go语言替换java,go语言替换字符串-第2张图片-安济编程网
(图片来源网络,侵删)

但拗不住外国人占主流,最后还是部分微服务***用了Go。根据目前使用来看,使用Go的微服务在性能上的提升并没有多明显(也许针对高并发会好一些),所以本人一直持保守意见,不过好在后来没有再要求把已开发的J***a服务代码改为Go了。

不过Go也有Go的好处,对于微服务,***用Go开发的话确实轻量化,代码量比J***a少,开发速度可以非常快,并且部署k8s也很简单,还可以方便的直接集成到云端(例如GCP的Cloud Function)。

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

go语言替换java,go语言替换字符串-第3张图片-安济编程网
(图片来源网络,侵删)

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

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

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

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

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

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

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

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

二. 开发难度不大

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

三. 语言发展的必然结果

现在越来越多的人开始使用Golang写后端应用。当你进入这个领域,你就会发现,你需要的各种框架基础设施基本上都是在重复写一遍其他已经进入该领域的语言的各种框架和基础库😄 这是工程本身决定的,到不一定是抄J***a。记得Nodejs刚出来的时候,借助于V8强大的性能,大前端的各种开发工具,框架如雨后春笋般发展起来,但也基本上是走了一遍其他语言(尤其是J***a)的路。

不同语言在发展过程中,总会进入其他“先入语言”的领域,然后也会再走一遍人家的路,完善和建立自身在该领域的生态。这是后发语言发展的必经之路!

到此,以上就是小编对于go语言替换j***a的问题就介绍到这了,希望介绍关于go语言替换j***a的2点解答对大家有用。

标签: j***a 语言 开发