Go 和 Golang 有什么关系?

这篇具有很好参考价值的文章主要介绍了Go 和 Golang 有什么关系?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

大家好,我是煎鱼。

最近天气也冷了,掐指一算是招聘季了,无论是校招、社招、HR、面试官们都蠢蠢欲动。这不,我有一个朋友的 HR 朋友都有起名困难了,一看 Go 语言的工作说明(Job Description),发现各有不同。

如下图:

Go 和 Golang 有什么关系?
来自某招聘网站

仔细一看,有叫 Go 的,也有叫 Golang,还有叫 GO 的。好家伙,Go 语言有这么多个别名,为什么要叫 Golang,甚至某乎都讨论了起来。到底叫什么是正确的?

为此,今天就由煎鱼带大家理一理,了解这背后的关系。

Go 官方定义

从网上的资料来看,大家对 Go 的名字还是比较关注的,对于 Go 团队来讲,仿佛经常被问。例如:

  • “Go 和 Golang 的关系是什么?”

  • “Go、Golang、GO 哪个对?”

甚至在之前探讨 Go2 草案时,也有人开始起 Go2 的名字了,纠结是要叫 “golang2”,还是 “go2lang”:

Go 和 Golang 有什么关系?

其实这是错误的。在 Go FAQ 中有明确的回答这个问题:

Go 和 Golang 有什么关系?

这一门语言称为 “Go”,不叫 “Golang”,也不叫 “GO”。“golang” 只是网站的地址,而不是语言的名称。

同时 “GO” 的语言名称叫法也是错误的,虽然官方上的 Logo 是 “GO”:

Go 和 Golang 有什么关系?

但这显然只是设计师层面的美观考量,并不是这一门语言的标准定义。

因此这一门语言叫做 “Go” 语言,这是正确的,也得到官方认证的,也不曾改变过。

为什么会有 Golang

但可能又有小伙伴疑惑了,那为什么 “Golang” 这个别名,如此之火。到底是为什么?

这里一共有三点原因,分别是:站点地址(Go FAQ 提到)、搜索引擎、社区和论坛、语言重名。

Go 站点地址

Go 团队所期望的 https://go.org 早就被注册,从网站的底部标识来看,2008 年起建站:

Go 和 Golang 有什么关系?

所以 Go 语言只能使用 https://golang.org,你也会 https://pkg.go.dev 和 https://golang.org、https://godoc.org,存在多个域名,并不统一。

因此作为 Go 开发者所常用官方站点,自然而然 golang 这一个语言标识就深深地被记住了,一直沿用至今。

同时域名为 “golang” 关键字,自然会大幅度的影响到 Go 资料搜索引擎的收录,是一个非常重要的因素。

搜索引擎

在早年 Go 语言还不知名时,用 go 关键字去搜索资料会非常的困难。这是各大搜索引擎早年的一个槽点(reddit 很多吐槽)。

因为单一的 go 关键字过于广泛了,很多人会直接用 golang 关键字来搜资料,反而会更能看到一些与 Go 真正相关的。

Go 和 Golang 有什么关系?

这一点在近年来有明确改善,得益于 Go 语言的崛起,现在也能搜到了。

社区和论坛

在社区、论坛等,也有类似的问题。因为占位、重名、认知等原因。像是 segmentfault、twitter 叫 golang。掘金叫 Go,各有不同。

Go 和 Golang 有什么关系?

这点难以改善,毕竟各家都是不同企业的。所以难受的点是用户,搜了 Go,可能搜不到,又跑去搜 Golang 才可以。

再看看国外的论坛,在 Google 群组 golang-nuts 和 golang-dev 也有类似偏差。

基本可以明确 “Golang” 更多会被用在搜索和标签上,能够保证搜索和标签查询的结果。

语言重名

实际上在 Go 语言出现前,已经存在一门 “Go!” 的编程语言了。有网友表示这也是 Go 官方纠结的一点。

Go 和 Golang 有什么关系?

不过实际上编程语言重名并不少见,但由于真实性有待考量,建议仅是了解即可。

至少现在已经没有这门语言的命名之争。

总结

可以明确,官方诠释的正确名称为 Go。

但由于 go.org 域名的原因, 因此在 Go Programming Language 的通俗称呼下,采取了 golang 来作为 Go 站点、Google 群组的域名/组别等的建立。

Go 资料肯定都集中在官方站点、论坛,自然而然,大家用 “go” 关键字也就很难搜索到了,都得用 “golang” 关键字。

可以明确,Go 是这一门编程语言的名字,Golang 更多是在搜索和标签上的使用

这看上去,是搜索引擎的胜利,你觉得呢?:)

关注煎鱼,吸取他的知识 👆

Go 和 Golang 有什么关系?

