科学网

 找回密码
  注册

tag 标签: Go语言

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

一起来学学Go语言
热度 6 outcrop 2017-1-5 18:25
忽然间AlphaGo横扫围棋,这里推荐下同出自Google的比较新(2009年发布)的编程语言:Go语言——是一门简洁、优雅、高效、开源的计算机语言。作为高校必修计算机语言的话,比C语言更有实用价值和时代感吧。 Go语言算是名门、名家之作,虽然目前(1.8版本)还不够成为通杀编程江湖的屠龙刀,但在网络、并发编程方面,易用性和可靠性已经是遥遥领先了。官方网站: https://golang.org/ (不用点击打开,应该仍然被墙) 国内学习网站: http://studygolang.com/ 不过AlphaGO据说是C++和lua等写的,历史原因吧。
个人分类: 计算机应用技术|9503 次阅读|11 个评论
选择Go语言的12个理由
bigdataage 2014-3-11 12:15
选择Go语言的12个理由 摘要: Go语言在编程语言的家族中算是一个比较新的成员,弥补C语言的不足并且保持了C的极简主义,专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 编者按:多核化和集群化是互联网时代的典型特征,那语言需要哪些特性来应对这些特征呢?多数语言在语法层面并不直接支持协程,而通过库的方式支持的协程的功能也并不完整,比如仅仅提供协程的创建、销毁与切换等能力。如果在这样的协程中调用一个同步 IO操作,比如网络通信、本地文件读写,都会阻塞其他的并发执行协程,从而无法真正达到协程本身期望达到的目标,而Go语言的出现解决了这个问题。 以下是原文: Go语言是谷歌推出的一种编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。 Go语言在编程语言的家族中算是一个比较新的成员,弥补C语言的不足并且保持了C的极简主义,因此在过去的几年中它的发展却十分迅速。目前在我的工作中Go语言也充当着一个重要的角色! 到底Go语言对企业来说有什么好处?下面简单介绍一下企业选择Go语言的12个理由: 1. 一个完整的语言体系 Go语言已经逐渐发展成一个完整的体系,不论是Go项目自身还是ta的社区都有了极大的发展。 2. C级性能 Go语言目前的性能已经达到了C语言的程度。而且Go语言的性能要比其他企业级语言(如Java、Scala等)更强。随着Go语言版本的更新,它将会变得愈来愈成熟。 Go is like a better C, from the guys that didn’t bring you C++ — Ikai Lan 3. 快速编译 Go语言编译速度很快,如此快速的编译使它很容易作为脚本语言使用。因为谷歌设计Go语言就是为了解决谷歌自身的问题——数以万计的代码和CPU核心。我自己的也验证过Go语言的编译速度,几乎是和语言同步进行。 4. 跨平台 Go语言可以在多个平台上进行编译。Go语言设计支持主流的32位和64位的x86平台,同时也支持32位的ARM架构,同时支持多种操作系统,在企业中不需要针对系统环境做额外的部署。 5.测试调优框架 这些基准测试可以查看: my recent post about Golang benchmarking 6. 语言级并行 并发性是能够同时执行多个计算结果。现在并发性已经成为衡量一个语言的关键特性,Go语言就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。 7. 代码风格 - gofmt 通过谷歌的页面可以看见Go语言里面内置了很多工具链,最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难 8.内置文档 - godoc 企业中API和程序的相互协作以及和第三方协作是非常重要的,Go语言可以建立一个代码的内置文档-godoc,可以分享将资源在代码中进行分享。 9.自动垃圾回收 在C和c++程序员花费很多的时间和精力分配和释放内存,R语言则可以消除这种情况,确保程序员可以集中精力进行更多的生产任务。当然垃圾收集也有自身的问题,不过这些都是通过语言来实现的,不需要程序员进行额外的工作。 10. 丰富的库 一个丰富的库对于任何一种语言都是非常重要的,可以通过 the list of packages in Go 查看Go语言的库,包括压缩、加密、大量的数据结构、SQL语句、JSON和XML解析、模板、网络等等。 11. 有趣的语言,低门槛学习条件 有一些优秀的程序员可以学习多种语言,他们是非常优秀的。但是作为一个普通人,学习语言还是很痛苦的,但是Go语言有C的基因,学习门槛很低,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载、对象等。 After Go, programming in anything else seems as difficult as balancing the State of California’s budget. — Charles Thompson 12. 经过线上大规模考验的成功案例 我研究越多,越让我印象深刻。还有很多好处我没有列出来,因为实在是太多了。通过一些具体的案例来展示一下吧。 iron.io In retrospect, it was a great decision to choose Go as it's allowed us to build great products, to grow and scale, and attract grade A talent. — Read Case Study bitly.com We identified early on that Go had all the makings of a language that could supersede some of the places we would have traditionally turned to C and some of the places where we wanted to move away from Python. — Read Case Study torbit.com We process over 6 billion performance metrics a day and our goal is to keep our customers’ data safe forever. — Read Case Study conformal.com In summary, Go makes hacking fun again by doing away with intellectual masturbation and terrible, terrible tools. It compiles super fast and runs at native speeds. Any C expert can pick it up over the course of a few weeks and with its awesome data representation features I believe we could rewrite a product such as Cyphertite in 25% as many lines of code. — Read Case Study 原文链接: 12 Benefits of Golang For Enterprise Systems (编译:刘亚琼/审校:仲浩) 来源: http://www.csdn.net/article/2014-03-10/2818695-Go-gofmt-godoc 部分评论: 只要QT有了go的port, 那客户端软件谁不用Go谁傻\逼. go相比C++, 更适合现代系统软件开发。 这个是实话啊,go要是配上了GUI部分,就是客户端软件的首选垃圾收集,无需体外虚拟机,接近C的性能,跨平台,丰富的内置包,超快的编译速度,单一的代码风格与良好的可维护性。当然GO目前欠缺一个良好的重量级IDE。 虽然我学过的语言不算那么那么多,但是唯独学了Go以后有一种无论是什么都想要用Go来写的想法,因为这门语言非常简单而强悍。至于Rust,我觉得可能比起Go,Rust最大的亮点也就是支持自选的GC了,不过也看看什么应用场景了,最近一点时间普遍把GC看淡的源头估计也就是苹果把GC从obj-c里移除的原因吧。。。表示喜欢FireFox,等Rust出来了以后可以试一试,不知道有没有Go好用。。 无论如何,GO语言都值得你去尝试一下! 我最喜欢的其实是benchmark 的部分!哈哈哈 Go最应该使用的场合是云计算,大数据。 部署方便,性能高。 比JAVA节能环保,很有经济意义。
3337 次阅读|0 个评论
21世纪的编程语言--Go语言学习资料总结
热度 4 bigdataage 2013-5-13 14:09
21世纪的编程语言--Go语言学习资料总结 Google于2012年3月28日发布了开源的计算机程序设计语言--Go语言的正式版(version 1.0),具有很多优秀的特性,在编译效率、执行效率和开发效率(写源代码的效率)之间取得了较好的平衡,兼顾了各方面。Go语言面向Web、多核计算与大规模集群,并引入了其它很多NB的语法。 对于我个人来说,主要喜欢它的运行速度快,且处理文本(比如蛋白质与核酸的注释文件)不是很麻烦,字符串类型是基本类型之一,正则表达式包也好用。perl、python虽然很适合处理字符串,但真的很慢,也不方便写能并行运行的代码,现在的高通量数据几十个GB很正常,perl、python慢的让我吐,无法容忍。C语言运行很快,但真的不适合处理字符串。100行的perl代码,C需要500-1000行。Go语言综合了这二者的优点。 还有,Go语言开发团队的阵容真的很强大: Rob Pike: Unix操作系统、Plan9网络操作系统、Limbo编程语言和UTF-8编码的主要设计者,Google首席工程师 。 Ken Thompson :图灵奖获得者,Unix、Plan 9、UTF-8编码和B编程语言(C语言的前身)的创立者之一。 Robert Griesemer :GCC社区的超级活跃人物,是gold连接器和GCC过程间优化LTO的主要设计者之一,也是Zembu公司的创始人之一。 还有其它计算机领域的大牛参与。而且得到了Google的推广与大力支持。 Perl 6 从2000年开始,开发了10多年,还有很多问题没解决,就是因为没钱、没大公司支持,全靠社区,不知道要等到猴年马月才能发布Perl 6 解释器的正式版。 Go语言的诞生,是三个有很强个性的设计师共同完成的。Go语言的定位,就象三维坐标系中的一个点,在强类型、动态和并发这三个特性维度上,分别代表了Ken、Robert和Rob三人的创造思维的投影。 Go语言( version 1.0 )才发布一年,就有那么多中文资料,让人惊叹,其官方文档也正在翻译为中文。在TIOBE上的排名也在上升,估计10年以内会超过C和Java。 下载Go语言编译器: https://code.google.com/p/go/downloads/list 下面尽量全面地总结Go语言的学习资料(会持续更新),主要包括5类:官方资料,书籍,博客,论坛,其它。 1. Go 语言中文翻译项目,把很多官方资料翻译为了中文,还有相关网站的链接(这个网站里已经有了的链接,下面我就不再列出了): https://code.google.com/p/golang-china/ 2. Go语言学习园地博客 http://blog.studygolang.com/ http://studygolang.com/ 3. 编程语言 Google Go 的初级读本 http://www.oschina.net/question/12_7902 4. Go语言并发之美:解释其中内核、外延 http://www.cr173.com/html/18345_all.html 5. Go by Example,Go语言的65个简单列子,涵盖了Go语言的主要语法点。是英文的,但很简单,本人英语超烂,6级没过,照样轻松看懂。 https://gobyexample.com/ 6. 英文书籍,用百度搜一下,都有电子版可以下载,新浪共享里就都有。 http://www.amazon.com/s/ref=nb_sb_noss_1?url=search-alias%3Dapsfield-keywords=go%20programmingsprefix=go+progra%2Capsrh=i%3Aaps%2Ck%3Ago%20programming 7. Go入门指南——The Way to Go(中文版) http://www.ituring.com.cn/book/1205 https://github.com/Unknwon/the-way-to-go_ZH_CN 8. GitHub里面搜索“golang”,有很多别人分享的源代码。 https://github.com/ 9. 别人提的问题,都有回答。若自己的问题别人没提过,可以自己提出,有人解答。 http://stackoverflow.com/ 10. Golang标准库的中文翻译 https://github.com/polaris1119/The-Golang-Standard-Library-by-Example 11. Asta Xie的GitHub: https://github.com/astaxie 针对每个函数的代码例子: https://github.com/astaxie/gopkg 12. Go 1.1 介绍 (中文) http://www.mikespook.com/2013/03/%E7%BF%BB%E8%AF%91-go-1-1-%E4%BB%8B%E7%BB%8D/ 13. Go语言中文书籍,已经出版了的有3本,还有几本在翻译之中。这些书有的是开源的,在网上可以免费看。购买纸质版、电子版也很方便,比如amazon.cn, china-pub, dangdang等购物网站 : http://www.amazon.cn/s/ref=nb_sb_noss?__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99url=search-alias%3Dapsfield-keywords=Go%E7%BC%96%E7%A8%8Brh=i%3Aaps%2Ck%3AGo%E7%BC%96%E7%A8%8B http://search.suning.com/emall/search.do?keyword=Go%E7%BC%96%E7%A8%8BcityId=9211 http://search.jd.com/Search?keyword=Go%E7%BC%96%E7%A8%8Benc=utf-8 http://search.dangdang.com/?key=Go%B1%E0%B3%CC http://search.china-pub.com/s/?key1=go%b1%e0%b3%cctype=pz=1 14. 学习Go语言: http://wenku.baidu.com/view/6e7a0ea6284ac850ad0242c1.html 15. C?Go?Cgo! (Cgo允许在Go包中调用C代码) http://my.oschina.net/chai2010/blog/119419 16. 评: 为什么我不喜欢Go语言式的接口 http://www.ituring.com.cn/article/37642 17. Go语言学习笔记 https://github.com/qyuhen/book 18. Go语言图书列表 http://my.oschina.net/chai2010/blog/119967 19. 徐新华的GitHub: https://github.com/polaris1119 包括对Go语言标准库的翻译、进一步解释以及详细的例子( Golang标准库 ): https://github.com/polaris1119/The-Golang-Standard-Library-by-Example ( 包括了进一步的解释说明和代码例子 ) 20. 一篇 Rob Pike 介绍的关于并发和并行的文章,很通俗地介绍了Go语言的并发机制: http://concur.rspace.googlecode.com/hg/talk/concur.html#landing-slide 21. Go语言资料收集 (很全面, 来自 【wonderfo】) https://github.com/wonderfo/wonderfogo/wiki
10709 次阅读|6 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-24 00:25

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部