我是一名go吹?

从性能上,依照公开的 benchmark,Golang 和 Java、Scala 大概在一个量级,是 Python 的 30 倍左右。其次 Golang 的编译速度较快,这点相对于 Java、Scala 具有比较明显的优势,再次其语言特性决定了 Golang 的开发效率较高,此外因为缺乏 trycatch 机制,使得使用 Golang 开发时对异常处理思考较多,因此其上线之后维护成本相对较低。但 Golang 有个明显缺陷就是目前第三方库较少,特别跟 AI 相关的库。
这四种语言我最近都使用过,最喜欢的还是golang,当然它的槽点非常多,比如糟糕的包管理工具(不知道最新的包管理工具是不是有所改善),缺失的泛型设计(go2.0要加入?),到处都是的if err!=nil处理(这里没有try catch机制但是反而让开发人员必须去关心每个异常以及错误),那这么看来go的缺点变成了优点,哈哈哈,不知不觉成为了一名go吹,go在并发编程方面十分的方便,谁用谁快乐,用了go的协程和channel,我再也不想用Java的多线程(关键字又多代码又长,搅得人头皮发麻),而且交叉编译让跨平台变得非常简单,部署起来更是没得说,一台全新的服务器,我什么都不用装,go build成二进制文件,不依赖其他库、无需运行时环境扔上去就完事了!
Go的并发性能语法优势之类的,网上已经很多人夸了,这里说一个比较少人提的优点。Go可以让不熟悉底层的程序员平滑的接触和深入底层。在一开始只学会Go,掌握基本的语法以及编程技巧,比如避免遍历、避免数据拷贝等,就可以做出很好用的服务端程序了。要进一步追求性能,那就可以挖开Go的源代码,看其内部实现,再配合Go提供的pprof工具分析项目。Go的代码很清晰,分析工具也很好用,到了这个阶段你就不再需要听别人说哪个好哪个不好了,你自己会有自己判断的。Go提供一个功能叫cgo,可以让Go快速的对接C/C++写的库,可以从cgo去逐渐熟悉C/C++的,比较奇葩的学习路线,但是学习曲线不会那么陡峭,一边学就可以一边产出代码见到成效。当时google产生goalng的context就是为了解决c/c++能做出来但轮子比较少或者造起来比较难的情况。选了Go就相当于选了一条比较平缓的路线,但是不管用什么语言或技术做服务端,每个路径肯定都是指向系统底层的,就看怎么走而已。

当然做服务端开发还是得越做越往底层走的,底层的技术搞懂了,语言之前的区别就只是招人难不难,用起来开不开心的问题而已!
附类比图一张:
在这里插入图片描述

发布了169 篇原创文章 · 获赞 224 · 访问量 26万+

猜你喜欢

转载自blog.csdn.net/sureSand/article/details/86526777