0

0

为什么每个人都应该学习 Go(即使您认为生活中不需要另一种语言)

DDD

DDD

发布时间:2024-09-16 08:12:04

|

772人浏览过

|

来源于dev.to

转载

为什么每个人都应该学习 go(即使您认为生活中不需要另一种语言)

啊,Go,编程语言。您可能听说过,也许是从办公室里一位过于热情的开发人员那里听说过的,他总是不停地谈论他们的 API 现在有多“快得惊人”。当然,您已经涉足过其他语言,也许您会想:“我真的需要另一种语言吗?”剧透警报:是的,是的,你知道。 Go 就是那种语言。让我以最讽刺、最真诚的方式为你解释一下。

1. 很简单(真的很简单)

Go 的语法非常简单,几乎令人感到侮辱。如果您花了数年时间来掌握 JavaScript 框架的复杂性,与 Python 装饰器搏斗,或者像对待一颗活手榴弹一样围绕 C++ 的内存管理跳舞,那么 Go 会感觉就像有人递给您一本图画书。不,说真的。 Go 是有意简约的,它的哲学是“我们不需要所有这些花哨的功能,让我们把事情做好”。

虽然其他语言为你提供了所有工具来将你的代码制作成复杂的、难以阅读的艺术品,但 Go 的设计师认为,“不,让我们让它发挥作用吧。”没有复杂的继承层次结构,没有复杂的函数重载,没有看起来像噩梦代数的模板。只是直接、切题的代码。就好像他们在说:“在这里,别再苦苦思考了。”

2. 并发如此简单,几乎粗鲁

如果您曾经尝试过用传统语言处理并发,您就会知道它会造成多大的伤害。线程池、互斥锁、死锁——光是想到这些就让你想蜷缩成一团哭泣。但是去吗?哦不,Go 说,“线程?噗。这里有 goroutine。”在 Go 中启动轻量级线程是多么容易,这几乎是不尊重的。你只需在函数调用前添加一个 go 关键字,然后 BAM,它就会同时运行。

甚至别让我开始使用 Go 的频道。这就好像 Go 看了其他所有语言在并发方面的尝试,然后说:“你们把事情搞得太复杂了,看看这个。”通道让 goroutine 能够像乖孩子在课堂上传纸条一样进行交流——没有大喊大叫,没有大惊小怪。你甚至可能会因为它的顺利运行而感到受到侮辱。

3. 一个不会让你哭泣的标准库

你知道当你必须安装 47 个软件包只是为了发出一个简单的 HTTP 请求时的感觉吗?不在 Go 中。 Go 的标准库就像一把瑞士军刀,你以前不知道自己需要,但现在却离不开它。想要启动网络服务器吗?完毕。需要处理 JSON?简单的。想要编写一个通过网络进行通信的并发程序?它已经在工具箱中了。

Go 的标准库有着这种安静的自信,就好像它在说:“哦,你想构建一个 Web 服务吗?你可以,无需引入 200 个第三方依赖项并牺牲你的灵魂。”这就像获得一种语言的所有高级功能而无需支付昂贵的订阅费用。老实说,这太粗鲁了。

4. 它是编译过的,所以速度很快(而且非常烦人)

还记得您坐在那里、敲着脚、等待 Python 或 JavaScript 代码运行的所有时间吗? Go 没有时间做这些废话。它已编译,而且速度很快。就像,眨眼就完成了。当然,其他语言会尽力而为,但 Go 只是将其闪电般快速的二进制文件扔给你,就像,“什么?你还在吗?已经完成了。”

最好的部分?您不需要了解正在发生的所有幕后魔力。你只知道 Go 生成的可执行文件就像 Usain Bolt 喝浓缩咖啡一样运行。当其他语言需要花时间热身并穿上跑鞋时,Go 已经冲过终点线,洗了澡,正在享受赛后冰沙。

5. 跨平台,没有通常的戏剧性

