Google 大佬们为什么要开发 Go 这门新语言?

作者&投稿:戊宽 (若有异议请与网页底部的电邮联系)
~

在编程世界中,Go语言的崛起引人瞩目,尤其在Google这样的科技巨头中。在C、C++、Java、PHP等众多语言已经成熟的背景下,为何Google的大佬们还要另辟蹊径,开发出这门新语言?


答案并非简单的“造轮子”,而是为了应对特定的工程挑战。Go语言的诞生源于2007年,它的设计初衷是为了应对Google在开发软件基础设施时遇到的问题,由三位大神级人物——Robert Griesemer(曾参与V8 JavaScript引擎和Java HotSpot虚拟机开发)、Rob Pike(Unix早期开发者,UTF-8创始人,Go语言吉祥物的缔造者)以及Ken Thompson(图灵奖得主,Unix早期开发者,C语言设计者)</共同设计。


曾经,Google的开发者们在编程中抱怨了C++的繁琐,他们对现有的环境和工具感到不满。具体的问题包括:



  • 软件复杂性:多核处理器和大规模集群编程的挑战,Go试图以更高效的方式解决。</

  • 规模扩张:服务器程序的庞大代码量(数千万行)和快速迭代,Go的诞生是为了应对长时间的编译等待。</

  • 编译效率:大型项目的构建时间过长,Go的目标是提升效率。</


Go的设计旨在满足这些痛点,它强调的是工作效率的提升,以及对并发、垃圾回收和严格的依赖管理等关键特性。Go的诞生并非单纯为了编程语言研究,而是为软件工程量身打造,旨在改善开发大型软件的体验。


尽管初期Go在某些功能上可能显得缺乏,但它所解决的痛点——如构建速度、依赖管理、代码可读性等,正是大规模软件开发中的核心问题。Go的特性如清晰的依赖关系、简洁的语法和强大的并发模型,正是针对这些问题的解决方案。


Go在Google的应用中,面对着庞大的软件生态和复杂的需求,它以一种工业级的沉稳,有效地支撑着这个庞大的工程。Go的设计目标,就是要打破开发缓慢和笨拙的现状,使软件开发更加高效和可扩展。


总结来说,Go语言的诞生并非偶然,而是Google在软件工程实践中的智慧结晶。它的出现,是为了应对工程挑战,提高团队的生产力,而非单纯为了语言的学术研究。Go的成功,源于对软件工程问题的深刻理解,以及对清晰、简单和可组合性的追求,这使得它在程序员中赢得了高度认可和喜爱。




怀化市19279828172: 为什么google要争着开发浏览器? -
骆柿清肺: 是这样的,Google想做互联网帝国,成为这个领域的王者,可是这个领域的先决条件浏览器握在竞争对手的手里,显然对Google是非常不利的,采用任何新技术都要对手的脸色,有了这个Google就完成了自己互联网帝国的关键一步.至于靠这个赚钱是另一方面的事情了,最近阶段的事情是稳住自己的阵地,才能进可取退可守http://www.google.com/chrome/?hl=zh_CN

怀化市19279828172: 谷歌为什么还要开发新系统 -
骆柿清肺: 如果Fuschia瞄准的只是“小型”设备,操作系统本身可能并没有那么重要.Fuchsia开发者的野心实际上更加庞大,他们声称该系统可以装入智能手机、台式计算机.从理论上讲,Fuchsia可以直接替代Android或者Chrome OS.为什么要这样做?苏帕拉认为,完全从零开始开发也许可以打造一个更有效率的操作系统,它可以提高服务器的效率,而提高服务器的效率正是谷歌感兴趣的事.苏帕拉指出,Fuchsia兼容台式机可以协助模拟大量小型设备同时运行的状态,确保工作可以规模化完成.“让一百万颗处理器高负荷运行不够好,不如让一千台服务器运行,然后让每一台服务器在同一时间运行一千个软件程序复本,这样对测试更好.”苏帕拉认为

怀化市19279828172: google为什么要从头开发一套新的操作系统 -
骆柿清肺: 科技型的企业,必须不断开发新的产品,否则马上就得倒下.谷歌作为一家搜索引擎厂商,需要新的业务来刺激,目前谷歌搜索引擎收入占比我记得之前说的是93%

怀化市19279828172: 求解:GOOGLE为什么要搞开源?
骆柿清肺: google有开源的吗?安卓是基于linux,chrome根本就不是开源....

怀化市19279828172: 如何开发输入法 -
骆柿清肺: 我作为一名开发者,每遇到一款出色的软件产品就会情不自禁的问自己这是怎么开发出来的,假如我手上有资源我会怎么来做.长期以来我都在想,近期有了时间,整理出来与大家分享.输入法开发有两个部分的工作要做,其一是与操作系统提...

怀化市19279828172: 谷歌为什么要发明GO编程语言 -
骆柿清肺: Go语言是谷歌2009发布的编程语言,这个语言发明的目的,就是为了在运行速度接近C/C++语言的基础上(注意是接近),降低开发者的门槛,减少开发难度.Go语言,在功能上没有超过C/C++,适用者为没有C/C++经验的开发者,开发出接近C效率的程序.对于已经熟练掌握C/C++的开发者来说,Go语言没有优势,还要重学语法,适应开发环境,明显是不符合效率的.

怀化市19279828172: 桌面程序怎样通过webapi获取json数据 -
骆柿清肺: 首先要思考下为什么google要开发api呢,因为google的产品用户很多,他们的需求也是各种各样的,打个比方adwords,用户可以下载google adwords editors这样的桌面软件去操作,也可以通过google adwords的界面去操作,但是用户同时也...

怀化市19279828172: 和 android,chrome os 都不同 谷歌为什么开发新系统 fuchsia -
骆柿清肺: 目前由于android 开源的特性,导致标准很难统一,碎片化特别的严重,很多应用很难做适配,研究一个新系统很有必要,就像ios一样,更快,更好

怀化市19279828172: chrome chromnium 哪个好 -
骆柿清肺: 他们之间有一下区别:前者分多个版本:稳定版、beta版、开发版,其中开发版就是chromnium换个图标,再加了几个小功能,同时chromnium不能升级,而chrome是可以的.建议:一般用户:chrome; 开发人员后者.

怀化市19279828172: Google 的 Android 为什么不自主开发一个内核而要用 Linux 内核 -
骆柿清肺: 恰恰相反,linux最难的部分就是它的kernel.作为在n个开源或不开源的嵌入式系统下写过m种设备驱动的人,我想说,设备驱动的编写难度,绝对是吊丝级的.其次,嵌入式的设备不需要同时技持什么成千上万种设备,不像是电脑,你换个声卡...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网