Go语言

2011.2.27
 韦光京
第一印象
• WOW,不是创造新名词,而是要解决真问
  题!
• 语法简单,表达的却不简单
• 偶像啊偶像
 – Ken Thompson
 – Rob Pike
 – Robert Griesemer

 – Russ Cox
 – Ian Taylor
为什么要创造新的语言?
• 解决实际问题
• 对分布式和多核的支持
• (C++/Java)+(JS/Python),“动”“静”皆
  宜
• 编译飞快
• 试着做做看,很惊喜!
惊喜一
• 语法很简单
• 关键字数量:
 C (K&R) K&R 32
 C++        1991 48
 Java 3rd edition 50
 C# 2010          77
 C++0x 2010       72+11*
 JavaScript ECMA-262 26+16*
 Python 2.7       31
 Pascal ISO       35
 Modula-2 1980    40
 Oberon 1990      32
 Go 2010          25
惊喜二
• 非常棒的并发支持
 – Goroutine
 – Channel

 Start a goroutine:
   go f()
 Channel send (arrow points in direction of flow):
   ch := make(chan int)
   go fn(ch)
   ch <- 32
 Channel receive:
   value = <-ch
惊喜三
• 出色的包支持
 – import
• 编译真的很快!非常快!
惊???
• 没有类!没有继承!怎么办!
• 用Go的方式
 – Interface
 – 面向对象而不是面向类型
 – C++/Java 类的局限
 – Go方式的简单解决
Google的影响(或者担心?)
• Google大家也怕了吗?
• 别担心,Google只有一点影响到了Go,而
  且这个影响非常正面:
 – Google的开发模式:codereview机制
现状
•   Linux/FreeBSD/Mac 32/64位 OK
•   Windows x86 OK,amd64进行中
•   ARM OK
•   plan 9 进行中
•   TIOBE 2011年2月编程语言排行榜 第19位
我的Go语言之旅
•   喜欢之,使用之,贡献之
•   Windows的移植
•   Go-ODBC
•   Enjoy...精彩继续...
建议
•   坚持写Go代码
•   坚持写Go代码
•   坚持写Go代码
•   Go和其他语言不同,用Go的方式去思考
•   加入社区,Go的社区非常Nice!
    – Golang-Nuts
    – Golang-China
谢谢!

Go