你好,我是煎鱼。高一折腾过前端,参加过国赛拿了奖,大学搞过 PHP。现在整 Go,在公司负责微服务架构等相关工作推进和研发。

从大学开始靠自己赚生活费和学费,到出版 Go 畅销书《Go 语言编程之旅》,再到获得 GOP(Go 领域最有观点专家)荣誉,点击蓝字查看我的出书之路

日常分享高质量文章,输出 Go 面试、工作经验、架构设计,加微信拉读者交流群,记得点赞!文章来源地址https://www.toymoban.com/news/detail-456320.html

到了这里,关于Go 和 Golang 有什么关系?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 是时候回答【我为什么要学习 Go 语言(golang)】这个问题了

    想必每个人在学习新事物之前,都会扪心自问:“我为什么要学习它呢?” 正如我们读 四大名著 一般,也只有在您读过了 四大名著 后,再细看中国几千年历史不就是 天下大势合久必分,分久必合 ,再者,便是与友数人相聚,席间您述说您通勤时所遇到有意思的事了,而您

    2023年04月09日
    浏览(51)
  • 【Golang】一篇文章带你快速了解Go语言&为什么你要学习Go语言

    目录 1. 为什么互联网世界需要Go语言 1.1 硬件限制:摩尔定律已然失效  1.2 Go语言为并发而生 1.3 Go性能强悍 1.4 Go语言简单易学 1.4.1 语法简洁 1.4.2 代码风格统一 1.4.3开发效率高  2.Go语言的诞生与发展 2.1什么是Go语言   2.2 Go语言的诞生 2.3 Go Gopher——Go语言的吉祥物 3. 为什么

    2024年02月04日
    浏览(61)
  • 【Golang】Golang进阶系列教程--为什么 Go for-range 的 value 值地址每次都一样?

    循环语句是一种常用的控制结构,在 Go 语言中,除了 for 以外,还有一个 range ,可以使用 for-range 循环迭代数组、切片、字符串、map 和 channel 这些数据类型。 但是在使用 for-range 循环迭代数组和切片的时候,是很容易出错的,甚至很多老司机一不小心都会在这里

    2024年02月15日
    浏览(58)
  • 类图的6种关系和golang应用

    概念 体现为局部变量、方法的形参,或者对静态方法的调用。 如:出行使用汽车,下雨打伞等 是一种弱关联关系,也是一种临时关系 类图示例 代码示例 输出 概念 体现为类的属性,golang中可以表现为结构体的成员 如:我的朋友(聚合),人和身体部位(组合),汽车和轮

    2024年02月14日
    浏览(40)
  • Golang:Go语言结构

    在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 表达式 注释 接下来让我们来看下简单的代码,该代码输出了\\\"Hello World!\\\": 让我们来看下以上程序的各个部分: 第一

    2024年02月10日
    浏览(57)
  • 【Golang】go条件编译

    交叉编译只是为了能在一个平台上编译出其他平台可运行的程序,Go 作为一个跨平台的语言,它提供的类库势必也是跨平台的,比如说程序的系统调用相关的功能,能根据所处环境选择对应的源码进行编译。让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,

    2024年02月11日
    浏览(58)
  • 【Golang】go交叉编译

    交叉编译是用来在一个平台上生成另一个平台的可执行程序 。Go 命令集是原生支持交叉编译的。 Mac下编译:Linux 或 Windows 的可执行程序 Linux下编译:Mac 或 Windows的可执行程序 Windows下编译:Mac 或 Linux的可执行程序 需要写一个批处理程序,在里面去设置,因为windows 下的 ter

    2024年02月10日
    浏览(43)
  • 【Golang】Golang进阶系列教程--Go 语言数组和切片的区别

    在 Go 语言中,数组和切片看起来很像,但其实它们又有很多的不同之处,这篇文章就来说说它们到底有哪些不同。 数组和切片是两个常用的数据结构。它们都可以用于存储一组相同类型的元素,但在底层实现和使用方式上存在一些重要的区别。 Go 中数组的长度是不可改变的

    2024年02月15日
    浏览(57)
  • 【Golang】Golang进阶系列教程--Go 语言切片是如何扩容的?

    在 Go 语言中,有一个很常用的数据结构,那就是切片(Slice)。 切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。 切片是一种引用类型,它有三个属性:指针,长度和容量。 底层源码定义如下: 指针: 指向

    2024年02月14日
    浏览(63)
  • 【Golang】Golang进阶系列教程--Go 语言 map 如何顺序读取?

    Go 语言中的 map 是一种非常强大的数据结构,它允许我们快速地存储和检索键值对。 然而,当我们遍历 map 时,会有一个有趣的现象,那就是输出的键值对顺序是不确定的。 先看一段代码示例: 当我们多执行几次这段代码时,就会发现,输出的顺序是不同的。 首先,Go 语言

    2024年02月14日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包