开发人员喜欢或讨厌 Go 语言的 8 个原因


Go (Golang) 是 Google 开发的一种编译型、并发型,并具有垃圾回收功能的编程语言,于 2009 年 11 月正式宣布推出成为开源项目,2012 年发布 1.0 版本。

如今,谷歌仍在继续投资该语言,最新的稳定版本是 1.22.5。在最新的 TIOBE 7 月榜单中,Go 排名第七。与其他所有编程语言一样,有人喜欢 Go 语言也有人讨厌,同样的功能既会带来诋毁也会带来赞美。

InfoWorld 撰稿分析了开发人员喜欢或讨厌 Go 语言的 8 个原因,具体如下。

1、易于学习

Go 的设计者特意打造了一种易于学习的语言,没有太多复杂的功能或特异之处。

喜欢的点在于:对于新程序员和团队成员来说,更简单的语言更容易学习和掌握。由于老程序员可以很快学会 Go 的新技巧,因此项目人员配备也更容易。不仅如此,相关代码通常也更容易阅读。

讨厌的点在于:太过简单反而束缚了手脚。“一个女巫会选择一本简略的咒语书吗?四分卫会选择只有几个战术的战术书吗?一些程序员认为,用 Go 编程就像一只手被绑在背后。这种语言缺乏其他语言设计者向世界展示的所有聪明才智,而这是要付出高昂代价的。”

2、Go 不会偏袒任何一方

最初开发人员希望创建一种小型语言,为此他们牺牲了其他语言中许多受欢迎的功能。Go 是一种精简的语言,即可以满足用户的需求,又省去了一些繁琐。

喜欢的点在于:许多开发人员都称赞 Go 的简单性。Go 不需要他们掌握或保持数十种功能的专业知识才能熟练使用。

讨厌的点在于:每个人都有一些喜欢的功能和技巧,但 Go 很可能不提供这些功能和技巧。开发人员有时会抱怨,他们只需用 COBOL 或 Java 或其他喜欢的语言写一行代码,就可以完成在 Go 中可以完成的相同任务。

3、基于 C 的语法

Go 的设计团队确实基于传统 C 语言改进了一些缺陷,并简化了一些细节,使其看起来和感觉更现代。但在大多数情况下,Go 完全继承了始于 C 语言的传统。

喜欢的点在于:在 C 语言风格中成长起来的程序员会直观地理解 Go 的大部分内容。他们将能够非常快速地学习语法,并且可以花时间学习 Go 相较 C 或 Java 的一些改进之处。

讨厌的点在于:很多方面,Python 的设计都是与 C 截然相反的。对于喜欢 Python 方法的人而言,会觉得 Go 有很多让人讨厌的地方。

4、Go 的规则太多了

从一开始,Go 的创建者就希望不仅定义语法,还定义语言的大部分风格和使用模式。

喜欢的点在于:Go 的强惯用规则确保代码更容易理解,团队将减少对风格的争论。

讨厌的点在于:所有这些额外的规则和惯例都像束缚。“程序员在生活中拥有一点自由有那么糟糕吗?”

5、Go 有额外的错误处理

喜欢的点在于:Go 方法承认错误存在,并鼓励程序员制定处理错误的计划。这就鼓励程序员提前计划,并建立起一种弹性,从而开发出更好的软件。

讨厌的点在于:不必要的错误处理会让 Go 函数变得更长、更难理解。通常情况下,deep chain 中的每个函数都必须包含类似的代码,这些代码或多或少会执行相同的操作,并产生相同的错误。其他语言(如 Java 或 Python)鼓励程序员将错误"throw"到链上的特定代码块中,以"catch"它们,从而使代码更简洁。

6、标准库

喜欢的点在于:当许多标准功能由默认库处理时,大多数代码更易于阅读。因为没有人会编写自己的版本,或争论哪个软件包或第三方库更好。

讨厌的点在于:一些人认为,竞争能更好的推动需求和创新。有些语言支持多个软件包来处理相同的任务,表明大家对此确实有着浓厚的兴趣和丰富的文化。

7、可执行文件的大小

Go 团队的目标之一是让部署 Go 程序变得更容易,他们通过将所有程序打包成一个可执行文件来实现这一目标。

喜欢的点在于:磁盘空间很便宜。当安装了不同版本的库时,在陌生的位置部署代码可能是一场噩梦。Go 开发人员只需构建一个可执行文件就可以节省大量时间。

讨厌的点在于:我的磁盘上有多少份 Go 库?如果我有 100 个程序,那就意味着 100 份。在某种程度上,效率是一个考虑因素。没错,磁盘空间比以往任何时候都便宜,但内存带宽和缓存仍然是影响执行速度的首要问题。

8、巨头谷歌

Go 由谷歌开发,这家大公司一直是 Go 的主要支持者之一。大多数情况下,Go 开发工作都直接来自 Google 内部。

