第1章初识Go语言

Go语言特性一瞥

  • 开放源代码的通用计算机编程语言。
  • 虽为静态类型、编译型的语言,但Go语言的语法却趋于脚本化,非常简洁。
  • 卓越的跨平台支持,无需代码移植。
  • 全自动的垃圾回收机制,无需开发者干预。
  • 原声的先进并发编程模型和机制。
  • 拥有函数式编程范式的特性,函数为一等代码块。
  • 无继承层次的轻量级面向对象编程范式。
  • 内含完善、全面的软件工程工具。
  • 代码风格强制统一。
  • 程序编译和运行速度都非常快。
  • 标准库丰富,极适合开发服务端程序和Web程序。

Go语言的优劣

优势

  • 相对于C/C++来讲,Go语言拥有清晰的依赖管理和全自动的垃圾回收机制,因此其代码量大大降低,开发效率大大提高。
  • 相对于Java来讲,Go语言拥有简明的类型系统、函数式和先进的并发编程模型。因此其代码块更小更简洁、可重用性更高,并可在多核计算环境下更快地运行。
  • 相对PHP来讲,Go语言更具通用性和规范性。
  • 相对于Python/Ruby来讲,Go的优势在于其简洁的语法、非侵入式和扁平化的类型系统和浑然天成的多范式编程模型。

不足

  • 从分布式计算机的角度来看,Go语言的成熟度不及Erlang。
  • 从程序运行速度的角度来看,Go语言虽然已与Java不相上下,但还不及C。
  • 从第三方哭的角度来看,Go语言的库数量远远不及其他几门主流语言。
  • 从语言语法角度来看,Go语言语法里的语法糖并不多。
  • 从并发编程角度来看,Go语言提供的并发模型很强大,但也有一些便携规则需要了解。
  • 从垃圾回收角度看,Go语言的来及回收采用的是并发包机清除算法。有一定的缺点。

怎样学习Go语言

  • 官方网站:http://golang.org
  • 动手编码
  • 理论+实践。