diff --git a/README.md b/README.md index ad26675..f194b85 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ 该翻译版本已获得原作者(Ivo Balbaert)本人授权,并表示支持开源事业的发展! ##翻译进度 -[起源与发展](./eBook/01.1.md) +[语言的主要特性与发展的环境和影响因素](eBook/01.2.md) ##支持本书 如果你喜欢本书《Go入门指南》,你可以参与到本书的翻译或纠正工作中来,一同完善本书并帮助壮大Go语言在国内的学习群体,给大家提供更好的学习资源。 diff --git a/eBook/01.2.md b/eBook/01.2.md index bfd471f..bda7642 100644 --- a/eBook/01.2.md +++ b/eBook/01.2.md @@ -76,7 +76,7 @@ Go语言使用静态类型,所以它是类型安全的一门语言,加上通 Go语言其实也有一些动态语言的特性(通过关键字 `var`),所以它对那些逃离Java和.Net世界而使用Python,Ruby,Php和JavaScript的开发者们也具有很大的吸引力。 -Go语言支持交叉编译,比如说你可以在运行Linux系统的计算机上开发运行下Windows下运行的应用程序。这是第一门支持UTF-8的编程语言( ***译者注:.NET好像也支持吧?*** ),这不仅体现在你它可以处理使用UTF-8编码的字符串,就连它的源码文件格式都是使用的UTF-8编码。Go语言做到了真正的国际化! +Go语言支持交叉编译,比如说你可以在运行Linux系统的计算机上开发运行下Windows下运行的应用程序。这是第一门完全支持UTF-8的编程语言( ***译者注:.NET好像也支持吧?*** ),这不仅体现在它可以处理使用UTF-8编码的字符串,就连它的源码文件格式都是使用的UTF-8编码。Go语言做到了真正的国际化! ##啊哦,亲,你看得也太快了。。。还没翻译完呢 0 0 要不等到 ***2013年4月11日*** 再来看看吧~~ @@ -92,4 +92,61 @@ Go语言支持交叉编译,比如说你可以在运行Linux系统的计算机 - [Go语言学习园地](http://studygolang.com/) - [Golang中国](http://golang.tc) -##1.2.6 语言的用途 \ No newline at end of file +##1.2.6 语言的用途 +Go语言被设计成一门应用于搭载Web服务器,存储集群和类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。 + +Go语言一个非常好的目标就是实现所谓的复杂事件处理([CEP](http://en.wikipedia.org/wiki/Complex_event_processing)),这项技术要求海量并行支持,高度的抽象化和高性能。当我们进入到物联网时代,CEP必然会成为人们关注的焦点。 + +但是Go语言同时也是一门可以用于实现一般目标的语言,例如对于文本的处理,前端展现,甚至像使用脚本一样使用它。 + +值得注意的是,因为垃圾回收和自动内存分配的原因,Go语言不适合来开发对实时要求很高的软件。 + +越来越多的谷歌内部的大型分布式应用程序都开始使用Go语言来开发,例如谷歌地球的一部分代码就是由Go语言完成的。 + +如果你想知道一些其它组织使用Go语言开发的实际应用项目,你可以到这个页面进行查看:[http://go-lang.cat-v.org/organizations-using-go](http://go-lang.cat-v.org/organizations-using-go)。出于隐私保护的考虑,许多公司的项目都没有展示在这个页面。我们将会在第21章讨论到一个使用Go语言开发的大型存储区域网络(SAN)案例。 + +在Chrome浏览器中内置了一款Go语言的编译器用于本地客户端(NaCl( ***为什么我觉得这是"钠"?*** )),这很可能会被用于在Chrome OS中执行Go语言开发的应用程序。 + +Go语言可以在Inter或ARM处理器上运行,因此它也可以在安卓系统下运行,例如Nexus系列的产品。 + +在 Google App Engine 中使用Go语言:2011年5月5日,官方发布了用于开发运行在 Google App Engine 上的Web应用的 Go SDK,在此之前,开发者们只能选择使用Python或者Java。这主要是 David Symonds 和 Nigel Tao 努力的成果。目前最新的稳定版是基于r60.3的SDK 1.6.1,于2011年12月13日发布。当前Go语言的稳定版本是Go 1( ***译者注:目前最新的稳定版是Go1.1*** )。 + +##1.2.7 关于特性丢失 +许多能够在大多数面向对象语言中能够发现的特性Go语言都没有支持,但其中的一部分可能会在未来被支持。 + +- 为了简化设计,不支持函数重载和操作符重载 +- 为了避免在C/C++开发中的一些Bug和混乱,不支持隐式转换 +- Go语言通过另一种途径实现面向对象设计(第10-11章)来放弃类和类型的继承 +- 尽管在接口的使用方面(第11章)可以实现类似变体类型的功能,但本身不支持变体类型 +- 不支持动态加载代码 +- 不支持动态链接库 +- 不支持泛型 +- 通过 `recover` 和 `panic` 来替代异常机制(第13.2-3节) +- 不支持断言 +- 不支持静态变量 + +关于Go语言开发团队对于这些方面的讨论,你可以通过这个页面查看:[http://golang.org/doc/go_faq.html](http://golang.org/doc/go_faq.html) + +##1.2.8 使用Go语言编程 +如果你有其它语言的编程经历(面向对象编程语言,如:Java,C#,Object-C,Python,Ruby),在你进入到Go语言的世界之后,你将会像迷恋你的X语言一样无法自拔。Go语言使用了与其它语言不同的设计模式,所以当你尝试将你的X语言的代码迁移到Go语言时,你将会非常失望,所以你需要从头开始,用Go的理念来思考。 + +如果你在至高点使用Go的理念来重新审视和分析一个问题,你通常会找到一个适用于Go语言的优雅的解决方案。 + +##1.2.9 小结 +这里列举一些Go语言的必杀技: + +- 简化问题,易于学习 +- 内存管理,简洁语法,易于使用 +- 快速编译,高效开发 +- 高效执行 +- 并发支持,轻松驾驭 +- 静态类型 +- 标准类库,规范统一 +- 易于部署 +- 文档全面 +- 免费开源 + +##链接 +- [目录](directory.md) +- 上一节:[起源与发展](01.1.md) +- 下一章:[安装与运行环境](02.1.md) \ No newline at end of file diff --git a/eBook/directory.md b/eBook/directory.md index 95f4a07..afb0440 100644 --- a/eBook/directory.md +++ b/eBook/directory.md @@ -6,6 +6,7 @@ - 1.1 [起源与发展](01.1.md) - 1.2 [语言的主要特性与发展的环境和影响因素](01.2.md) - 第2章:安装与运行环境 + - 2.1 [平台与架构](02.1.md) - 第3章:编辑器、集成开发环境与其它工具 ##第二部分:语言的核心结构与技术