你应该和谷歌一起去吗?

一旦尖端语言正在起飞 - 可能是您下一个项目的主要候选人

2016年充满了惊喜,但在编程世界中,最大的是去的突破。一旦一个小型利基工具,Go正式加入了真正的编程语言的行列,它的陨石升起了Tiobe指数,搜索排名和程序员偏好的复杂汞齐。仍然是Java,C和Python等Stalwart的方式,2016年10月16日达到16日,比前一年的49个点。这是一个巨大的变化,抓住了程序员和项目经理的眼睛。

Go的跳跃可能很大程度上是Docker,一个包管理系统,用于部署到处都是堆叠堆栈的代码。多年来最热门的开发技术的事实是在一个积极的标志中写入语言的可行性。一个更好的人可能是码头是非常坚实的事实,非常成功。这必然会通过显示语言可以支持真实的基础设施来赢得转换。

Go的崛起恰逢C的迅速崩溃。是的,C仍然是Tiobe列表中的第二个,但它损失了由Tiobe复杂度量计算的程序员投资的40%。构建是一种剥离,高效的语言,用于编写低级代码,Go共享许多具有C的功能,包括大部分语法。很难不结论,Go的新发现支持的很大一部分可能由前C程序员迁移到新家。

TIOBE列表不是关于代码或职业广告的行;相反,它试图通过计算Web搜索和其他行为指标来捕获编程世界的脉冲。从Go的大飞跃中很清楚,人们开始谈论去实现现实世界的项目,而不仅仅是从初创公司的次次。他们可能不会构建它们,但他们正在考虑语言。在这里,我们可以看一下去的优缺点,这是一种你最终可以提到你的老板和老板老板的语言,而不是担心看起来像坚果。

去亲:简单

学习的最简单的理由是,走得很简单,相对而言。其设计人员故意限制了语言的范围,并建立了经验丰富的程序员在一个晚上学习的东西。书籍为一些新语言,如苹果的迅速,可能是几百页厚,但去了很多,更薄。

简单性具有副作用。读取其他Go程序员编写的代码更容易,因为它们几乎不可能使用您忘记或从未学习过的功能。团队可以在一起顺利工作,因为没有人可以拔出一个奇怪的功能并将每个人扔掉一条曲线。

去:简单

当然,很高兴在晚上学习语言。但是通过遗漏数十个聪明,现代抽象程序员已经成功使用了它的简单性。大多数推动哈斯克尔或Swift这样的语言背后兴奋的想法都缺失。虽然更容易学习所有这些功能,但它也意味着您无法依赖于具有更复杂语言的许多战斗力。对于复杂性和抽象的情人来说,Go是一步向后到达计算机语言在汇编者顶部的薄贴面时的一步,这是最大的新想法加入的时间其他第四个案if-then.声明。

每个人都有他们最喜欢的功能,没有做出削减。一些想要泛型;有些想要例外;有些人想要更多的可扩展性;有些人想要完全不同的东西。对于这些人来说,Go的编程就像编码,一个手臂绑在背后。

Go Pro:自动化节省时间

Go拥有许多现代发明,如自动的变量声明。这似乎是一件小事,但没有人想输入像这样的信件永远。讨厌讨厌跟踪的每个人都有一个大的胜利Malloc.自由

Go Con:自动化可能是危险的

在编程语言中使用自动化功能的每个人都知道他们带了缺点。可以在错误的时间触发垃圾收集,危及应立即回复的服务器代码。当在嵌套范围中使用相同的变量名称时,自动声明可以获得细节错误。人们开发了腰带和暂停器对数据管理方法而不是所有新的自动化功能都是前进的原因。

Go Pro:没有虚拟机

在过去的几十年里,基于虚拟机的语言都是愤怒。所谓的二进制代码可以在不同的芯片架构之间轻松移动,虚拟机可以在执行一些运行时优化时强制执行某些规则。这些天,很多聪明的想法都被烘焙到最好的VM中。

alas,启动虚拟机需要一点时间,并且去用户不需要担心。Go二进制文件被编译成一个准备(Ahem)Go的一个很好的文件。在命令行中键入可执行文件名,并在返回时运行它。

这并没有单独帮助服务器;在开发期间测试代码也更快地使其更快。Go的调试周期有点更快。

Go的综合二进制文件也降低了部署复杂性。您的Java代码是否已编译为1.7版?祝您在带有Java 1.4的JVM的机器上运行它的良好运气。许多服务器最终为据说“在任何地方运行”的各种jar文件的几个不同的JVM。

