标题：Go语言
简介
Go语言是谷歌推出的一种全新的编程语言，可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说：我们之所以开发Go，是因为过去10多年间软件开发的难度令人沮丧。Go是谷歌2009发布的第二款编程语言.2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用  Go Logo的一种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的IDE.在目前谷歌公开发布的所有网络应用中,均没有使用Go.但是谷歌已经使用该语言开发了几个内部项目.派克表示,Go是否会对谷歌即将推出的Chrome OS产生影响,现在还言之尚早,不过Go的确可以和Native Client配合使用.他表示,“Go可以让应用完美的运行在浏览器内.”例如,使用Go可以更高效的实现Wave,无论是在前端还是后台.
Go 同时具有两种编译器,一种是建立在GCC基础上的Gccgo,另外一种是分别针对64位x86和32位x86计算机的一套编译器(6g和8g).谷歌目前正在研发其对ARM芯片和Android设备的支持.派克表示,“Android手机存在的问题是,我们一直没有一个数学协处理器.”
目标
Go的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理，这些软件元素会被应用程序反复调用。由于存在并行编程模式，因此这一语言也被设计用来解决多处理器的任务。
谷歌大约2007年开始开发Go，并于2008年投入了一组全职员工。谷歌当初将该语言设计为一款系统编程语言，可以被用于网络服务器、存储系统和数据库中。但是谷歌认为，该语言还有望被用于其它领域。
应用
由于Go尚未成熟，因此谷歌旗下各类面向用户的服务或应用都没有采用该语言。正因如此，谷歌才需要外部编程人员的协助。
派克说：我们需要更好的程序库和工具，而开源社区能够在这些方面为我们提供很大的帮助。
通过创建新的编程语言，谷歌将继续拓展计算领域的各个方面，从而促进这些领域的发展。这同样也是谷歌开发Android操作系统、Chrome浏览器和Chrome OS的动机所在。 
北京时间2010年1月10日，Go语言摘得了TIOBE公布的2009年年度大奖。该奖项授予在2009年市场份额增长最多的编程语言。
功能
Google对Go寄予厚望。其设计是让软件充分发挥多核心处理器同步多工的优点，并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色，如垃圾回收，帮助程序设计师处理琐碎但重要的内存管理问题。Go的速度也非常快，几乎和C或C++程序一样快，且能够快速制作程序。
Go的网站就是用Go所建立，但Google有更大的野心。该软件是专为构建服务器软件所设计（如Google的Gmail）。Google认为Go还可应用到其他领域，包括在浏览器内执行软件，取代目前JavaScript的角色。
Pike说：它至少在强度上比JavaScript高一级。Google自建Chrome浏览器，部分原因就是加速JavaScript和网页表现，而Google已经融合了本身的技术，如Native Client和Gears。
Pike表示，Go另一项与网络相关的特色，是服务器和用户端设备，如PC或手机，可以分担工作。因此，使用Go的服务便可轻松适应不同的用户端处理性能。Go也可解决目前的一大挑战：多核心处理器。一般电脑程序通常依序执行，一次进行一项工作，但多核心处理器更适合同步处理许多工作。Pike说：我们自认有足够的支持，可改善这方面的问题。
Go团队正在寻求帮助。其中一个重要领域是改善Go能够使用的runtime library。这类library可提供许多工具和功能，加快程序设计的过程。而Go的library还包括许多重要的设计元素，并供应处理同作、垃圾收集和其他低层杂务的资源。
Go团队也需要编译器方面的协助。Thompson曾为32位元和64位元x86处理器，及ARM处理器写过一些编译器，Taylor也为GCC编译器写过一个Go前端。
尽管Google对Go有很大的野心，该公司也明白，这项计划无法完全取代现有的技术。Pike说：我不认为我们能取代任何东西。我们只是创造出这个领域的另一个角色。
特色
简洁 快速 安全 并行 有趣 开源 支持泛型编程，内存管理，数组安全，编译迅速
Go团队成员
Thompson：1983年图灵奖（Turing Award）和1998年美国国家技术奖（National Medal of Technology）得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言。
Pike：曾是贝尔实验室（Bell Labs）的Unix团队，和Plan 9操作系统计划的成员。他与Thompson共事多年，并共创出广泛使用的UTF-8 字元编码。
Robert Griesemer：曾协助制作Java的HotSpot编译器，和Chrome浏览器的JavaScript引擎V8。
此外还有Plan 9开发者Russ Cox、和曾改善目前广泛使用之开原码编译器GCC的Ian Taylor。
简史
2007年，谷歌工程师Rob Pike, Ken Thompson和Robert Griesemer开始设计一门全新的语言，这是Go语言的最初原型。[1]
2009年11月10日，Go语言以开放源代码的方式向全球发布。[1]
2011年3月16日，Go语言的第一个稳定(stable)版本r56发布。[2]
2012年3月28日，Go语言的第一个正式版本Go1发布。[2]
支持的平台
支持的硬件架构Go语言设计支持主流的32位和64位的x86平台，同时也支持32位的ARM架构。支持的软件操作系统Go语言在Go1版本上支持Windows, 苹果Mac OS X, Linux和FreeBSD操作系统。[3]　
GO语言开发工具
LiteIDELiteIDE是一款专门为Go语言开发的跨平台轻量级集成开发环境（IDE），由visualfc编写。
LiteIDE主要特点：
支持主流操作系统
Windows 
Linux 
MacOS X
Go编译环境管理和切换
管理和切换多个Go编译环境
支持Go语言交叉编译
与Go标准一致的项目管理方式
基于GOPATH的包浏览器
基于GOPATH的编译系统
基于GOPATH的Api文档检索
Go语言的编辑支持
类浏览器和大纲显示
Gocode(代码自动完成工具)的完美支持
Go语言文档查看和Api快速检索
代码表达式信息显示F1
源代码定义跳转支持F2
Gdb断点和调试支持
gofmt自动格式化支持
其他特征
支持多国语言界面显示
完全插件体系结构
支持编辑器配色方案
基于Kate的语法显示支持
基于全文的单词自动完成
支持键盘快捷键绑定方案
Markdown文档编辑支持
实时预览和同步显示
自定义CSS显示
可导出HTML和PDF文档
批量转换/合并为HTML/PDF文档
Sublime TextSublime Text 2（以下简称Sublime）+GoSublime+gocode+MarGo的组合。
其优点有。
自动化提示代码。
保存的时候自动格式化代码，让您编写的代码更加美观，符合Go的标准。
支持项目管理
支持语法高亮
VimVim是从vi发展出来的一个文本编辑器, 代码补全、编译及错误跳转等方便编程的功能特别丰富，在程序员中被广泛使用。EmacsEmacs传说中的神器，她不仅仅是一个编辑器，它是一个整合环境，或可称它为集成开发环境，这些功能如让使用者置身于全功能的操作系统中。EclipseEclipse也是非常常用的开发利器，以下介绍如何使用Eclipse来编写Go程序。IntelliJ IDEA熟悉Java的读者应该对于idea不陌生，idea是通过一个插件来支持go语言的高亮语法,代码提示和重构实现。[4]