首先GO可能无法真正意义上取代java。但是有可能抢占一块天地。

但是想要一个语言完全替代其他语言,是做不到的!每个语言都有其独特的优势,再加上现在的公司产品业务越来越复杂,一种语言独霸的情况更不可能出现。

go目前只在大型互联网企业中在项目中部分使用,主要是看重它的性能。相比较于java而言,肯定没有那么多的框架。

我司因为业务需求,需要开发一个可以支持万级别qps的系统。经过技术评估,我们最终选择了go。最终事实证明,我们的选择是正确的。一台4核8G的机器完全可以支持10000的qps。

1、语法简单,容易入门
go语言非常容易入门。如果是有别的语言基础,如python、java等,可能只需要几个小时就可以基本掌握这门语言并可以使用它。当然如果要精通它,还需要一定的时间。

2、天生的高并发
我们选择它,主要由于它天生的高并发。go语言本身的特性使得它特别适合高并发场景。内部的协程不同于线程,靠语言本身调度,而不是靠系统调度。解决了多线程下cpu上下文频繁切换导致的性能损耗。

3、丰富的三方库
github上有大量的第三方库,安装即可使用。

目前go学习成本而言,对大公司的人才一般没多大问题,接受能力强,加上大公司可以试点的产品有很多,快速投入练手都是很容易的,小公司或是传统的行业公司,一是折腾不起,二是技术本身就很老旧,本着快速适应业务或是业务稳定的原则,更愿意用成熟的方案和技术,稳才是重点,出了问题一时很难找到,就头大了。