Web Analytics

Hugo作者、Go核心开发团队成员谈诞生13年的Go语言:生态系统、演化与未来[译]

本文翻译自《Go Language at 13 Years: Ecosystem, Evolution, and Future in Conversation with Steve Francia》。 译注:Go开源于2009年,如果从那时算起,Go才11岁;但在Go核心开发团队眼中,Go的真正诞生年份是2007年,至今13个年头了。关于Go的演化简史可以参见我的专栏文章:《Go语言的前生今世》。 本文要点: Go的简单性让你可以快速上手使用它–你可以在一个下午就消化掉整个Go语言规范; 作者认为Go是当今最好的现代语言之一(其他的还包括:Dart、Flutter和Rust); Go的未来是由它的开源社区决定的,它对所有的功能建议进行讨论和辩论。除非达成明确的共识,否则该功能不会被实现。 社区的规模大约每18个月翻一番。 最初,Go的早期采用者多来自python或ruby等动态语言的开发人员,现在随着语言的成熟,来自Java、.NET和C++程序员也开始接纳并使用Go。 在充满挑战的一年里,社区适应了相互支持,出现了多个meetup,并出现了新的资源。 编程语言的历史只朝着一个方向发展,每一种新的语言的出现都让事情都变得越来越复杂,越来越抽象。然而,就在十几年前,Go在Google诞生了。这种编程语言走的是另外一条路,它把赌注押在了简单和精心的设计和实现上。这个配方一直保留到今天,你可以直接开始写Go代码,没有太大的障碍。当你想到现代软件的大部分流行和可靠的作品都是用Go编写的,比如Docker、Kubernetes、Prometheus等,这就足以让你印象深刻。这个列表还在持续增加。为了了解Go从哪里来,更重要的是它要往哪里去,InfoQ联系了Google负责战略和产品的Go编程语言团队核心成员Steve Francia(译注:他也是知名静态站点生成工具gohugo的作者)。 ...

January 2, 2021 · 16 min · Tony Bai

Go语言有哪些“劣势”

本文源于笔者对知乎上的一个问题“Go有哪些劣势?”(https://www.zhihu.com/question/300163211)的一次回答(https://www.zhihu.com/question/300163211/answer/1632229924)。当时随手花几分钟在手机上写了一些点。但事后我觉得应该再做一些系统地思考。在这里我就将更系统地思考后的答案整理并分享给大家。 关于Go语言,我是喜欢的,甚至可以算作“鼓吹者”阵营的一份子。但我一贯秉承“Go并非完美语言”这个观点来尽可能客观地看待Go。每种编程语言都有自己的劣势,Go也不例外,下面我们就来列举一下Go的那些“劣势”: ...

December 24, 2020 · 9 min · Tony Bai

基于Markdown格式的电子书生成工具大比拼:gohugo、mdbook和peach

基于Markdown格式文件写博客已经很多年了,一直使用的是Wordpress的markdown插件,由于各种遗留原因,一直没有转换到直接使用静态站点的方式。博客文章之间一般来说多是独立篇章,少有关联,即便是写一个系列文章,数量也不会太多。因此,用博客形式来组织书籍章节是不大合适的。“术业有专攻”,我们还得寻找专门用来制作电子书的工具或平台,并且要支持本地安装,支持基于Markdown格式的源数据文件。 专门用于制作电子书类文档的知名工具包括:gitbook和Read the Docs。不过前者的开源版本2018年末就不更新了,而Read the Docs则比较老,还需要多个工具配合。我个人倾向于单个二进制文件搞定一切。于是我找到了三个候选:gohugo、mdbook和peach,这三个候选部署时都只有一个二进制文件。gohugo和peach是Go语言实现的,而mdbook则是用Rust语言实现的。下面我们就来简单对比一下这三个基于Markdown格式的电子书制作工具。 ...

June 27, 2020 · 8 min · Tony Bai

Go语言联合作者Rob Pike专访:Go确实已成为云基础架构的语言

尽管看到Docker,Kubernetes和用Go编写的云计算的许多其他组件令人欣喜和重要,但也许并不奇怪。Go确实已经成为云基础架构的语言。- Rob Pike,Go编程语言的联合作者 ...

May 1, 2020 · 10 min · Tony Bai

后端程序员一定要看的语言大比拼:Java vs. Go vs. Rust

这是Java,Go和Rust之间的比较。这不是基准测试,更多是对可执行文件大小、内存使用率、CPU使用率、运行时要求等的比较,当然还有一个小的基准测试,可以看到每秒处理的请求数量,我将尝试对这些数字进行有意义的解读。 为了尝试尽可能公平比较,我在此比较中使用每种语言编写了一个Web服务。Web服务非常简单,它提供了三个REST服务端点(endpoint)。 ...

May 1, 2020 · 9 min · Tony Bai

可视化Go内存管理

本文翻译自《Visualizing memory management in Golang》。 “内存管理”系列的一部分 在这个由多部分组成的系列文章中,我旨在揭示内存管理背后的概念,并对某些现代编程语言的内存管理机制做更深入的探究。我希望该系列文章可以使您对这些语言在内存管理方面正在发生的事情能有所了解。 ...

March 10, 2020 · 11 min · Tony Bai

Go 1.14中值得关注的几个变化

可能是得益于2020年2月26日Go 1.14的发布,在2020年3月份的TIOBE编程语言排行榜上,Go重新进入TOP 10,而去年同期Go仅排行在第18位。虽然Go语言以及其他主流语言在榜单上的“上蹿下跳”让这个榜单的权威性饱受质疑:),但Go在这样的一个时间节点能进入TOP 10,对于Gopher和Go社区来说,总还是一个不错的结果。并且在一定层度上说明:Go在努力耕耘十年后,已经在世界主流编程语言之林中牢牢占据了自己的一个位置。 ...

