Golang——高效编程语言

golang

作为一名老C++程序员,对待类C风格的语言总是有一种亲切感,而Golang的出现,不禁令我耳目一新。

引自Wiki:Go,又称golang,是Google开发的一种静态强类型编译型并发型,并具有垃圾回收功能编程语言

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

Go语言的语法接近C语言,但是对于变量的声明是不同的,其他语法不同之处是For循环和if判断语句不需要用小括号括起来。Go语言支持垃圾回收功能。Go语言的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,,但它也具有Pi运算的特征,比如通道传输。

与C++相比,Go语言并不包括如异常处理、继承、泛型、断言、虚函数等功能,但增加了slice型、并发、管道、垃圾回收、接口(interface)等特性的语言级支持。当然,Google对于泛型的态度还是很开放的,但在该语言的常见问题列表中,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。不同于Java,Go语言内嵌了关联数组(也称为哈希表(hashes)或字典(dictionaries)),就像字符串类型一样。

Golang语言特别适合初创企业团队,其原因不外乎:

  • 速度快,高性能
  • 简洁明了,需要记的语言细节少,开发迅速(c)
  • 灵活,开发快速,类Python的list,map等常用数据结构支持(Python)
  • 完善的模块支持,模块也容易上手(Python)
  • 对程序员友好的并行架构(Erlang)
  • 安全,绝大部分问题能消灭在compile time中(C minus pointer)

而项目的研发效率,就来自选择了对的工具,Golang不负众望。如果说到高并发高负载,让我不能不想起nginx。nginx在2004年从web server领域横空出世,所向披靡。精巧严谨易于维护和扩展的代码结构,也是教科书级别的。但是要知道,一个用C写出一个nginx,是需要世界上最优秀的工程师的。这样的工程师,就算你出得起钱也很难碰到。可现在,一个使用Golang的中级工程师,就已经可以写出性能与nginx相近的高并发高负载应用。而且不仅性能相近,而且需要的代码行数和开发时间也短很多。这对于团队成员来说,这很可能是决定生死存亡还是走上人生巅峰的区别。

Golang 的开发效率和性能是毋容置疑的吧,要不咱去看看Docker,^_^

docker

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注