喜欢的点在于:如今,大量的工作涉及为服务器和客户端编写代码,而这类工作在 Google 的工作量中占了很大一部分。如果 Go 对谷歌有利,那么对我们这些以同样方式工作的人也有好处。如果谷歌的工程师们能开发出自己喜欢的东西,那么任何有类似项目的人都会同样喜欢它。

讨厌的点在于:这并不是说人们不喜欢谷歌本身,而是程序员不信任中央集权机构。供应商锁定和缺乏控制等问题,对任何试图管理技术堆栈的人来说都是严重的问题。谷歌的慷慨仍然让程序员们心存疑虑,尤其是当其他语言都拥有了围绕它们构建的庞大的开源社区。


相關推薦

2022-10-15

InfoWorld 梳理了一份致使开发人员喜欢或讨厌使用 Rust 编程的原因清单,分别列出了 7 条内容。具体如下: 1、喜欢:Rust 解决了规模和并发问题 随着开发人员解决规模和并发性问题(即需要同时处理来自多个不同来源的输入)

2024-07-05

术实现的突破性进展,以及支持多平台后的生态前景,向开发者展现出 MoonBit 未来在边缘计算和无服务器计算领域的开发潜力。 The New Stack 是一家位于美国的全球 DevOps 领域权威媒体平台,内容涵盖云原生计算、前端和后端开发

2022-03-24

求已经达到了 2020 年的两倍以上。 该报告基于对公司与开发人员在其就业市场上的 366,000 多次互动数据的分析,以及 2020 年 1 月至 2021 年 12 月期间收集的 2000 份调查回复。旨在为工程师提供洞察力和资源,以促进他们的职业发

2023-05-18

Go 博客发布了 2023 年第一季度 Go 开发者调查。共 5,844 名开发者参与了本次调查,分享了他们有关如何使用 Go、在使用 Go 时遇到的最大挑战、以及他们首要考虑的改进方向等方面的内容。 今年的调查引入了一个基于自我认定的

2023-01-21

JetBrains 的第六次年度开发者生态系统调查《The State of Developer Ecosystem 2022》结果已发布。超过 38,000 名开发者参与了去年的调查,报告基于其中 29,000 人的反馈,大约 91% 的受访者是男性;深入探讨了开发者生态系统的各种主题。

2024-10-28

到 2024 年 9 月)时间里,DevJobsScanner 通过分析超 1200 万个开发人员职位,并从中筛选了有明确编程语言需求的职位,得出了在 2024 年需求量最大的 8 种 语言。 目前市场中需求最高的前八位语言分别是: 1 - JavaScript / TypeScript

2023-04-24

值。 3. Rust社区推崇内存的细腻控制, 有时候就和C++的开发人员一样讨厌, 把指针或者生命周期控制能力当作比较的炫耀资本, Rust更像是一种证明自己比别人厉害的工具。 我不是说Rust不好, 而是不喜欢这种认为Rust就是天下

2023-07-20

至 2023 年 5 月)时间里,DevJobsScanner 通过分析超 1400 万个开发人员职位,并从中筛选了有明确编程语言需求的职位,得出了在 2023 年需求量最大的 8 种 语言。 目前市场中需求最高的前八位语言分别是: 1、JavaScript / TypeScript

2022-12-14

(从 2021 年 10 月到 2022 年 11 月)中分析了超过 1200 万个开发人员职位需求,并从其中挑选了明确需要编程语言的工作机会,得到了 2022 年最受欢迎的 8 种编程语言。 目前市场中需求最高的前八位语言分别是: 1、JavaScript / Type

2021-12-14

位的空缺目前也已超过了 70,000 个。但是,却有近 80% 的开发人员并没有在积极地寻找新工作。 该报告基于对 500 多名开发人员的调查;通过此报告,技术招聘团队能更好的了解该如何吸引技术人才、以及开发人员在评估新

2023-11-15

1 日) ,DevJobsScanner 分析了来自世界各地的超过 1000 万份开发工作机会,以了解市场以及最热门、薪酬最高的编程语言。值得注意的是,本项研究只关注了来自美国的职位。在总共 1000 万个开发工作岗位中,有 130 万个有工资。

2023-09-02

目前仍有许多大型银行需要 Cobol 程序员。基于对数百个开发人员招聘广告的调研发现,金融科技开发人员领域更多的需要 Cobol 技术,而不是加密技术。 IEEE Spectrum 使用多种指标来衡量语言的流行程度,包括: 谷歌搜索、Stack

2024-08-08

到也要为下一代考虑下 :)),那时候他和 Rob Pike 一起开发贝尔实验室的分布式操作系统 Plan 9 (上世纪 80 年代末由贝尔实验室的 Ken Thompson 和 Rob Pike 等人发起并领导的项目),后来他去 MIT 攻读博士学位期间顺便去了 Google 实习

2023-01-18

情况进行了深入分析。其中一些关键亮点包括: 59% 的开发人员没有计算机科学方面的大学学位,接近三分之一的开发人员认为自己主要是自学成才。 大多数技术团队现在是远程和现场工作的混合体,只有 15% 的开发人员 100