报告!Golang冲上来啦!

今天又来讲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 代码的设计和细节中体现着很多人性化的思想。

就比如时间格式转换,就封装的更让人容易记:

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语言有望继续保持领先地位,为软件开发带来更多的惊喜和突破。

参考

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

相关推荐
m0_5150984211 小时前
c++怎么获取文件的Inode节点信息_stat结构体深度解析【详解】
jvm·数据库·python
knight_9___11 小时前
RAG面试篇9
java·人工智能·python·算法·agent·rag
技术程序猿华锋11 小时前
OpenAI GPT Image 2 教程:API Key 获取、参数说明与 Python/Node.js 示例
python·gpt·node.js·ai绘画
m0_6742946411 小时前
HTML怎么限制输入字符数_HTML input maxlength属性用法【详解】
jvm·数据库·python
石榴树下的七彩鱼11 小时前
智能抠图API怎么选?AI抠图多语言接入实战(Python/Java/PHP/JS完整教程)
java·python·智能抠图·ai抠图·api接入·图片去背景·电商工具
maqr_11011 小时前
layui table单元格编辑 layui表格如何实现可编辑
jvm·数据库·python
小炫y11 小时前
bilibil
python
z44247532611 小时前
HTML函数开发用旋转屏有优势吗_特殊硬件形态适配说明【方法】
jvm·数据库·python
Ares-Wang11 小时前
Flask》》flask-login
后端·python·flask
wangjialelele12 小时前
从零入门 LangChain:Python 语法详解 + 工具开发 + 结构化输出实战
开发语言·人工智能·python·语言模型·langchain