这个问题很复杂,多方面原因决定了Golang的实用价值。
Go语言的背景
Go的吉祥物Gordon田鼠,是由Google公司创造一种新程序语言,并且公司为这门语言付出了极大的努力。Go语言一出现就获得业界的普遍关注和使用。为什么呢?
Go具有一些多数程序语言没有的资产。首先,这是一个Google计划,它有数量庞大的服务器和技术高超的程序设计师为后盾。Google的一个实验产品可能比许多其他公司的实际产品更具商业意义。2007年,Google公司的三位核心人员 Robert Griesemer, Rob Pike, 和 Ken Thompson 设计出了Go语言,其语言定位为系统编程语言。只看Go创始人就理解Google有多么厉害,这三位创始人的简介如下。
Robert Griesemer is an employee of Google and one of the initial designers of the Go programming language. Prior to Go, Griesemer has worked on code generation for Google's V8 JavaScript engine and Chubby,[1] a distributed lock manager for Google'sGFS distributed filesystem.
Robert Pike (born 1956) is a Canadian Programmer and author. He is best known for his work at Bell Labs, where he was a member of the Unix team and was involved in the creation of the Plan 9 from Bell Labs and Inferno operating systems, as well as theLimbo programming language.
Kenneth Lane "Ken" Thompson (born February 4, 1943), commonly referred to as ken in hacker circles,[2] is an American pioneer of computer science. Having worked at Bell Labs for most of his career, Thompson designed and implemented the original Unixoperating system. He also invented the B programming language, the direct predecessor to the C programming language, and was one of the creators and early developers of the Plan 9 operating systems. Since 2006, Thompson has worked at Google, where he co-invented the Go programming language.
Go是一个编译的,静态类型的语言,具备垃圾收集(garbage collection),限定性结构类型(structural typing),内存安全(memory safety)以及CSP样式的并发编(concurrent programming )程等功能特性。Go语言在2009年被Google正式发布,并且已经在Google生产系统之中使用,同时,也有其它公司在使用这门新的语言。两个主要实现存在:Google的Go编译器,即垃圾回收器(GC)。一个是第二编译器,即gccgo,就是一个gcc的前端。GC工具链在Go语言的1.5版已经实现了自主( self-hosting )。
Go语言的实用价值
Go为解决现实问题而设计,而不是为了学术理论和人工智能思想。Go是一个务实的编程语言,它忽略在最近30年所演变的编程语言理论(PLT,programming language theory)。它通过包含第一类(first-class)支持高效并发的软件系统而提供了一个简单编程模型。对于写一个充分利用并发的高效软件系统,Go的构建并发功能给予你一个令人兴奋的编程体验。对于每个编程语言,那儿总有一个设计目标。Go的设计就是为了成为一个简单的编程语言,并且它超出作为一个简单和务实的编程语言。
Go可以作为一门构建许多创造性的软件系统的候选语言,这些已经实现了的软件系统包括著名的容器Docker,Google的容器系统管理软件Kubernetes, 著名的代码托管系统github以及其它高性能的Web服务等。从现在的形式而言,越来越多的系统使用Go语言重构现有系统。
Go可以用来构建一般目的的编程语言,可以是用Go编写许多形态各异的软件系统,包括网络服务器,系统级别的应用程序,图形系统,物联网(IoT,the Internet of Things)和机器学习。
Go语言能够用于构建本地化的手机应用程序,越来越多的公司将会为本地的Android和iOS系统上构建应用程序。现在,已经有公司这样实现了。相信未来几年,这样的公司会越来越多。
Go是构建Web应用和后端API的最佳选择。我推荐使用Go构建大型可扩展的后端RESTful API系统。可以预见,在后续的几年里,会有越来越多的企业使用Go构建后端的RESTful 系统或者现代化商业应用系统。
学习Go语言,先从Go旅程开始。
http://tour.golang.org/welcome/1.
Go语言还很年轻,需要不断优化速度和产生更快的代码。
欢迎加入我的微信公众号
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)