诞生:2007年。年轻的语言。
开源:2009年11月。
第一个稳定版:2012年,Go 1 出现啦。
Go语言特色 (为什么用?why)
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数组安全、编译迅速
Go语言用途 (什么时候用?when)
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
Go的初次尝试(How)
package main import "fmt" func main(){ fmt.Println(("Hello World") }
要执行 Go 语言代码可以使用 go run 命令。
执行以上代码输出:
$ go run hello.go Hello, World!
此外我们还可以使用 go build 命令来生成二进制文件:
$ go build hello.go $ ls hello hello.go $ ./hello Hello, World!
总结
首先,作为一门编程语言。讨论的最基本内容应当是它的用法。或者说性质。
golang 是兼容并包的。首相它可以像解释性语言一样使用启动器直接运行。这给了它良好的脚本风格。毕竟脚本的原则就是解放双手去做一些简单的事情。
其次,它也提供了编译器构建风格。使用build构建的可执行程序,能够预先的指定内存资源和数据地址,而这正是执行性语言能够在性能速率上远远超过解释性语言的根本原因。
良好的生态环境决定了它不会是晦涩难懂的选择。
相较于c和c++专业和自由的态度。golang把你当作了小朋友。替你做了很多的事情。
在互联网发展之后应运而生的语言。让它在开始就有了很高的交流平台和信息采纳方式。
这些原因决定了,它不会像c和c++一样对轮子的使用面临难者不会,会者不难的情况。
没错,我说的就是一些轻量级轮子在高并发场景下没法很好解决内存安全访问的问题。
特别是轮子之间都认为使用者是大佬的情况,这是c和c++对使用者的尊重。
编程思想流派众多,博采众长才能更好的互相碰撞。这种情况下,c、c++、golang 是一个很好的选择方式。
让我们关注业务本身吧!内存泄漏的折磨和对数据来源和接口的悲观对待,让我们放在一边,现在起,让我们关注怎样改变世界。
附注
计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程(C)、面向对象编程(C++)、函数式编程(GO)、**面向消息编程(GO)**等,这些思想究竟孰优孰劣,众说纷纭。
除了OOP外,近年出现了一些小众的编程哲学,Go语言对这些思想亦有所吸收。例如,Go语言接受了函数式编程的一些想法,支持匿名函数与闭包。再如,Go语言接受了以Erlang语言为代表的面向消息编程思想,支持goroutine和通道,并推荐使用消息而不是共享内存来进行并发编程。总体来说,Go语言是一个非常现代化的语言,精小但非常强大。
Go 语言最主要的特性:
自动垃圾回收
更丰富的内置类型
函数多返回值
错误处理
匿名函数和闭包
类型和接口
并发编程
反射
语言交互性