March 8, 2020 · 13 min · Tony Bai

Go语言之禅

本文翻译自Go社区知名Gopher和博主Dave Cheney的文章《The Zen of Go》。 本文来自我在GopherCon Israel 2020上的演讲。文章很长:) 如果您希望阅读精简版,请移步到the-zen-of-go.netlify.com。 该演讲视频还未上线。如上线,我会把它更新到本文中的。 ...

February 24, 2020 · 23 min · Tony Bai

TB一周萃选[第4期]

本文是首发于个人微信公众号的文章**“TB一周萃选[第4期]”**的归档。 孩子,我要求你读书用功,不是因为我要你跟别人比成绩,而是因为,我希望你将来会拥有选择的权利,选择有意义、有时间的工作,而不是被迫谋生。当你的工作在你心中有意义,你就有成就感。当你的工作给你时间,不剥夺你的生活,你就有尊严。成就感和尊严,给你快乐。——龙应台 《亲爱的安德烈》 ...

January 6, 2018 · 5 min · Tony Bai

源创会开源访谈:十年成长,Go语言的演化之路

在参加源创会沈阳站分享之前,接受了开源中国社区编辑王练的文字专访,以下是我针对专访稿的内容。 同时该专访稿首发于开源中国开源访谈栏目,大家可以点击这里看到首发原稿。 1、首先请介绍一下自己 大家好!我叫白明(Tony Bai),目前是东软云科技的一名架构师,专职于服务端开发,日常工作主要使用Go语言。我算是国内较早接触Go语言的程序员兼Advocater了,平时在我的博客、微博和微信公众号”iamtonybai”上经常发表一些关于Go语言的文章和Go生态圈内的信息。 在接触Go之前,我主要使用C语言开发电信领域的一些后端服务系统,拥有多年的电信领域产品研发和技术管理经验。我个人比较喜换钻研和分享技术,是《七周七语言》一书的译者之一,并且坚持写技术博客十余年。同时我也算是一个开源爱好者,也在github上分享过自己开发的几个小工具。 目前的主要研究和关注的领域包括:Go、Kubernetes、Docker、区块链和儿童编程教育等。 ...

October 24, 2017 · 10 min · Tony Bai