假设你作为一个小白去论坛上问,我应该学习那门编程语言?

有人可能会说,你必须去学C语言!因为这个世界上所有软件底层都是C写的!不懂C语言的不是一个合格的程序员!还有人可能会说,来学Python吧,Python入门简单,可以很快让你感受到编程的乐趣,也有人会让你学习Java,然后什么跨平台啊,一次编写到处运行,面向对象哦,巴拉巴拉。。。

相信这是大多数人的回答,很多人说C/C++的性能好但是学起来难,Python语言简单易学但是性能差,js从前端客户端到后台,全是js实现,Java可以一次编写到处运行,但是同js一样拖着虚拟机,吃内存!

那么,有没有一种语言,既有高性能,又有简单的语法,还方便跨平台,并且不用拖着笨重的运行时/虚拟机吃内存呢?

有的兄弟,有的,不过像这么优秀的语言可没有9门,恰好呢本文的主角Golang满足了这些苛刻的要求。 tiob

在2025年的今天,Golang在TIOB排行第7名,并且仍保持上升的趋势,成为最流行的编程语言之一。

一门简单的语言

那有人要问,Golang它怎么就简单了?这里我要说,一门语言的简单应该体现在多个方面。

快速搭建开发环境

如果你学过c/c++,你就会发现搭建开发环境实在是很复杂,比如,gcc和clang?选哪个编译器?makefile是什么?我怎么代码补全?怎么有些ide还内置编译器啊?卧槽你用的什么C标准,我编译不过去!

如果是Golang,那你和我的go run说去吧,一键安装sdk,gopls现代化lsp帮你补全代码,版本随便升级,依旧编译成功!

语法简单易学

Golang只有大约25个关键字,相比之下,C++有近百个关键字,Java也有50多个。

现代化,统一的包管理器

c/c++: 我想找个三方库,一会cmake一会xmake,不同系统还有不同的标准库!

Python: conda? pip? uv? venv虚拟环境?怎么包都是c/c++写的啊,乱七八糟!

Java: gradle? maven? 我的JDBC升级了怎么连接不上数据库?

js: npm? yarn? node?浏览器?我的npm包又冲突了!

Golang的包管理是去中心化的,你不必上传到由任何组织管理的中央仓库,只需要一个公开的git仓库,用git tag控制版本,任何人都可以直接通过go get引用你的代码。同时,Golang官方提供缓存,不必担心git仓库删库跑路。

跨平台兼容

也许你听说Java所谓的一次编写,到处运行,但是这真的是跨平台吗?依我看来,Java这种语言是伪跨平台,你的目标平台必须拥有jre,依赖于运行时才可以到处运行。

那Golang的跨平台呢,相比于Java,Golang是纯正的编译性语言,它没有字节码这种中间产物,但是golang做到了世界上最强的交叉编译能力,你可以用go build生成不同平台的可执行文件,并且你可以用go tool dist list查看支持的平台。 alt text 几乎可以实现一次编写,随处编译!

单一平台,编译出任何其他平台的可执行文件,无需额外依赖,仅需更改参数即可