go con:没有虚拟机

当然,去有独立的二进制文件,但他们是巨大的。如果您编写“Hello World”示例,它将接近2MB。二进制文件是如此大,因为它需要在虚拟机的大部分电力中滚动。处理垃圾收集的代码需要在某处闲逛。当然,没有VM - 因为它建立在二进制中。

过去一年,去的创作者在1.7版中实现了一个聪明的功能通过剥离未经突出的方法,使二进制文件变小。这是一个欢迎更改,但是当服务器击中数百个版本的代码时,它们仍然开始堵塞RAM。

go pro:go就像c

从C迁移的每个人都认为升级。它拥有所有的低级,近乎金属的感觉,没有任何令人生痛的烦恼。垃圾收集是一个很大的一步,可以为程序员节省足够的时间,并且是更简单的文件结构。其他一切都是相同的。C取得了巨大的成功。为什么打破模具?

go con:go就像c

其他一切都是如此。Java,Rust和Swift就像C,更不用说C#,C ++和Objective-C。他们在引擎盖下也有更有趣的想法。编程语言比使用Crly括号来定义基本代码块,但如果这就是你想要的,那么许多其他解决方案更具功能丰富。

Go Pro:免费语法

许多程序员从node.js迁移到另一个快速的服务器端堆栈。当他们到达时,它们往往高兴地逃离嵌套的回调例程困惑,称呼返回返回其他例程的其他例程ad nusyum。(或真正的广告bugium。)

回调结构对网页上的JavaScript有意义,它有助于使用节点提供服务器端开发的速度。但是,很难保持直,特别是当有三个或四个嵌套级别时。

go con:免费语法

您不需要嵌套方法例程,但您仍然必须考虑以相同的方式编码交互。去有频道,但大部分潜在的方法都是一样的。你只是改变它表达的方式。嵌套像Node.js这样的东西可能有点令人讨厌,但如果你无法处理,你可能不应该试图在第一位置围绕建筑的大脑。

Go Pro:图书馆

Google已经为创建服务器应用程序提供了一些最重要的库。他们是新鲜,准备好了。这应该使最保守的开发店看到一点额外的承诺。

Go Con:库缺乏比较

是的,Go有一些图书馆,但大多数其他编程语言都是轻微的未来。Java是已安装代码的王,带有一个Bazillion开源JARS在互联网上寻找爱情。这不仅仅是Java。任何向JVM编译为运行的语言也可以链接到这些jar。Clojure,Scala,Jruby,Kotlin和数十种其他严重的新语言旨在编译为JVM的字节代码,因此它们也可以使用所有Java库。

很高兴与新的东西合作,但是当老人所建立和强大的事情时,很难选择审判和真实。

去骗局:超越其利基之外的虚假承诺

去的上升令人印象深刻,但它可能不会进一步上升。许多企业宠物,如Objective-C,永不突破他们的公司校园。其他公司不想将未来的项目相信到基本上拥有的语言。谷歌可以轻松改变其思想或移动到另一个更好的版本,也许是Go ++,这不兼容。

虽然去了一个大跳,但这并不意味着它将成为另一个。Java仍然是AP计算机科学的语言。C仍然是Unix的语言。Python仍然更容易解析。PHP不仅没有死亡,而且现在有人弄清楚如何向他们移动即时编译器。哎呀,甚至COBOL仍然沿着它的小利基滚动。这些都没有任何地方,这意味着这一点可能无法殖民域名。直到去找到新的地面,它可能会保持相同。

去亲:它的光明未来

功能和语法很好,但对于许多组织来说,这一切都归结为语言是否有腿。没有使用的资源只是为了找到你的项目注定几年来达到垃圾箱。

虽然没有人可以预测未来,但是有很多理由相信它将存在并蓬勃发展,而这些最大可能是谷歌的支持。这是一个具有美好未来的主导公司,而不是谷歌读者,似乎致力于去。谷歌正在建立自主车和其他花哨的东西 - 未来本身,有些人可能会想到。当然,GO代码将是伟大的和支持的,而GO技能将保持需求。

你的杯子半满或半空吗?它的利基舒适或忘记吗?语言是一种不可抗拒的升级还是可爱的黑客?只有你可以决定。

相关文章

这个故事,“你应该去谷歌的去吗?”最初是发表的infoworld.

加入网络世界社区有个足球雷竞技appFacebook.linkedin评论是最重要的主题。
有关:

版权所有©2016.Raybet2

IT薪水调查:结果是