今天又来讲Go语言,根据全球知名的编程语言排行榜TIOBE在4月份公布的最新的编程语言排名,令人瞩目的是,Go语言已经跃升至历史最高位,位列排行榜第七名,并且Go语言是前十榜单中最年轻的编程语言。这一成绩不仅彰显了Go语言的强大实力,也进一步验证了其在软件开发领域的广泛应用和高度认可。
(数据来源:https://www.tiobe.com/tiobe-index)
Go语言的历史曲线图,在2017年用户比例达到最高,并且在近两年正在呈上升趋势。
(数据来源:https://www.tiobe.com/tiobe-index/go)
借着这篇文章,我们来分享一个有意思的话题:Go语言之"道"。
"道"一般是指事物的内在本质或自然趋势。水倾向于流动,这就是它的道,你可以给它筑坝、引导它、抽水或以其他方式干扰它,但尽管你付出了所有努力,它最终还是会回到原来的地方。
那么Go语言之道是什么呢?
善良
善良对于Go语言意味着什么?
意味着Go语言是为人创造的语言,而不是为计算机创造的。相比机器人可能容易犯错,不耐烦,缺乏经验,所以Go 代码的设计和细节中体现着很多人性化的思想。
就比如时间格式转换,就封装的更让人容易记:
format := time.Now().Format("2006-01-02 03:04:05") // 因为在国外时间一般把年放在后面,所以就成为01-02 03:04:05 2006,即123456
除此之外Go基础库提供描述性名称,比如包名,简单容易记录,易于导入,内部设计深度抽象,让用户利用小而简单的 API 来访问强大、有用的行为。
Go语言还善待那些运行Go程序的人,Go程序易于安装和更新,需要最少的配置和依赖关系,并捕获最常见的使用错误和运行时错误,并为用户提供有关问题和如何修复的有用、准确和友好的信息。Go程序安装不需要配置额外的插件,只需要打开Go Modules开关,就可以通过依赖构建项目,相比Java的Maven更简单。
俭朴
Go 本身是一种简单的语言,只有25个关键字,是关键字最少的编程语言之一。
break | default | func | interface | select |
---|---|---|---|---|
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
Go语言设计的程序小而集中,整洁,只做好一件事。这样做的好处就是不会让用户使用大量的时间成本去学习。
灵活性是一件好事,但我们不应该试图处理每个案例,或者提供每个功能,不应该为了我们不需要的东西而牺牲一个简单的设计。一个简单的程序比一个复杂的程序更容易扩展。
谦逊
Go语言本身是谦虚和务实的:它不具备其他一些语言的所有高科技特征和理论优势。
Go语言认识到我们容易犯错误,它有很多方法可以保护我们免受错误的影响。比如负责分配内存,自动垃圾清理,警告我们未使用的导入或变量。
所以作为一名Gopher,我们也可以谦虚一点,我们编写代码并不是为了给每个人留下深刻印象,而是做显而易见的事情。我们清晰直接地表达自己,而不需要在代码上突兀地彰显自己的个性。
在程序的错误处理上,Go语言更鼓励发生错误时处理一切,因此会谦虚地返回错误,并提供有用的上下文信息,将其留给程序员来决定该怎么做。
无为
最好的优化是不需要优化。Go之"道"的最后一个教义是无为。
解决问题的心态是好的,但没有问题才是更好。我们如何重新定义这个问题,让它消失?什么样的需求重述会使解决方案变得灵活或显而易见?有没有一个简单而优雅的设计?所以最好的优化是根本不需要做这些事。
以上就是对Go语言之道的简要分享。相信未来随着技术的不断发展和创新,Go语言有望继续保持领先地位,为软件开发带来更多的惊喜和突破。
参考:
- https://bitfieldconsulting.com/golang/tao-of-go
我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!