Go语言是Google开发的一个开源项目,目的之一是为了提高开发人员的编程效率。Go语言语法灵活,简洁,清晰,高效。它的并发特性可以方便的用于多核处理器和网络开发,同时灵活新颖的类型系统可以方便的编写模块化的系统。go可以快速编译,同时具有垃圾内存自动回收功能,并且还支持运行时反射。go十一个高效、静态类型,但是邮局有解释语言的动态类型特征的系统级语法。
只介绍Ubuntu下386的go语言安装方法,其他平台的可以到http://code.google.com/p/golang-china/上查看.
1、安装必要的包
sudo apt-get install bison ed gawk gcc libc6-dev make
如果上面有那个安装不上的可能会导致后面的也无法安装,用户也可以分个安装,这样保险些.
2、安装Mercurial
Mercurial其实是一个版本管理系统(可以通过hg名字检测是否安装),类似git.
sudo apt-get install python-setuptools
sudo apt-get install python-dev
sudo apt-get install build-essential
sudo apt-get install mercurial
3、获取go语言源码
hg clone -r release http://go.googlecode.com/hg/ go
4、配置环境变量
先 mkdir bin
这里,bin是存放GO语言编译器连接器的目录,需要加入到PATH.
nano .bashrc 打开home/your-username目录下的.bashrc文件,加入如下信息,具体含义可以参考官方文档
export GOROOT=$HOME/go
export GOARCH=386
export GOOS=linux
export PATH=${PATH}:$HOME/bin
保存退出后,执行
source .bashrc
使其生效.
5、安装go语言,编译go环境.
$cd go/src
$./all.bash
开始编译,编译完成后会显示如下信息
等到出现:
../test
ALL TESTS PASSED
---
installed go for linux386 in /home/your-username/go
installed commands in /home/your-username/go/bin
就表明编译完成。386对应的编译器是8g,链接器是8l;
我们首先要找到执行文件8g的所在地:
$ sudo find / -name 8g
显示:
/home/brite/go/.hg/store/data/src/cmd/8g
/home/brite/go/src/cmd/8g
/home/brite/go/pkg/tool/linux_386/8g (这里brite是我的用户名)
上面的/home/brite/go/pkg/tool/linux_386/8g这行里的 8g就是执行文件8g,
需把/home/brite/go/pkg/tool/linux_386/添加到PATH,编辑.bashrc,在最末加入:
export PATH=${PATH}:/home/brite/go/pkg/tool/linux_386/
这样就可直接运行8g命令了。
$ 8g -V
显示:
8g version go1.0.2
OK.我们来编写一个最简单的GO程序,代码如下:
package main
import "fmt"
func main() {
fmt.Printf("hello, world!")
}
将上面的代码保存为hello.go并编译之:
8g hello.go
编译后生成hello.8,然后运行:
8l hello.8
会生成8.out,执行:
./8.out
终端上将显示:
hello, world!
这表明go环境搭建成功。在debian/ubuntu服务器上也是一样的安装方法,只是无须sudo.
我亲自测试过,本地ubuntu上和 debian/ubuntu服务器上,均搭建成功。
语法及类库文档
语法见这里:
http://golang.org/doc/go_spec.html
类库见这里:
http://golang.org/pkg/
有用的文档:
http://golang.org/doc/effective_go.html
http://golang.org/doc/go_tutorial.html
如果以前学习C++,可以参考这里:
http://golang.org/doc/go_for_cpp_programmers.html
保持最新版本.
目前GO语言还在不断完善中,还没有到可以进入生产环境的时候,如果想及时更新最新的版本,如下:
hg pull
hg update release
make all
---------------------------------------------------------
只介绍Ubuntu下386的go语言安装方法,其他平台的可以到http://code.google.com/p/golang-china/上查看.
1、安装必要的包
sudo apt-get install bison ed gawk gcc libc6-dev make
如果上面有那个安装不上的可能会导致后面的也无法安装,用户也可以分个安装,这样保险些.
2、安装Mercurial
Mercurial其实是一个版本管理系统(可以通过hg名字检测是否安装),类似git.
sudo apt-get install python-setuptools
sudo apt-get install python-dev
sudo apt-get install build-essential
sudo apt-get install mercurial
3、获取go语言源码
hg clone -r release http://go.googlecode.com/hg/ go
4、配置环境变量
先 mkdir bin
这里,bin是存放GO语言编译器连接器的目录,需要加入到PATH.
nano .bashrc 打开home/your-username目录下的.bashrc文件,加入如下信息,具体含义可以参考官方文档
export GOROOT=$HOME/go
export GOARCH=386
export GOOS=linux
export PATH=${PATH}:$HOME/bin
保存退出后,执行
source .bashrc
使其生效.
5、安装go语言,编译go环境.
$cd go/src
$./all.bash
开始编译,编译完成后会显示如下信息
等到出现:
../test
ALL TESTS PASSED
---
installed go for linux386 in /home/your-username/go
installed commands in /home/your-username/go/bin
就表明编译完成。386对应的编译器是8g,链接器是8l;
我们首先要找到执行文件8g的所在地:
$ sudo find / -name 8g
显示:
/home/brite/go/.hg/store/data/src/cmd/8g
/home/brite/go/src/cmd/8g
/home/brite/go/pkg/tool/linux_386/8g (这里brite是我的用户名)
上面的/home/brite/go/pkg/tool/linux_386/8g这行里的 8g就是执行文件8g,
需把/home/brite/go/pkg/tool/linux_386/添加到PATH,编辑.bashrc,在最末加入:
export PATH=${PATH}:/home/brite/go/pkg/tool/linux_386/
这样就可直接运行8g命令了。
$ 8g -V
显示:
8g version go1.0.2
OK.我们来编写一个最简单的GO程序,代码如下:
package main
import "fmt"
func main() {
fmt.Printf("hello, world!")
}
将上面的代码保存为hello.go并编译之:
8g hello.go
编译后生成hello.8,然后运行:
8l hello.8
会生成8.out,执行:
./8.out
终端上将显示:
hello, world!
这表明go环境搭建成功。在debian/ubuntu服务器上也是一样的安装方法,只是无须sudo.
我亲自测试过,本地ubuntu上和 debian/ubuntu服务器上,均搭建成功。
语法及类库文档
语法见这里:
http://golang.org/doc/go_spec.html
类库见这里:
http://golang.org/pkg/
有用的文档:
http://golang.org/doc/effective_go.html
http://golang.org/doc/go_tutorial.html
如果以前学习C++,可以参考这里:
http://golang.org/doc/go_for_cpp_programmers.html
保持最新版本.
目前GO语言还在不断完善中,还没有到可以进入生产环境的时候,如果想及时更新最新的版本,如下:
hg pull
hg update release
make all
---------------------------------------------------------
Go,互联网时代的C语言 - 许式伟
许式伟 上海七牛信息技术有限公司 CEO 许式伟曾任盛大资深研究员、金山技术总监、WPS Office 2005 首席架构师,开源爱好者。技术关注领域包括分布式存储、网络操作系统、Erlang 风格编程与最佳服务端编程实践、搜索引擎等。
他是门票4200元的QCon2012北京大会的讲师。
内容简介:语言的选择已经非常之多。偏系统级的语言大多为静态类型语言,例如C,C++,Java,C#,Delphi;也有偏快速业务开发的语言,大都为动态类型,例如PHP,Python,Perl,Ruby,JavaScript;还有面向特定领域的,例如R和Matlab。
那么,为什么我们需要Go这样一门新语言呢?这门语言究竟肩负着怎样的使命而面世?最初,Go语言官方自称是一门系统级语言。之所以开发Go语言, 是因为“近10年左右开发程序之难让我们有点沮丧”。Go语言这一定位暗示了希望取代C和Java地位,成为最流行的语言。在 2000年前的单机时代,C语言是编程之王。随着机器性能的提升,软件规模与复杂度的提高,Java逐步取代了C的位置。尽管看起来Java已经深获人 心,但Java编程的体验并未尽如人意。历年来的编程语言排行榜显示,Java语言的市场份额在逐步下跌,并趋近于 C 语言的水平。这对于Java来说是非常尴尬的。作为一个现代化的语言,拥有众多C语言无法企及的特性,但似乎市场并不买账。也许挺Java的公司非常之 多,有钱的如 IBM、Oracle(Sun)之类,亦无法改变这个局势。
Go语言的作者们很清楚,C++真的没啥值得参考的,他们要学习的是C语言。C语言经久不衰的根源是它足够简单。Go语言也要足够得简单。那么,互联网时代的C语言需要哪些东西呢?
首先,并行与分布式支持。多核化和集群化是互联网时代的典型特征。作为一个互联网时代的C语言,必须要让这门语言操作多核与计算机集群如单机一样容 易。其次是软件工程支持,工程规模不断扩大是产业发展的必然趋势。单机时代语言可以只关心问题本身的解决。互联网时代的C语言还需要考虑软件品质保障、团 队协作相关的话题。最后,编程哲学的重塑。计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程、面向对象编程,函数式编程、面向消息编程 等等。这些思想究竟孰优孰劣,众说纷纭。什么才是最佳的编程实践?
在本次演讲中,我们将来看下Go作为互联网时代的C语言,是如何应对这些问题的。
《Google AppEngine》的介绍 - 陆康那么,为什么我们需要Go这样一门新语言呢?这门语言究竟肩负着怎样的使命而面世?最初,Go语言官方自称是一门系统级语言。之所以开发Go语言, 是因为“近10年左右开发程序之难让我们有点沮丧”。Go语言这一定位暗示了希望取代C和Java地位,成为最流行的语言。在 2000年前的单机时代,C语言是编程之王。随着机器性能的提升,软件规模与复杂度的提高,Java逐步取代了C的位置。尽管看起来Java已经深获人 心,但Java编程的体验并未尽如人意。历年来的编程语言排行榜显示,Java语言的市场份额在逐步下跌,并趋近于 C 语言的水平。这对于Java来说是非常尴尬的。作为一个现代化的语言,拥有众多C语言无法企及的特性,但似乎市场并不买账。也许挺Java的公司非常之 多,有钱的如 IBM、Oracle(Sun)之类,亦无法改变这个局势。
Go语言的作者们很清楚,C++真的没啥值得参考的,他们要学习的是C语言。C语言经久不衰的根源是它足够简单。Go语言也要足够得简单。那么,互联网时代的C语言需要哪些东西呢?
首先,并行与分布式支持。多核化和集群化是互联网时代的典型特征。作为一个互联网时代的C语言,必须要让这门语言操作多核与计算机集群如单机一样容 易。其次是软件工程支持,工程规模不断扩大是产业发展的必然趋势。单机时代语言可以只关心问题本身的解决。互联网时代的C语言还需要考虑软件品质保障、团 队协作相关的话题。最后,编程哲学的重塑。计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程、面向对象编程,函数式编程、面向消息编程 等等。这些思想究竟孰优孰劣,众说纷纭。什么才是最佳的编程实践?
在本次演讲中,我们将来看下Go作为互联网时代的C语言,是如何应对这些问题的。
陆康 Android上著名应用Aldiko公司的工程师。曾写过Google Appengine的中文教程。
Twitter:@lookon
Aldiko主页:www.aldiko.com.
Go项目组正式发布了Go编程语言、官方库和工具集的1.0稳定版本,同步开发的 GAE 团队很早就按捺不住,很快删除了appengine-go项目的全部下载,并正式发布了1.6.4版的Google App Engine SDK for the Go runtime。
Go runtime为常用的App Engine服务(Blobstore、Datastore、Memcache 等)提供了简明易用的Go API和直截了当的开发过程。与Python及Java SDK一样,Go应用也可以通过开发服务器在本地测试,最方便的是开发服务器会自动编译Go代码,因此测试修改后的代码只是刷新浏览器这样简单。
Go 1 SDK还包含一些功能改进与错误修正,整个SDK采用了Go 1的time API,还为批量操作的错误处理提供了MultiError数据类型,此外还支持Datastore Cursors及XMPP和Log服务。详情可参阅发布说明。
尽管目前Go App Engine runtime还处于测试阶段,Go 1所提供的语言稳定性是一项重要的里程碑。若要进一步了解Go 1的情况,可以参考Go 1发布以及 golang.org 丰富的文档