先说结论,确实是现在越来越多公司在转 Go 和招聘 Go,无论是大公司还是小公司。原因无非以下几点
- 大公司背书,毕竟是谷歌亲儿子,有专门的团队在维护,不用担心突然就撒手不管了
- 性能不错,天然支持并发,语法简洁易于上手,这些优点也促使了团队在做技术选型时选择了 Go
- 节约成本,性能好比较省机器,易上手比较容易招聘,经过几个月的内部培训也能写出高质量的业务代码
- 社区生态越来越好,越来越多开发者和大公司团队加入 Go 开源社区,并持续不断地贡献着,如 k8s,docker,grpc,gin,wire 等。这点非常重要,活跃的社区生态意味着
- 很多时候我们不需要重复造轮子,直接使用已有轮子,可以省去很多成本
- 有些坑已经被人踩了,我们不需要再去踩一次了
- 大量的最佳实践
- 云原生的兴起,所以你会看到很多运维开发工程师已经在学习 Go 了
确实是这样的golang用的越来越多,原因从这么几个方面吧:
1. 从语言上Golang毕竟是google出品,有自己的goroutine和channel的优点设计,主要优势是和C++比有GC,和Java比更简洁,和Python比更快,golang介于C/C++和Java之间,往下挤压了C/C++的空间,往上挤压了Java的空间,golang可以用来做很多事情,而且上手简单;
2. 对很多创业公司来说,Python和golang可能是首选,毕竟语法简单,有GC,库丰富,性能接近C,这在开发效率上是非常明显的,以头条为例初试阶段很多后端服务都是Python的,性能跟不上后来都改成了golang,毕竟性能提升不是一点半点的。
你好,我是科技公司技术主管,我们刚刚经历了从java到golang的开发语言演变过程,我来分享一下我们的经验,希望对大家有所帮助。
我们为何要做java到golang的转型呢?
和我们的业务模式的转型有很大的关系。之前的模式是用户自己买vm,我们的java应用部署在上面。后来我们自己开始做云平台了,基于成本的考量我们对运行在云平台上的应用的cpu和内存的开销非常的关注。你想想看,如果一个java应用,内存占用2G,cpu 1 core,如果有10个用户在我们的云平台上部署这套应用,则共计需要内存20G,cpu 10core;但是如果这个应用用golang编写,可能内存只占用512M, cpu 0.5 core, 那么总体的资源开销只有5core5G, 这样就大大的节约了成本。(在公司看来,节省的钱就是赚到的钱)
所以,我们做这样的转型只是看中了golang的性能优势,节省内存和cpu。我们并不否认java的优秀,我们在一些组件上依然使用的java。
事实上,top10编程语言里没有golang,而排名第一的依然是java:
就喜欢编译之后不依赖任何东西[抠鼻][抠鼻]
知乎一开始用py,哔哩哔哩一开始用php,后来都发现这类脚本型语言在大并发下效率低,于是都用go重构了,据说只用之前1/5的服务器资源就能满足同样的访问需求
个人觉得这种语言比较适合大公司,小公司创业型公司,还是用传统语言合适,人员招聘容易,出了问题也容易排查解决,最后是有很多成熟的开发库和解决方案
从我这边的角度看,go天然的高并发的支持,使得开发多线程高并发程序易乎简单,所以我在做压测的时候,就不用像以前搞一堆jenkins集群或者gatling集群,方便高并发测试。
现在是有一些,大公司在尝试使用go语言,但就国内而言,比较少的公司吧go当做公司的核心开发语言,他们尝试把对性能要求较高的基础模块用go进行重写,以便获得竞争优势。
个人乐观看好go语言。
dactor也不错,也是协程的,java的,方便java程序员使用
腾讯 字节 滴滴 阿里基本都在用,未来基本上c++或者php写的代码都可以用go重构