2017年2月编程语言排行榜
http://www.cocoachina.com/programmer/20170210/18665.html 年度语言GO
Go语言
Go语言是谷歌2009发布的第二款开源编程语言,它使程序员更具生产力。
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
Go 语言具有很强的表达能力,它简洁、清晰而高效。得益于其并发机制, 用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化。 Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制。 它是一个快速的、静态类型的编译型语言,感觉却像动态类型的解释型语言。
Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。
Go是谷歌2009发布的第二款编程语言。2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用
背景介绍
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,但是谷歌已经使用该语言开发了几个内部项目。派克表示,Go是否会对谷歌即将推出的Chrome OS产生影响,还言之尚早,不过Go的确可以和Native Client配合使用。他表示“Go可以让应用完美的运行在浏览器内。”例如,使用Go可以更高效的实现Wave,无论是在前端还是后台。
Go 同时具有两种编译器,一种是建立在GCC基础上的Gccgo,另外一种是分别针对64位x64和32位x86计算机的一套编译器(6g和8g)。谷歌目前正在研发其对ARM芯片和Android设备的支持。派克表示,“Android手机存在的问题是,我们一直没有一个数学协处理器。”
优势
Go code复用
在Android和IOS开发中共享通用的Go代码通过调用绑定的Golang包名
限制
当前仅支持的一些Go类型
语言之间的绑定会有性能开销
安装Go工具
官方二进制发行版 支持 FreeBSD(8-STABLE 发行版及以上)、Linux、Mac OS X(Snow Leopard 及以上)和 Windows 操作系统以及32位(386)和64位(amd64)的 x86 处理器架构。
若在你的操作系统和架构上没有可用的二进制发行版,请尝试 从源码安装Go 或 安装gccgo来代替gc。
双击打开语言包, 并跟随提示来安装Go工具。该包会将Go发行版安装到 /usr/local/go 中。
此包应该会将 /usr/local/go/bin 目录放到你的 PATH 环境变量中。 要使此更改生效,你需要重启所有打开的终端会话。
测试你的安装
通过构建一个简单的程序来检查Go的安装是否正确,具体操作如下:
首先创建一个名为 hello.go 的文件,并将以下代码保存在其中:
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
接着通过 go 工具运行它:
$ go run hello.go
hello, world
若你看到了“hello, world”信息,那么你的Go已被正确安装。
语法学习
https://tour.go-zh.org/welcome/1 学习
使用Go语言开发IOS应用
-
下载
$ go get golang.org/x/mobile/cmd/gomobile
由于code.google.com被墙,导致一些托管在code.google.com上面的包go get不下来
-
安装(需要等待几分钟)
gomobile init
常见错误
1.gomobile: mkdir /path/pkg/gomobile/work-xxx: permission denied
执行以下命令
sudo chown -R zyk3451:admin /path/pkg/gomobile
2.GOPATH is not set
执行以下命令
export GOPATH='/path/'
export GOROOT='/usr/local/go'
构建一个 iOS 的 IPA 包
$ go get -d golang.org/x/mobile/example/basic 获取安装basic例子
$ gomobile build -target=ios golang.org/x/mobile/example/basic
此命令会生成名为basic的app安装包
iOS 来说没有一个统一的部署命令,你需要用你熟知的方式把包拷贝到设备或者模拟器上 使用 ios-deploy 工具。
-
$ cd $GOROOT/src/golang.org/x/mobile/example/bind
$ gomobile bind -target=ios [golang.org/x/mobile/example/bind/hello](http://golang.org/x/mobile/example/bind/hello)
此命令在ios/路径下生成bind.xcodeprojxcode项目以及 在bind/目录下生成一个 hello.framework
-
打开xcode项目
$ open ios/bind.xcodeproj
![image.png](https://upload-images.jianshu.io/upload_images/4966439-5d9715ff9cdfad97.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
-
拖拽hello.framework文件到xcode项目内,最后 Build & Run <完>
是否值得
如果你已经在使用 Go 来写应用了,并且不在乎应用是否 native 的,那么你可以放开手继续做,因为你已经知道了构建和部署用 Go 写的 native 应用是很简单的。如果你打算花更多的精力尝试一下绑定,你可以走的更远一些,不过还是需要稍微控制一下。
如果你没在用 Go,那么就不太值的现在就在开发 native 的移动应用时考虑 Go。 在不久的将来,Go 会成为这方面很有潜力的选择的。
参考文档:
http://docscn.studygolang.com/doc/install 安装
https://tour.go-zh.org/welcome/1 学习
http://www.jianshu.com/p/403aa507935b 使用Go语言开发Android&IOS应用
http://docscn.studygolang.com/doc/ go文档
https://github.com/golang/go.git go源码
http://www.golangtc.com/download/package go get被墙解决办法
http://www.golangtc.com/t/554313af421aa92eb3000019 $GOPATH not set
http://www.tuicool.com/articles/V36jm27 Go 语言 Android
http://www.ituring.com.cn/article/215762 Go 语言 开发iOS (Swift)