先来个wiki上关于go的解释:

Go是Google开发的一种编译型,並發型,并具有垃圾回收功能的编程语言。

罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计Go语言,稍后Ian Lance Taylor, Russ Cox加入项目中。Go语言是基于Inferno操作系统所开发的。Go语言于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后追加Windows系统下的实现。

--《Go - 维基百科,自由的百科全书

好吧,这是干啥的?我们有了C++,java,…………各种语言之后,为啥又要来个新的?

十年以来,主流的系统级编程语言并未出现过,但在这期间,计算环境已经发生了巨大的变化。以下是一些趋势:

  • 计算机的速度变得极快,但软件开发还不够快。

  • 在今天,依赖管理成为了软件开发中一个大的部分,但C传统语言的“头文件”与清晰的依赖分析——以及快速编译背道而驰。

  • 对于像Java和C++那笨重的类型系统的反抗越来越多,这将人们推向了Python和JavaScript之类的动态类型语言。

  • 流行的系统语言对于像垃圾回收与并行计算那种基本思想的支持并不算好。

  • 多核计算机的出现产生了一些麻烦与混乱。

我们相信这值得重新尝试一种新的语言,一种并发的、带垃圾回收的、快速编译的语言。它需要满足以下几点:

  • 它可以在一台计算机上用几秒钟的时间编译一个大型的Go程序。

  • Go为软件构造提供了一种模型,它使依赖分析更加容易,且避免了大部分C风格include文件与库的开头。

  • Go的类型系统没有层级,因此不需要在类型之间的关系定义上花费时间。此外,尽管Go是静态类型的, 该语言也试图使类型感觉起来比典型的面向对象语言更轻量级。

  • Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。

  • 按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。


那类似的语言还有node.js,erlang,为啥选go

好吧,我也刚开始,那就给出一些理由:

  • 为什么 Node.js 很糟糕

  • golang与node.js的http模块性能对比测试(go1)

  • Go vs node.js vs PHP vs Python, Loop benchmark.

  • 编程语言API性能大比拼

  • C、go、python、java、php和node.js 简单循环累加运算速度测试


好吧,为啥我会选go:

  1. 部署简单

  2. 并发性好

  3. 执行性能不错

  4. 语法类似C,没有压力



好了,还有问题的话,再开始之前,可以看下 官方faq


接下来,我的目标是通用的游戏服务器。


最后,附上一些学习资料:

  • Go入门指南

  • go官网 中文版