曾经尝试过让 Python 脚本同时在 Windows 和 Linux 上运行吗?是的,这就像在大学里试图组织一个小组项目一样——充满了困惑、奇怪的错误和很多相互指责。但是去吗? Go 并不关心你在什么平台上。编译一次,它几乎可以在任何地方运行。这就是编程世界的“当然,无论如何”的态度。

HIX Translate
HIX Translate

由 ChatGPT 提供支持的智能AI翻译器

下载

如果您喜欢编写 Docker 容器(说实话,谁不喜欢好的容器呢?),Go 的二进制文件就是梦想成真。一个不依赖运行时环境“恰到好处”的单一静态链接二进制文件相当于有一个室友在没有被要求的情况下实际上自己洗碗。这好得令人难以置信,但我们来了。

6. Google 使用它,所以你知道它是合法的

现在,我知道你在想什么——“但是如果我只想构建小型副业项目怎么办?”当然,你可以。但让我们面对现实吧。当你听到控制大部分互联网的谷歌公司创造了 Go 时,你会感觉自己正在挥舞着一个专为统治世界而设计的强大工具。当然,你可能会从一个小型网络服务器或一些 API 开始,但在内心深处,你知道如果你真的愿意的话,你可以用这个东西构建下一个 Google 规模的系统。

没错,Go 是为扩展而设计的,但不用担心,如果您的第一个项目是待办事项列表应用程序,没有人会评判您。 (其实,我可能会。只是一点点。)

7. 它是开源的,所以你可以假装你做出了贡献

我们都喜欢开源项目,对吧?它给我们一种作为“社区”一部分的温暖模糊的感觉。嗯,Go 是开源的,如果你愿意,你可以深入研究代码。你真的会为此做出任何贡献吗?可能不会。但只要知道你可以(如果你觉得这样就足够了,对吧?

你可以在聚会上告诉人们,“是的,我正在使用 Go——完全开源,这对社区来说很棒。”然后坐下来享受同事们恭敬的点头。没有人需要知道您的真正贡献主要包括 GitHub 上的明星存储库。

8. Go 社区:出奇的冷静

看,我们都是编程社区的一部分……好吧,我们只能说他们可以“热情”。一些语言社区(我们没有指名道姓,但你知道你是谁)可能会因为他们的“最佳实践”和对编写 for 循环的正确方法不断挑剔而有点令人生畏。但是 Go 的社区呢?就像呼吸新鲜空气一样。他们很支持你、乐于助人,不会因为问一个简单的问题而让你觉得自己像个白痴。他们的冷漠程度几乎令人不安。

也许是因为语言本身并不想变得过于复杂,所以没有人觉得有必要表现得高人一等。无论出于何种原因,Go 社区都是您可以找到真正支持的地方,而不是伪装成“建议”的看门人。


结论

那么,为什么每个人都应该学习 Go?因为它简单而不愚蠢,快速而不大惊小怪,而且功能强大,足以处理您扔给它的任何疯狂项目。就像那个总是冷静、镇定的朋友,不知怎的,他的工作效率高得离谱,但又不让人觉得工作很辛苦。

如果您厌倦了那些溺爱您或要求您牺牲理智的语言,那么 Go 就是您的最佳选择。尝试一下,谁知道呢——您可能会成为办公室里那个过度热情的开发人员。老实说,这不是很有趣吗?

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

457

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

549

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

337

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

83

2025.09.10

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

786

2023.08.10

github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

4492

2026.01.21

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1518

2023.07.26

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

1172

2023.07.27

C++多线程并发控制与线程安全设计实践
C++多线程并发控制与线程安全设计实践

本专题围绕 C++ 在高性能系统开发中的并发控制技术展开,系统讲解多线程编程模型与线程安全设计方法。内容包括互斥锁、读写锁、条件变量、原子操作以及线程池实现机制,同时结合实际案例分析并发竞争、死锁避免与性能优化策略。通过实践讲解,帮助开发者掌握构建稳定高效并发系统的关键技术。

4

2026.03.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 10.8万人学习

Git 教程
Git 教程

共21课时 | 4.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号