社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
本文转载自公众号“读芯术”(ID:AI_Discovery)
很多软件工程师视Python为比较喜爱的语言之一,工作生活都和它死死绑定在一起。但Google, Uber, Dropbox, Soundcloud, Slack, 和Medium的软件工程师并不是这样。长期以来,优秀企业的程序员们一直迷恋于另一种语言。
尽管大部分开发者还在使用Python,但无论是对于API、网页服务,或是数据处理,高级员工都已经增加了对于Golang(Go)的使用,它的表现棒极了!
由先驱建立
Go是由谷歌的一个全明星三人组发明的:
谷歌最初正是用Python编写的,但是在2007年前后,工程师们正在寻找一种更好的语言来执行谷歌的主要任务。
Rob Pike在2012年的一次篇演讲中提到了他们遇到的问题:
于是三人组开始设计一种干净、简单、易读的语言。一种可以消除或至少减轻软件工程中这些常见问题的语言。
一门精简的语言
这些常见问题的根源在于现代语言的复杂性。想想Python或C——你有没有试着阅读过整个文档?祝你好运。相比之下,Go比较大的特点就是简单。这并不意味着你不能用它来构建复杂的代码。但Go考虑到了,不要有引入复杂性却不能解决问题的特性。
例如,Go不像其他面向对象语言那样有类。作为其他语言中常用功能,类可以使一个对象继承另一个对象的属性。
问题是,如果试图改变一个对象的结构而不改变其他对象的结构,就会破坏代码。Go有一个被称为struct替代方法,其更偏向组合而不是继承。
Go的其他主要特征是:
或许这些听起来毫无创意,从某种意义上说,确实如此,这不是一种带有时髦特征的语言,Go不是一种用来探索和研究的语言。
但神奇之处正在于此,当你尝试着去创造一些能运行的东西的时候,当你在一个团队中,有许多不同背景的人在同一个代码上工作的时候,当你厌倦了其他语言带来的混乱的时候,Go能救你于水火。
日益繁荣的社区
由于其简单性,Go是当今存在的很具协作性的语言之一。过去程序员们总是坐在自己的小隔间里,从不与别人见面,这样的时代已经一去不复返了。
现在,我们有StackExchange来解决所有的编码问题。我们有Slack,Zoom,Google Meet等来和我们的团队保持联系。但现代语言仍然是为小隔间里的小书呆子量身定做的。
Go改变了这种局面。尽管比Python晚了20岁,但它拥有一个充满活力的社区。他们将尊重、开放和友好置于行为准则之上,虽然其他语言,如Python或C,也有类似的社区声明,但对这些基本价值观的强调较少。
因此,社区在Go年度调查中扮演着明确的角色也就不足为奇了
有关社区和领导力的问题 | 图源:2019
数据不言自明
根据2019 Go Survey,谷歌的语言主要用于网站开发、网络和系统编程。Python的前景看起来与之非常相似:
Python的使用数据 | 图源:2019 Python
唯一显著的区别是有多少Python用于数据分析和机器学习。在这些领域,其他热门的新语言也正在涌现。
你可以看到许多Python的用法都可能被Go所取代,包括46%的网络开发46%,37%的系统管理和DevOps中,以及19%的网络编程中。即使你认为许多开发人员完成了所有这三种工作,至少一半的Python支持者正在做他们在Go中可以做的事情。
事实上,开发人员已经意识到Go提供的巨大潜力。根据Hackerrank的数据,在2019年,大约有三分之一的程序员想学Go。
接下来的热门语言 | 图源:Hackerrank.
由于Go非常容易学习,我们应该会在未来几年看到从Python到Go的转变。虽然对于大多数公司,尤其是不像Dropbox或Medium那样庞大有钱的公司来说,把所有的代码重写用Go编写将是非常昂贵的。但对于新项目来说,你至少应该尝试一下。
给彼此一个机会,给未来一个可能,何不去试试Go呢?
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!