有关学习Go语言的建议

这是来自40位Gophers访谈对Go语言初学者的建议,大致翻译如下:

首先在学习Go基本语法以后(Go中文指南),需要注意以下几点:
1. 理解接口的威力,它们是Go语言最伟大的礼物,从根本上说比Go的通道channel或协程goroutine更重要.

2.如果你来自另外一个语言像Python 或 Ruby动态语言, 或一个编译语言如Java 或 C#,将你的OO背包放下丢在门口。 Go虽然是一个面向对象语言,但是它不是基于类的语言,不支持继承。

3.意识到Go语言去除继承以后,你就有机会锻炼通过组合composition替代继承(banq注:使用组合替代继承的其他案例), 如果纠缠继承中徒劳挣扎只能导致混乱。

4.不要以另外一种语言的风格编写Go。

5.不要等待泛型或函数加入到这个语言,停止屏住呼吸并学会爱我们今天的语言。

6.寻找更有经验的Gopher帮助你review代码。

7.不要浪费时间在比较语言上。如果你喜欢Go就学习它。

8.积极拥抱Go的模式和它做事情的方式,

9.经常为冲动地引入依赖而战斗。

10.简单是Go重要特点,避免过度工程或monolithic整块代码。

11.将其他语言库包移植到Go是一个学习过程,它允许你打开其他人的代码以Go方式重新粘合在一起(banq注:鼓励参与开发Go的库包)

对于Go的未来主要有以下几点:
1. GO的下一个演进是支持桌面和移动,其他还有分布式系统和Web应用领域等等。

2.Go语言对于科学和生物信息社区吸引比较大,可以替代他们使用的scipy/numpy(python语言), 科学家们比较务实,Go会对他们工作有帮助。

3.类似Docker这样的静态二进制故事不断在快速刷新发展,这似乎对系统管理员或devops之类有吸引力。

4.Go出人意外的成功之一是它提供程序员产生跨平台CLI工具的能力,之前这是C和操作系统的领域,经过一段时间后 "Pure Go"可能成为这个领域的一个理想目标。

5. Go on Android已经发布到1.4版本

6.Go做了6或7年之前 Ruby所做的,真正改变了人们构造更大更复杂应用的方式,能够从初期实现很好扩展到大型。

[该贴被banq于2014-08-26 10:52修改过]