Go 语言是不是当今最好的语言
市面上已有很多,从性能和并发能力等方面,对比各大语言的优劣。而此处准备另辟蹊径,从编程人员的实际使用感受,来谈谈这个话题。很显然,这是个有很强个人喜好的讨论。大家有兴趣的话,也可以留言,说说自己的观点。
概述
本人有十多年的 web 开发经验,也在实际项目中,长期使用过 PHP、Python、Java、Go 等语言。Node.js 使用并不多,而 Rust 还未有尝试。总体下来,目前最喜欢的还是 Go 语言了。下面具体说下原因。
简洁的语法
如它的设计理念所言,Go 语言写起来简洁明了。没有小括号,结尾也没有分号。作为强语言,也提供了简洁的短变量声明方式。所有的写法,都让人感觉简单而又舒服,而且没有很强的被禁锢的感觉。这里,我们举例来对比一下,有如下入口程序:
以上代码中,实现了依次打印数字的功能。整个代码简单明了。而相同的逻辑,我们来看看 Java 的版本:
很显然,又重又比较费事。这里,我们也提供下 Python 和 PHP 的版本:
大致来看,也还算简单明了。但 PHP 的版本还是略显繁琐,具有最大特色的`$`符号,也不置可否。
灵活的框架
我喜欢 Go 语言的另一个重要原因,就是因为 Gin 框架。它能带给程序员很大的自由度。包括并不仅限于,读取配置的方式和 ORM 库等。而早年使用过的 PHP 框架,如 ThinkPHP、Laravel、Yii 等,只能在它们整套的框架逻辑下编码。对有一定技术追求的人来说,并没有特别自由的操作空间。对于 Java 的 Spring 框架,它有自己一整套的解决方案,写代码有时候搞得像写论文,严谨而又乏味。对我来说,编程不该是一项非常有趣的事情吗?而且,一门语言,因为 Spring 框架的产生,Web 开发才变得友好,本身也是比较别扭的事情。对于 Python 语言,其实语言本身我一直也挺喜欢。但它的 web 框架,如 Django、Flask、FastAPI 等,一直并没有让我有特别好的体验感。很多项目,后期总会有一堆糟糕的 ORM 操作。这些事情,也一直让我匪夷所思。
实用技巧
Go 语言最实用的技巧,当然是使用`go`关键词,来开启新的虚拟线程了。没有语言能像它这样便捷。举例如下:
当然,Python 也有很酷炫的的语法糖。比如以下代码,循环、判断、生成新列表,一气呵成:
而 Java 的函数式编程,我也挺喜欢。但代码量还是有些冗长:
美中不足
当然,Go 语言也有一些美中不足的地方。比如万恶的错误处理方式。官方也尝试讨论了多种优化方案,但一直没有让所有人都满意。大家应该还在大批量写如下代码吧:
但愿,以后的版本,Go 语言可以找到很好的解决方案。比如,可以像如下方式写代码。(开个玩笑)
版权声明: 本文为 InfoQ 作者【丛风】的原创文章。
原文链接:【http://xie.infoq.cn/article/b4437e139ce9e2eb144378921】。未经作者许可,禁止转载。
评论