go语言主创人员 go语言设计者

GO语言是什么语言?我们应该怎么学?Go语言是谷歌推出的一种全新的编程语言 , 可以在不损失应用程序性能的情况下降低代码的复杂性 。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧 。
Go是谷歌2009发布的第二款编程语言 。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用的一种BASIC语言.
北京时间2010年1月10日,Go语言摘得了TIOBE公布的2009年年度大奖 。该奖项授予在2009年市场份额增长最多的编程语言 。
谷歌资深软件工程师罗布·派克(Rob Pike)表示,"Go让我体验到了从未有过的开发效率 。"派克表示,今天的C++或C一样,Go是一种系统语言 。他解释道,"使用它可以进行快速开发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大 。"
2007年,谷歌把Go作为一个20%项目开始研发,即让员工抽出本职工作之外时间的20%, 投入在该项目上 。除了派克外,该项目的成员还有其他谷歌工程师也参与研发 。
派克表示,编译后Go代码的运行速度与C语言非常接近,而且编译速度非常快,就像在使用一个交互式语言 。现有编程语言均未专门对多核处理器进行优化 。Go就是谷歌工程师为这类程序编写的一种语言 。它不是针对编程初学者设计的,但学习使用它也不是非常困难 。Go支持面向对象,而且具有真正的闭包(closures)和反射 (reflection)等功能 。
在学习曲线方面,派克认为Go与Java类似,对于Java开发者来说,应该能够轻松学会 Go 。之所以将Go作为一个开源项目发布,目的是让开源社区有机会创建更好的工具来使用该语言 , 例如 Eclipse IDE中的插件 。
在谷歌公开发布的所有网络应用中,均没有使用Go , 但是谷歌已经使用该语言开发了几个内部项目 。派克表示 , Go是否会对谷歌即将推出的Chrome OS产生影响,还言之尚早,不过Go的确可以和Native Client配合使用 。他表示"Go可以让应用完美的运行在浏览器内 。"例如,使用Go可以更高效的实现Wave , 无论是在前端还是后台 。
Go 同时具有两种编译器 , 一种是建立在GCC基础上的Gccgo,另外一种是分别针对64位x64和32位x86计算机的一套编译器(6g和8g) 。谷歌目前正在研发其对ARM芯片和Android设备的支持 。派克表示 , "Android手机存在的问题是,我们一直没有一个数学协处理器 。"
有人学过GO语言么?和C++比、优缺点在那?C++适合本地程序的开发 。Go语言适合网络程序和本地程序的开发 。Go的优点:垃圾回收,语意明确,格式统一 。Go的缺点:效率目前没有C++高 , 但对于桌面程序而言,效率问题不大,因为硬件已经很快了 。c++过于复杂了 , 加入很多炫技的内容 。这些内容脱离了事情的本质 。
最明显的就是所谓的面向对象 。基于面向对象的工程如果足够大的情况下,会带来很大的耦合度,如果再加上内存管理,多线程等等 。项目后期基本上没办法维护和增加功能 。
关于c++的语言复杂性 , 你可以问知乎上的任何一位高手 。没一个敢说自己精通c++ 。你也可以去看一下所有的c++编绎器 , 没有任何一个敢说自己完全实现了c++的标准 。不同的编绎器之间实现细节又不同 。所以功能再强大没有实用性,就失去了意义,只会制造更多的问题 。
GO语言商业案例(六):PayPal创建 PayPal 的目的是使金融服务民主化,并使个人和企业能够加入并在全球经济中蓬勃发展 。这项工作的核心是 PayPal 的支付平台,该平台使用专有技术和第三方技术的组合来高效、安全地促进全球数百万商家和消费者之间的交易 。随着支付平台变得越来越大、越来越复杂,PayPal 寻求对其系统进行现代化改造并缩短新应用程序的上市时间 。

推荐阅读