大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
大家好,我是煎鱼。
大家平时都是在用 Go 语言,那以往已经有了 C、C++、Java、PHP。Google 的大佬们为什么还要再开发一门新的语言呢?
难不成是造轮子,其他语言不香吗?
Go 编程语言构思于 2007 年底,构思的目的是:为了解决在 Google 开发软件基础设施时遇到的一些问题。
图上三位是 Go 语言最初的设计者,功力都非常的深厚,按序从左起分别是:
曾经在早期的采访中,Google 大佬们反馈感觉 "编程" 太麻烦了,他们很不喜欢 C++,对于现在工作所用的语言和环境感觉比较沮丧,充满着许多不怎么好用的特性。
具体遭遇到的问题。如下:
为了实现上述目标,在既有语言上改造的话,需要解决许多根本性的问题,因此需要一种新的语言。
这门新语言需要符合以下需求:
这门新语言就是现在的 Go。
Go 是 Google 设计的一种编程语言,用于帮助解决谷歌的问题,而 Google 的问题很大。
Google 整体的应用软件很庞大,硬件也很庞大,有数百万行的软件,服务器主要是 C++ 语言,其他部分则是大量的 Java 和 Python。
数以千计的工程师在代码上工作,在一个由所有软件组成的单一树的 "头 " 上工作,所以每天都会对该树的所有层次进行重大改变。
一个大型的定制设计的分布式构建系统使得这种规模的开发是可行的,但它仍然很大。
当然,所有这些软件都在几十亿台机器上运行,这些机器被视为数量不多的独立、联网的计算集群。
简而言之,Google 的开发规模很大,速度可能是缓慢的,而且往往是笨拙的。但它是有效的。
Go 项目的目标是:消除 Google 软件开发的缓慢和笨拙,从而使这个过程更富有成效和可扩展。这门语言是由编写、阅读、调试和维护大型软件系统的人设计的,也是为他们设计的。
因此 Go 的目的不是为了研究编程语言的设计,而是为了改善其设计者及其同事的工作环境。
Go 更多的是关于软件工程而不是编程语言研究。或者换个说法,它是为软件工程服务的语言设计。
当 Go 发布时,有些人声称它缺少被认为是现代语言的必要条件的特定功能或方法。在缺乏这些设施的情况下,Go怎么可能有价值?
我们的答案是:Go 所拥有的特性可以解决那些使大规模软件开发变得困难的问题。
这些问题包括:
纯粹一门语言的单个功能并不能解决这些问题,我们需要对软件工程有一个更大的看法。因此在 Go 的设计中,我们试图把重点放在这些问题的解决方案上。
软件工程指导了 Go 的设计。
与大多数通用编程语言相比,Go 的设计是为了解决我们在构建大型服务器软件时接触到的一系列软件工程问题。这可能会使 Go 听起来相当沉闷和工业化。
但事实上,整个设计过程中对清晰、简单和可组合性的关注反而导致了一种高效、有趣的语言,许多程序员发现它的表现力和力量。
为此产生的 Go 特性包括:
这就是为什么要开发 Go 的由来,以及为什么会产生如此的设计和特性的原因。
你学会了吗?:)
若有任何疑问欢迎评论区反馈和交流,最好的关系是互相成就,各位的点赞就是煎鱼创作的最大动力,感谢支持。
文章持续更新,可以微信搜【脑子进煎鱼了】阅读,本文 GitHub github.com/eddycjy/blo… 已收录,学习 Go 语言可以看 Go 学习地图和路线,欢迎 Star 催更。