冒着被Go粉喷死的危险来瞎说几句,您可别当真哦。
说实话,还是去年的时候,我还是Go粉呢,在我的眼中,Go就像一个白马银枪的小将,一下子进入阵中,开始挑战众多的语言悍将,还在微信里面发过一篇学习Go的文字,刚才找找不到了,好像微信里面没有搜索的功能。今天的文字呢,主要是吐槽,CSDN不就是吐槽的地方吗?对,程序员吐槽的地方,至少我这么觉得,也这么干。
好像对Go语言印象已经很模糊了,不过印象深刻的有一下一些语言特征:
1、接口,完全采用动态语言duck typing的方式来定义接口,这一点确实比较有创意,节省了太多框架上的啰嗦;
2、原生支持多线程编程、多核并行编程,采用channel进行同步,消除了传统多线程编程的繁琐;
3、支持lambda,这个是语言是否现代的最突出的标志,因为弥补了语言层次之间的粒度鸿沟;
好像印象中也就这三个比较闪亮,其它的没有太多印象了。
对于什么强制大写为接口,小写为私有,不要分号,减少括号啥的,都是文法上的小东西,这个就属于吹毛求疵了。
但是,我最最最不能容忍的是它的错误处理机制,简直让人无法接受,您造吗?
作为一个用了十几年面向对象思路的程序员,如果某一个流程会产生错误,我们从设计上就会让框架来处理,因为通过返回值的处理方式太具体,太繁琐了。试想,每次调用一个方法,都要判断一次错误码来处理,这程序应该是小孩子写的吧?太丑陋了。
如果把这几个特征直接加到c语言上,我觉得c语言就完美了。
对,您还说,Go语言最大的优势是垃圾回收,但是我告诉您,c语言的最大优势是指针啊。容易出错,那是设计有问题,试想哪里有好厨子怕快刀的?