Go语言的核心开发团队(三个大牛)
Ken Thompson(肯·汤普森)
肯尼斯·蓝·汤普逊(英语:Kenneth Lane Thompson,1943年2月4日-)小名肯·汤普逊(英语:Ken Thompson),美国计算机科学学者和工程师。黑客文化圈子通常称他为“ken”[1]。在贝尔实验室工作期间,汤普逊设计和实现了Unix操作系统。他创造了B语言——C语言的前身,而且他是Plan 9操作系统的创造者和开发者之一。2006年,汤普逊进入Google公司工作,与他人共同设计了Go语言。他与丹尼斯·里奇同为1983年图灵奖得主。
罗勃·派克(Rob Pike)
罗勃特·派克(Robert C. Pike,1956年-),昵称为罗勃·派克(Rob Pike),来自加拿大的程序员,曾经加入贝尔实验室,为 UNIX小组的成员。曾经参与过贝尔实验室九号计划、Inferno,与编程语言 Limbo的开发。
目前为 google的工程师,参与编程语言Go与Sawzall的研发工作。
其中Golang的吉祥物又他老婆设计
罗勃·派克(Rob Pike)
Robert Griesemer
Robert Griesemer(生于 1964 年 6 月 9 日)是瑞士计算机科学家。他最出名的是他在Go 编程语言方面的工作。在 Go 之前,他从事谷歌的V8 JavaScript 引擎、Sawzall 语言、Java HotSpot 虚拟机和 Strongtalk 系统的工作。
Go的吉祥物
顺便说一下,罗勃·派克(Rob Pike)的媳妇 Renee French 就是 Go 语言吉祥物的设计人,想不到吧,真是全家齐动手。
Go之所以叫Go,是想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。
gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物, 它的中文名叫做囊地鼠,他们最大的特点就是挖洞速度特别快,当然可能不止是挖洞啦。
Go语言的诞生
- 2007 年 9 月 20 日的下午,在谷歌山景城总部的一间办公室里,谷歌的大佬级程序员 Rob Pike在等待一个 C++ 项目构建的过程中和谷歌的另外两个大佬级程序员 Robert Griesemer和 Ken Thompson进行了一次有关设计一门新编程语言的讨论。
- 计算机硬件技术更新频繁,性能提高很快。目前主流的编程语言发展明显落后于硬件,不能合理利用多核多CPU的优势提升软件系统性能。
- 软件系统复杂度越来越高,维护成本越来越高,目前缺乏一个足够简洁高效的编程语言。
- 企业运行维护很多c/c++的项目,C/C++程序运行速度虽然很快(因为采用静态编译),但是编译速度却很慢,同时还存在内存泄露的一系列困扰需要解决。
Golang语言的特点
Go语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容Go语言:Go= C + Python,说明Go语言既有C静态语言程序的运行速度,又能达到Python动态语言的开发。
主要特点:
- 从C语言继承了很多理念,包括表达式语法、控制结构、基础数据类型、调用参数传值、指针等等,也保留了和C语言一样的编译执行方式及弱化的指针。
- 引入包的概念,用于组织程序的结构,Go语言的一个文件都要归属于一个包,而不能单独存在。
- 垃圾回收机制,内存自动回收,不需开发人员管理。
- 天然并发(重要特点)
Go 语言的核心优势
一、高速的效率
首当其冲的,就是效率问题。
Go 语言在保证了快速编译的同时,也保证了高效的开发效率和程序运行性能。
开发过程中相较于 Java 和 C++ 呆滞的编译速度,Go 的快速编译时间是一个主要的效率优势。
Go 语言的特性也不多,更容易上手,摒弃了其他语言关键特性的问题,使开发变得更快和更加容易。
并且除了追求快速的编译和开发之外,还需要保证语言带来的性能问题,Go 语言可以让程序员的开发速度更快、更容易,并且带来的可以和 C 和 C++ 差不多的性能。
这也是为什么国内 Go 流行的主要原因。
二、易学习、成本低
Go 语言语法简单,包含了 类C 语法。因为 Go 语言容易学习,所以一个普通的大学生,只要有基础的 C 语言基础,花几个星期就能写出来可以上手的、高性能的应用。
并且,对于快速发展的互联网来说,技术不断的更新迭代,学习周期可能给我们的越来越短,所以学习一门新的技术的时间成本也是主要考虑的一个因素。
三、强大的标准库
Go 里面的标准库基本上已经是非常稳定了,特别是网络层、系统层的库非常实用。
Go 语言的 lib 库麻雀虽小五脏俱全。
由于 Go 语言诞生在互联网时代,因此它天生具备了去中心化、分布式等特性,具体表现之一就是提供了丰富便捷的网络编程接口。
Go 语言的 lib 库中基本上有绝大多数常用的库,虽然有些库还不是很好,但我觉得不是问题,因为我相信在未来的发展中会把这些问题解决掉。
四、简单高并发
Go 语言的 Goroutine 和 Channel 这两个神器简直就是并发和异步编程的巨大福音。像 C、C++、Java、Python 和 JavaScript 这些语言的并发和异步方式太控制就比较复杂了,而且容易出错,而 Go 解决这个问题非常地优雅和流畅。
这对于编程多年受尽并发和异步折磨的编程者来说,完全就是让人眼前一亮的感觉。Go 语言是一种非常高效的语言,高度支持并发性。
五、部署方便
编译后直接是计算机可执行文件,部署这块就不用多说了吧?粘贴复制总会吧?
什么,你说 Linux 下 copy 命令不熟悉的,不好意思,你可以自己回去恶补一下基础了。
六、出生名门,血统纯正
有人说编程语言的出生并不重要,重要的是好不好用,符不符合程序员们的思想,能不能带来什么样的价值。
此言差矣,诚然,一款优秀的事物面世,不问出身在哪里,正所谓英雄不问出处,编程不分快慢。
但好的先天资源,自然是比别人跑在前面。从 Go 语言的创造者,到 Go 语言的富爸爸 Google 公司,那可以说是占尽了先机。
Google 在业界的知名度和实力自然不用多说,Google 公司聚集了一批牛人,在各种编程语言称雄争霸的局面下推出新的编程语言,自然有它的战略考虑。
而且从Go语言的发展态势来看,Google对它这个新的宠儿还是很看重的,Go自然有一个良好的发展前途。
最后从社区的维护、组织和发展都是要给以后的未来 Go 语言的发展提供了很大帮助的,这些都是它的创造者和 Google 带来的价值。
七、规范性
这也是笔者比较中意的一项优势,因为审核代码真是一件痛苦的事情。每天都看着不同的人写着不同风格的代码,那真是相当难受的一件事,虽然有代码规范,但是还是需要靠自觉的去维持。
当然有些人可能觉得这让我们少了很多自由发挥的地方,但是有利也有弊吧,所以这项优势放在了最后一条。
除了 Go 语言带来的代码规范之外,还有强大的编译检查、完整的软件生命周期工具,具有很强的稳定性。Go提供了软件生命周期(开发、测试、部署、维护等等)的各个环节的,如 go tool、gofmt、go test。
相关文章
- 【Golang】使用 CDT拓展库轻松方便地在不同数据类型之间进行转换阅读量: 359 CDT(通用数据类型)库 CDT(Common Data Types)是一个Go语言库,旨在 […]
- 【实战】在Golang项目中,使用REPL技术理念,实现动态执行代码阅读量: 157 前言 在日常开发工作业务场景中,你可能会遇到重复性的业务工作脚本功能维护。笔者分析了下,其在 […]
- Jsonpack compress, shorten json volume for in Golang阅读量: 47 Description A compression algorithm for JSON gj […]
- Authorization in Golang ProjectUseing Casbin阅读量: 162 一、Casbin介绍 权限管理在几乎每个系统中都是必备的模块。如果项目开发每次都要实现一次权 […]
- Go 官方编程指南阅读量: 37 官方网站 Go 官方网址(可能需要梯子才能访问):https://golang.org 在线学 […]
- Go 程序的代码风格阅读量: 29 新手写程序,都喜欢把代码全部写在一起,我个人认为这个是属于意识层面的,并需要太强的编程能力,通 […]