
文章插图
谷歌前员工 Jake Wilson 认为,比起大家熟悉的 Python,Go 语言其实有很多优良特性,很多时候都可以代替 Python,他已经在很多任务中使用 Go 语言替代了 Python 。那么 Go 语言到底有着什么样的独特魅力?它有哪些胜于 Python 的地方呢?让我们一起来了解一下吧!
2019 年程序员最想学习的编程语言

文章插图
出身名门的 Go 语言对于一门只有十年历史的新语言,Go 的发展势头相当迅猛,容器界的扛把子 Docker 就是用 Go 写的,国内也有不少团队广泛使用 Go 。近日,HackerRank 在社区发起了程序员技能调查,来自 100 多个国家、超过 70000 名开发者参与其中 。调查结果显示,2019 年,程序员最想学习的编程语言 Top 3 分别是 Go、Kotlin 和 Python,其中 Go 以 37.2% 的比例排在首位 。

文章插图
但 Go 要想撼动编程界的常青树 Java 二十多年的地位无疑难度颇大 。据 HackerRank 数据显示,2018 年,Java 在开发者最受欢迎的编程语言排行榜中仍然排名第 2,Python 排名第 4,Go 排名第 13,距离第一名 JavaScript 还有不小的差距 。
但对本文作者 Jack Wilson 来说,Go 语言虽然“年纪尚小”,但已经拥有很多非常优秀的特性 。
Go 语言到底好在哪?在很多任务上,我已经用 Go 语言代替了 Python,举几个例子:
- 处理储存在 S3 上的云端日志
- 在 S3 上的 bucket 和 / 或 region 之间移动 TB 级别大小的文件
- 匹配本地的数据库记录和 S3 上的文件,以保证文件处于同步状态
下面就来介绍一下,针对这种任务为什么可以用 Go 语言来替代 Python 。
拥有编译器很方便
我经常在写 Python 时犯很低级的错误 。我会给变量或函数命错名,或向它们传递错误的参数 。这样的错误用调试工具可以找出一部分,但这种工具一般需要专门设置 。我从来没很方便地配置过 pylint,而且我也不喜欢用那些很重的、配置起来更麻烦的 IDE 。
最惨的情况是,你可能会不小心打错变量名,而这种错误又不太容易发现 。你的脚本可能会跑好几个小时才遇上这个错误,然后一切都崩溃了,你又得从头开始跑这个脚本 。
这种错误大部分都可以靠单元测试检出,但单元测试很少能覆盖 100% 的代码,而且我并不想浪费时间去给一个只用一次的脚本写单元测试 。
而带编译器的语言就可以解决以上所有问题 。编译器可以检测出你犯的所有低级错误 。出于这点原因,我在写长达几百行的代码时,更倾向于使用 Go 这类语言 。
开发速度
然而,需要编译的语言的一个缺点是,一般你的开发速度会下降 。这点在 C/C++ 和 Java 等语言上体现得尤其明显 。
而 Go 是一个非常简单的语言,我发现它的开发速度并没有被拖慢多少 。不要误会,我的意思并不是说它比 Python 还快,而是想说,用 Go 语言没有比 Python 慢很多,一般达到使用 Python 开发速度的 85% 还是没问题的 。
相对于拥有编译器能避免的那些低级错误来说,我认为牺牲 15% 的开发速度还是很值的 。
更好的并行性
你可能已经知道,Go 语言就是为并行而生的 。
- 淘宝品牌库内已存在品牌却找不到是怎么回事?
- 妇科门诊病历书写规范模板电子病历女性 妇科门诊病历书写范文文库
- 和妹子聊天话题库大全软件 女生话题聊天
- su导入jpg材质 su如何添加材质库
- 地下车库旁的房子风水 地下车库车位风水
- 米库 米国内库的
- 教大家苹果手机怎样设置铃声 iphone设置铃声自定义库乐队
- 流年冲开墓库 风水倒冲墓库详解
- 兰溪东风水库钓鱼 王溪东风水库路线
- 优衣库的发热内衣真的会发热吗有人买过没,优衣库的发热内衣有几度
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
