`

许式伟《Go语言编程》章节摘录:Go语言简史

阅读更多
  提起Go语言的出身,我们就必须将我们饱含敬意的眼光投向持续推出惊世骇俗成果的贝尔实验室。贝尔实验室已经走出了多位诺贝尔奖获得者,一些对于现在科技至关重要的研究成果,比如晶体管、通信技术、数码相机的感光元件CCD、光电池等都源自贝尔实验室。该实验室在科技界的地位可想而之,是一个毫无争议的科研圣地。

  这里我们重点介绍一下贝尔实验室中一个叫计算科学研究中心的部门对于操作系统和编程语言的贡献。回溯至上世纪的1969年(估计大部分读者那时候都还没出世),肯•汤普逊(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)在贝尔实验室的计算科学研究中心里开发出了UNIX这个大名鼎鼎的操作系统,还因为开发UNIX而衍生出了一门同样赫赫有名的编程语言,C语言。对于很大一部分人而言,UNIX就是操作系统的鼻祖,C语言也是计算机课程中最广泛使用的编程语言。UNIX和C语言在过去的几十年以来已经造就了无数的成功商业故事,比如曾在90年代如日中天的太阳微系统(Sun MicroSystems),现在正如日中天的苹果的Mac OS X操作系统其实也可以认为只是UNIX的一个变种(FreeBSD)。

  虽然已经取得了如此巨大的成就,贝尔实验室的这几个人并没有因此而沉浸在光环中止步不前。他们从上世纪80年代又开始了一个名为Plan 9的操作系统研究项目,目的就是解决UNIX中的一些问题,发展出一个UNIX的后续替代系统。在之后的几十年中,该研究项目又演变出了另一个叫Inferno的项目分支,以及一个名为Limbo的编程语言。

  Limbo是用于开发运行在小型计算机上的分布式应用的编程语言。它支持模块化编程,编译期和运行时的强类型检查,进程内基于具有类型的通信通道,原子性垃圾收集,和简单的抽象数据类型。它被设计为:即便是在没有硬件内存保护的小型设备上,也能安全运行。

  Limbo语言被认为是Go语言的前身,不仅仅因为是同一批人设计的语言,而是实际上Go语言确实从Limbo语言中继承了众多优秀的特性。

  贝尔实验室后来经历了多次的动荡,包括肯•汤普逊在内的Plan 9项目原班人马加入了Google。在Google,他们创造了Go语言。早在2007年9月,Go语言还是这帮大牛的20%自由时间的实验项目。幸运的是,到了2008年5月,Google发现了Go语言的巨大潜力,从而开始全力支持这个项目,让这批人可以全身心投入Go语言的设计和开发工作。Go语言的第一个版本在2009年11月正式对外发布,并在此后的两年内快速迭代,发展迅猛。第一个正式版本的Go语言于2012年3月28日正式发布,让Go语言迎来了第一个引人瞩目的里程碑。

  基于Google对开源的一贯拥抱态度, Go语言也自然而然地选择了开源方式发布,并使用BSD授权协议。任何人可以查看Go语言的所有源代码,并可以为Go语言发展而奉献自己的力量。

  Google作为Go语言的主推者,并没有简简单单地把语言推给开源社区了事,不仅组建了一个独立的小组全职开发Go语言,还在自家的服务中逐步增加对Go语言的支持,比如对于Google有战略意义的云计算平台GAE(Google AppEngine),很早就开始支持Go语言。按目前的发展态势,在Google内部Go语言有逐渐取代Java和Python主流地位的趋势。在Google的更多产品中,我们将看到Go语言的踪影,比如Google最核心的搜索和广告业务。

  在本书的序中,已经清晰诠释了为什么在语言泛滥的时代Google还要设计和推出一门新的编程语言。按照已经发布的Go语言的特性,我们有足够的理由相信Google推出此门新编程语言绝不仅仅是简单的跑马圈地运动,而是为了解决切实的问题。 

让我们再来看看Go语言的主要作者们: 

肯•汤普逊(Ken Thompson,http://en.wikipedia.org/wiki/Ken_Thompson):设计了B语言和C语言,创建了Unix和Plan 9操作系统,1983年图灵奖得主,Go的共同作者。

罗布•派克(Rob Pike,http://en.wikipedia.org/wiki/Rob_Pike):Unix小组的成员,参与Plan 9和Inferno操作系统,参与 Limbo和Go语言的研发。《UNIX编程环境》作者之一。

罗伯特•格里泽默(Robert Griesemer):曾协助制作Java的HotSpot编译器和Chrome浏览器的JavaScript引擎V8。

拉斯•考克斯(Russ Cox,http://swtch.com/~rsc/):参与Plan 9操作系统的开发,Google Code Search项目负责人。

伊安•泰勒(Ian Lance Taylor):GCC社区的活跃人物。gold连接器和GCC过程间优化LTO的主要设计者,Zembu公司的创始人。

布拉德•菲茨帕特里克(Brad Fitzpatrick,http://en.wikipedia.org/wiki/Brad_Fitzpatrick):LiveJournal 的创始人,著名开源项目memcached的作者。

  虽然我们这里只列出了一部分,大家已经可以看出这个语言开发团队的空前强大。这让我们在为Go语言的优秀特性而兴奋之外,还非常看好这门语言的发展前景。

  本文摘自《Go语言编程》
0
1
分享到:
评论

相关推荐

    Go语言编程_许式伟_完整版1

    《Go语言编程》一书由许式伟、吕桂华等人编著,旨在介绍Go语言这一新兴编程语言的全貌及其重要特性。Go语言在设计时考虑到编程的简洁性、并行与分布式支持、软件工程需求以及编程哲学的创新,力图在互联网时代成为一...

    Go语言编程_许式伟_完整版_Go_go_beneath2eh_

    Go语言,也称为Golang,是由Google公司开发的一种静态类型的、编译型的、并发型的、垃圾回收的、C风格的编程语言。它在设计上融合了现代编程语言的特性,如并发原语、类型系统和内存管理,同时保持了简洁的语法和...

    Go编程 许式伟 PDF

    《Go编程 许式伟》是一本深受Go开发者推崇的图书,由许式伟撰写,主要探讨了Go语言的核心概念、语法特性和实战应用。这本书是高清版,为读者提供了良好的阅读体验,特别适合对Go语言有兴趣或者正在学习Go语言的...

    golang_learn:golang 学习笔记

    《Go语言编程》-许式伟 《Go程序设计语言》-译本 Go语言圣经 《Go语言学习笔记》-雨痕 - 柴树杉,曹春晖 《go语言高并发与微服务实战》 《go语言编程之旅》 :books:: golang实现分布式缓存: :books:: golang实现rpc:...

    许式伟:Go,基于连接与组合的语言

    本公开课由许式伟主讲,旨在介绍Go语言的核心理念及其编程范式。Go语言自诞生以来便以其简洁、高效的特点受到了广泛的关注与喜爱。本课程不仅深入探讨了Go语言的设计哲学,还具体分析了其如何通过“连接”与“组合”...

    深入钻研Go语言dive into golang by七牛云存储许式伟

    许式伟,作为七牛云存储的CEO,不仅在其公司中将Go语言作为核心服务的主要编程语言,还撰写了《Go语言编程》一书,并翻译了《Programming in Go》,并且许式伟还参与了盛大网盘以及盛大云存储前身项目——盛大祥云...

    @许式伟_-_Golang编程基础__成为_Go_范(Fan)

    讲述golang编程语言基础,ppt格式,我看了下 还不错 可以参考

    GO语言编程

    Go语言,也被称为Golang,是Google在2009年推出的一种静态类型的、编译型的、并发型且具有垃圾回收功能的编程语言。它的设计目标是提高开发者的生产力和系统的可维护性,特别强调简洁、清晰的语法以及高效的执行性能...

    go语言编程入门学习资料

    本书作者背景极强,许式伟为原金山WPS首席架构师、曾是盛大创新院研究员,目前是国内Go语言实践圈子公认的Go语言专家。参与本书写作的几位作者都是实际用Go语言开发的项目的开发人员,有较强的实战经验。 这本书...

    go语言小项目“下棋游戏”

    许式伟的《go语言编程》里的一个小项目,我动手将其实现了,可运行。作为新手的一个练手小项目挺好的,这个项目的依赖管理用的是goland里的goroot、gopath。希望下载的朋友学习go语言一帆风顺!

    go语言小项目"简易音乐播放器"

    许式伟的《go语言编程》里的一个小项目,我动手将其实现了,可运行。作为新手的一个练手小项目挺好的,这个项目的依赖管理用的是goland里的goroot、gopath。希望下载的朋友学习go语言一帆风顺!

    Go语言程序设计1

    《Go语言程序设计》是Mark Summerfield所著的一本关于Go语言的实战指南,由许式伟、吕桂华、徐立和何李石翻译。这本书面向的是希望学习和掌握Go语言的程序员,特别是那些想要利用Go语言进行高性能软件开发的开发者。...

    Go语言程序设计(中文)-Programming in Go Creating Applications for the 21st Century.pdf

    Go语言程序设计(中文)-Programming in Go Creating Applications for the 21st Century。作者:Mark Summerfield,译者:许式伟 ,‎ 吕桂华 ,‎ 徐立,‎ 何李石。入门的一个非常好的资料。分2卷上传,这里是第一卷。...

    LearnGolang:《 Golang学习资源大全》

    学习语言本项目记录自己的学习Golang的过程中遇到的一些优秀内容,包括Golang的相关学习资源及Golang的优秀项目代码等。编程。作者: 。关于Golang的学习教程,可以参考 。本项目创造于2020年8月10日,最近一次更新...

    Go语言程序设计(中文)-Programming in Go Creating Applications for the 21st Century

    Go语言程序设计(中文)-Programming in Go Creating Applications for the 21st Century。作者:Mark Summerfield,译者:许式伟 ,‎ 吕桂华 ,‎ 徐立,‎ 何李石。入门的一个非常好的资料。分2卷上传,这里是第二卷。...

    高级系统架构师ppt

    1. **后端技术**:如Java、Python、Golang等,根据项目需求选择合适的语言。 2. **数据库系统**:关系型数据库(如MySQL)、非关系型数据库(如MongoDB)和分布式数据库的选择。 3. **缓存技术**:Redis、Memcached...

    云平台架构专题:谈谈服务治理(24页).pdf

    许式伟先生的背景涵盖了从语言设计(qlang,一种与Go语言相似的脚本语言)到云计算平台的创建,他的经验为理解服务治理提供了宝贵的视角。七牛云作为一家专注于富媒体云服务的公司,其在服务治理上的实践对于其他云...

    【Gopher China 2015】七牛如何做HTTP服务测试

    - **直接基于协议进行测试**:利用Go语言自带的`http.Client`类来直接编写测试案例。虽然这种方式能减少SDK的依赖,但是代码量相对较多,业务逻辑的表达不够直观。 - **引入`httptest` DSL文法**:这是一种更接近于...

    七牛助理房产消费O2O

    - **2011年**:创始人许式伟先生组建团队,获得经纬创投的首轮投资,七牛正式成立。 - **2011年底**:面向开发者的公有云存储服务上线,并迅速吸引首批大客户。 - **2012年**:获得云计算大会颁发的创新应用大奖,...

Global site tag (gtag.js) - Google Analytics