议你花 5 钟读完这篇文章,可以帮你节省100% 的寻找答案的时间,一定要坚持读到最后。
收藏的知友记得点个赞,大叔花了不少时间搜集整理,让好东西值得更多人看到。
如果问 Go 语言前景如何,我的回答是非常看好,能不能超过 Java 需要时间去验证。
Go语言优势
- Go语言有着C的执行性能,Python的开发效率
- Go语言是区块链技术的首选编程语言
- Go天生支持高并发编程
- Go语言的应用领域广:云计算、大数据、微服务、高并发等领域。
如果上班只是为了赚钱,那么我们来看一下 Go 语言的薪资水平情况
在 boss 直聘上面,薪资都在20K以上,咱们计算一下平均水平,年薪可以达到30~50万左右,很香了。

Go 语言电子书推荐
Go语言圣经:提取码:7emu
Go语言实战:提取码:f7o2
Go语言学习笔记:提取码:7il3
Go语言发展趋势
Go的成熟特征得到许多开发者的欣赏,快速简单的编译 Go编译速度很快,如此快速的编译使它很容易作为脚本语言使用(Go不使用头文件)。只需要简单地编译主模块,项目中需要的其他部分就会自动编译,Go允许函数返回多个值来解决这个问题。这个从函数里面返回的值,可以用来检查定义的类型是否正确并且可以随时随地对函数的返回值进行检查。
简化的并发性,相对于其他语言,并发性在Go里面显得更加容易。把‘go’关键字放在任意函数前面然后那个函数就会在其go-routine自动运行(一个很轻的线程)。go-routines是通过通道进行交流并且基本上封锁了所有的队列消息。普通工具对相互排斥是有用,但是Go通过使用通道来踢掉并发性任务和坐标更加容易。 优秀的错误消息 所有与Go相似的语言,自身作出的诊断都是无法与Go相媲美的。 其他还有许多吸引人的地方,比如高阶函数、垃圾回收、哈希映射和可扩展的数组内置语言(部分语言语法,而不是作为一个库)等等。
当然,Go并不是完美无瑕。在工具方面还有些不成熟的地方和用户社区较小等,但是随着谷歌语言的不断发展,肯定会有整治措施出来。尽管许多语言,尤其是D、Rust和Vala旨在简化C++并且对其进行简化,但它们给人的感觉仍是“C++看上去要更好”。
但是GO语言的优势也是明显的,比如说可直接编译成机器码,不依赖其他库,glibc的版本有一定要求,部署就是扔一个文件上去就完成了。
静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。
语言层面支持并发,这个就是Go最大的特色,天生的支持并发,可以充分的利用多核,很容易的使用并发。
内置runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC不算完美,但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC。
简单易学,Go语言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go关键字是25个,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载、对象等。
丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大,我最爱的也是这部分。
内置强大的工具,Go语言里面内置了很多工具链,最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难。
跨平台编译,如果你写的Go代码不包含cgo,那么就可以做到window系统编译linux的应用,如何做到的呢?Go引用了plan9的代码,这就是不依赖系统的信息。
内嵌C支持,听说作者是C的作者,所以Go里面也可以直接包含c代码,利用现有的丰富的C库。
我还是很看好GO语言的发展的。
2022年,Go语言的最大事件就是2月份Go 1.18的发布以及Go泛型的伴随落地。泛型的加入势必会给Go社区带来巨大影响。随之而来的将是位于各个层次的Go包的重写或重构:底层库、中间件、数据结构/算法库、乃至业务层面。这一轮之后,Go社区将诞生有关于Go泛型编码的最佳实践,这些实践也会反过来为Go核心团队提供Go泛型演化与在标准库中应用的素材。
但泛型在提升语言表现力的同时,也会带来Gopher们最不想看到的复杂性,也正因为如此,Go核心团队也一直在努力向社区传达“Go泛型使用的一般准则”,以告知大家哪种场景适合使用泛型来加强代码,哪些场合泛型是不合适的。尽力防止泛型语法被滥用。
当然前面也说过,Go 1.18不仅仅是加入泛型,还有Go工作区模式以及原生支持fuzzing,前者是解决本地module开发与引用的方案,后者则为编写漏洞更少的代码提供了帮助。
有泛型加持的Go语言,“吸粉能力”得到了加强,将进一步得到来自其他语言阵营程序员的青睐。相信在2022年后半段,Gopher数量以及Go语言的受关注度都会有一定的增长。
Go泛型即将上路,也刚刚上路,离“完善”这个目标还有一定距离,就像go module一样,预计经过3-5个版本的打磨与优化,Go泛型才会真正成熟起来,并成为Go语言的又一柄利器。
Go能做什么
web开发、网络编程
大量优秀的Web框架如Echo、Gin、Iris、beego等,而且 Go 内置的 net/http 包十分的优秀;
服务端开发
使用 C 或者 C++ 做的那些事情,用 Go 来做很合适,例如日志处理、文件系统、监控系统等;
爬虫及大数据
Go语言天生支持并发,所以十分适合编写分布式爬虫及大数据处理;
Paas云平台领域
Kubernetes和Docker Swarm等;
分布式存储领域
etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;
容器技术
大名鼎鼎的Docker就是使用Go语言实现的;
Go 语言学习路线
路线图1:

路线图 2

Go语言学习导航
网站中含有 GO 语言开源图书、Go语言开发工具、Go语言入门教程、Go语言进阶教程、Go语言官方资源、Go语言 Web 框架、Go语言微服务资源、Go语言领域大牛。


Go书籍离线阅读:
01 Go Web 编程

02 Go 并发实战

03 GoGuide - Go 语言保姆级教程

04 Go语言编程
05 The Way To Go

07 Go语言实战

Golang的优势
- 它是一种简单的编译型编程语言。
- Go 是多才多艺、灵活且非常易于使用的。
- Go 可以轻松扩展并且具有时间效率。
- 它有一个内置的并发机制。
- 轻松检测未使用的变量,并具有用于静态分析的工具。
Go 的缺点
- 手动内存管理是有缺陷的。
- 没有多少库,因为这是一种最近的语言。
- 包括指针运算等低级功能。
- Go 在使用这些工具时有很多限制,并且很难处理错误。
Rust 和 Golang,两者都擅长他们的服务。但是,在以下情况下选择 Rust 而不是 Go,
- 您的首要任务是性能。
- 你宁愿拥有一个安全的记忆而不是一个简单的记忆。
- 您希望在编程时进行细粒度控制,而不是线程。
- 运行时的正确性对您来说比编译时的速度更重要。
- 您喜欢在硬件级别编写的程序。
Go语言编码风格
最后,如果觉得大叔的分享对你有帮助,欢迎关注我