Go语言简介
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go语言是编程语言设计的又一次尝试,是对类C语言的重大改进,它不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。Go语言的用途众多,可以进行网络编程、系统编程、并发编程、分布式编程。
Go语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势,目前国内诸多 IT 公司均已采用Go语言开发项目。
Go语言有时候被描述为“C 类似语言”,或者是“21 世纪的C语言”。Go 从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指针等很多思想,还有C语言一直所看中的编译后机器码的运行效率以及和现有操作系统的无缝适配。
Go 发展史
设计Go语言的初衷是满足 Google 的需求。
该项目的三位领导者均是著名的 IT 工程师:
- Robert Griesemer,参与开发 Java HotSpot 虚拟机;
- Rob Pike,Go 语言项目总负责人,贝尔实验室 Unix 团队成员,参与的项目包括 Plan 9,Inferno 操作系统和 Limbo 编程语言;
- Ken Thompson,贝尔实验室 Unix 团队成员,C 语言、Unix 和 Plan 9 的创始人之一,与 Rob Pike 共同开发了 UTF-8 字符集规范。
自 2008 年 1 月起,Ken Thompson 就开始研发一款以 C 语言为目标结果的编译器来拓展 Go 语言的设计思想。
这是一个由计算机领域 “发明之父” 所组成的黄金团队,他们对系统编程语言,操作系统和并行都有着非常深刻的见解。
设计此语言花费了两年的时间,融入了整个团队多年的经验及对编程语言设计的深入认识。
设计团队借鉴了 Pascal、Oberon 和C语言的设计智慧,同时让Go语言具备动态语言的便利性。
因此,Go语言体现了经验丰富的计算机科学家的语言设计理念。
- 2007年,由
Robert Griesemer
,Rob Pike
,Ken Thompson
主持开发,雏形设计 - 2009年,正式对外发布,作为谷歌公司兼职项目,既相关员工利于空余时间参与Go语言的研发工作。
- 2010年,谷歌投入使用
- 2011年,Google App Engine 支持 Go 语言
- 2012年,发布了
Go 1
稳定版本 - ...
- 2024年,当前版本是
1.23
现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
Go 设计目标
主要目标是“兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的性能与安全性”。
随着软件规模的不断扩大,诸多的学者和谷歌的开发者们在公司内部的软件开发过程中开始经历大量的挫折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情况更是不容乐观。
因此学者们坐下来总结出了现在生产环境与软件开发之间的主要矛盾,并尝试设计一门全新的编程语言来解决这些问题。
以下就是他们讨论得出的对编程语言的设计要求:
- 能够以更快的速度开发软件
- 开发出的软件能够很好地在现代的多核计算机上工作
- 开发出的软件能够很好地在网络环境下工作
- 使人们能够享受软件开发的过程
Go 语言就在这样的环境下诞生了,它让人感觉类似 Python 或 Ruby 这样的动态语言,但同时却又拥有了像 C 或者 Java 这类语言的高性能和安全性。
Go 语言出现的目的是在编程领域中创造出最实用的方式来进行软件开发。它并不是要用奇怪的语法或晦涩难懂的概念来从根本上推翻已有的编程语言,而是重建并改善了 C、Java、C# 中的许多语法风格。 它提倡通过接口来针对面向对象编程,通过 goroutine 和 channel 来支持并发和并行编程。
Go 吉祥物
Go 通过以下的 Logo 来展示它的速度,并以囊地鼠(Gopher)作为它的吉祥物。