前言
其实小编在接触go语言,也有一段日子了,但小编并不是专业go语言,公司业务也不是go所搭建,所以学习go,也是断断续续、坎坎坷坷,只能偶尔接一些不重要的业务用go来实践下所学的成果。终于在今天,小编才来写一点自己的感悟。
为什么选择学习golang?
在接触go之初,小编心里想的是:在这语言层出不穷的时代,不多学点别的语言傍身,感觉难存世上。在众多语言中,go是当下口碑比较好和比较火的语言,而且更适用于后端服务,和小编职业很吻合,所以小编对go下手了。
初见golang-苦恼
小编以前都是用动态语言编程,刚接触 Golang 这种静态语言之后,第一感觉 “好麻烦”,我感觉我用python 10行代码写完,但是go需要100行的感觉,什么都需要自己来。
没有内建的集合类型;
不能够有未使用的变量和包,需要时不时的注释掉一些代码;
没有元组(tuple),需要设计自己的结构(struct)或者使用slice(类似数组);
等等。
再见golang-惊喜(surprise)
小编接触了一段时间go以后,才慢慢发现golang的美感,也深深吸引了我,真正让我从动态语言的思想转变到了静态语言,那些曾以为是缺点是累赘的特点,其实恰恰正是go的优点。go给我的感觉更像编程语言,不允许任何多余的累赘和浪费,严谨是它的本质。毫不夸张的说,有一种打开了另一扇窗的感觉。
golang有哪些优点?
速度快,高性能;
简洁明了,需要记的语言细节少,开发迅速(c);
完善的模块支持,模块也容易上手;
对程序员友好的并行架构(Erlang);
安全,绝大部分问题能消灭在compile time中(C minus pointer);
当然对于小编最深的感受还是golang的并发性好,Goroutine 和 channel 使得编写高并发的服务端软件变得相当容易,很多情况下完全不需要考虑锁机制以及由此带来的各种问题。单个 Go 应用也能有效的利用多个 CPU 核,并行执行的性能好,几乎无痛点,这是很多语言所欠缺的。
总结
技术之道,道阻且长。感叹之余,小编还是要继续前行啊,也欢迎大家见证小编golang的成长之路。