download:Go 开发者的涨薪通道:自主开发 PaaS 平台外围性能无密分享
Go(或Golang)语言起源于2007年,2009年正式公布。Go是一门十分年老的语言,它的次要指标是“将Python等动静语言的开发速度与C/C++等编译语言的性能和安全性联合起来”。
Go语言是编程语言设计的又一次尝试,是对类C语言的重大改良。它不仅容许您拜访底层操作系统,还提供了弱小的网络编程和并发编程反对。Go语言有很多用处,比方网络编程,零碎编程,并发编程,分布式编程。
Go语言的引入旨在不损失应用程序性能的前提下升高代码复杂度,具备“部署简略、并发性好、语言设计好、执行性能好”的劣势。目前国内很多IT公司都采纳Go语言开发我的项目。
Go语言有时被形容为“类C语言”或“21世纪的C语言”。Go继承了C语言的很多思维,比方类似的表达式语法、控制流构造、根本数据类型、调用参数、传递值、指针等。,以及C语言始终感兴趣的编译后机器码的运行效率及其与现有操作系统的无缝适配。
因为Go语言没有类和继承的概念,看起来和Java或者C++不太一样。然而它通过接口的概念实现了多态性。Go语言有清晰易懂的轻量级类型体系,类型之间没有档次关系。因而,能够说Go语言是一种混合语言。
此外,许多重要的开源我的项目都是用Go语言开发的,包含Docker、Go-Ethereum、Thrraform和Kubernetes。
Go语言创始人
在评估一门语言的时候,了解设计者的动机和这门语言要解决的问题是很重要的。《Go》的作者是肯·汤普森、罗布·派克和罗伯特·格里斯默,他们都是计算机科学畛域的重要人物。
①肯·汤普森
贝尔Unix团队成员,C语言、Unix和Plan 9的创始人之一,在70年代设计并实现了最后的UNIX操作系统。仅从这一点来看,他对计算机科学的奉献怎么强调都不为过。他还与罗布·派克单干设计了UTF-8编码方案。
2)罗布·派克
Go语言我的项目总导演,贝尔实验室Unix团队成员,帮忙设计了UTF-8,还开发了分布式多用户操作系统Plan 9、Inferno操作系统和Limbo编程语言,并合著了Unix编程环境,对UNIX的设计理念进行了正统的论述。
3)罗伯特·格里斯默
曾就任于Google,参加过Java HotSpot虚拟机的开发,对语言设计有粗浅的了解,负责Chrome浏览器和Node.js应用的Google V8 JavaScript引擎的代码生成
这些计算机界的重量级人物设计Go语言的初衷就是为了满足Google的需要。设计这款语言花了两年工夫,融入了整个团队多年的教训和对编程语言设计的深刻理解。设计团队借鉴了Pascal、Oberon、C语言的设计智慧,同时让Go语言具备了动静语言的便利性。所以Go语言体现了经验丰富的计算机科学家的语言设计理念,是为世界上最大的互联网公司之一设计的。
所有Go的设计者都说,他们设计Go是因为C++给他们带来了挫败感。在Google I/O 2012的围棋设计团队会议上,Rob Pike是这样说的:
咱们做了很多C++开发,曾经厌倦了期待编译实现。尽管这是个笑话,但很大水平上也是真的。
Go是一种编译语言。
应用Go编译器编译代码。编译器将源代码编译成二进制(或字节码)格局;编译代码时,编译器会查看谬误,优化性能,并输入能够在不同平台上运行的二进制文件。要创立和运行Go程序,程序员必须执行以下步骤。
应用文本编辑器创立Go程序;
保留文件;
编译程序;
编译后的可执行文件。
这与Python、Ruby、JavaScript等不蕴含编译步骤的语言不同。Go自带编译器,不须要独自装置编译器。
为什么要学围棋语言?
如果你想创立零碎程序或者基于网络的程序,Go语言是个不错的抉择。作为一种绝对较新的语言,它是由经验丰富和受人尊敬的计算机科学家设计的,以应答创立大规模并发网络程序的挑战。
在Go语言呈现之前,开发者总是面临着一个十分艰巨的抉择,是应用一种执行速度很快但编译速度不尽人意的语言(比方C++),还是应用一种编译速度很快但执行效率很差的语言(比方。NET和Java),还是开发难度低但执行速度个别的动静语言?很显然,Go语言曾经在这三个条件之间获得了最好的均衡:疾速编译、高效执行和易于开发。
Go语言反对穿插编译。例如,您能够开发能够在运行Linux的计算机上运行Windows的应用程序。这是第一个齐全反对UTF-8的编程语言,这不仅体现在它能够解决UTF-8编码的字符串,而且它的源文件格式也是UTF-8编码的。Go语言是真正的国内语言!
Go语言吉祥物
语言有吉祥物。在会议、文档页面、博客帖子中,大部分都会蕴含Go Gopher,如下图所示。这是由Renee French设计的,她是一位才华横溢的插画师,也是围棋设计师之一Rob Pike的妻子。