协作翻译|任何人都可以学的Go语言
Matt Aimonetti@Splice的联合创始人兼首席技术官- 作者,演讲者,技术专家
Go是由Google创建的现代编程语言。 它被设计为非常合理(读起来不花哨),简单而且快速的编程语言。 由于友好性,易用性,可扩展性,高性能和并发方式,因此它很快成为重要的新的编程语言之一。 这是现代系统解决方案(Docker, Kubernetes, CoreOS, Hashicorp ...)的常见语言,许多小型和大型初创公司都使用了一些他们的网络API和许多其他的东西。 但是这篇文章并不是关于Go是多么伟大的,而是关于让那些几乎没有经验或经验很少的开发者更容易接近Go语言。
Go社区感觉遥不可及
Go是由一群非常有经验的人在一个非常成熟的科技公司(Google)的背景下编写的。 因此,早期的社区反映了它的创作者。 大多数是有经验的开发人员,计算机科学专注于对具体的技术问题感兴趣。 与许多其他编程社区相比,我们的社区有时会感到更枯燥,因为我们专注于低级别的细节和工具,而不是专注于为新来者开辟道路。
我们希望Go语言能更方便
作为科技创业园区的首席技术官和联合创始人,我在 Go 语言项目上下了很多赌注。它一直为我们服务,说实话,我爱我们的社区。但我也听到过很多次,Go 是一种先进语言,只为有经验的开发人员使用。或者说 Go 语言社区里都是专家,使新的开发人员很难“与其磨合”。所有的社区都需要注入新鲜的血液,他们会挑战“保守”,推动新思想,成为明天的领导者。如果没有新的成员,社区会逐渐老化,最终消失。我们需要接受新用户,但我们也要确保不要让缺乏经验的开发者和我们没有想到的小事情使社区逐渐枯燥,失去活力。
Go不是为我准备的,我刚刚开始学习如何编写代码
这听说过很多这样的事情。您有一个刚刚开始发现精彩编程世界的新开发人员,他们被告知应该从JavaScript(JS),Ruby或Python开始,因为Go等其他语言对于他们来说太复杂,新手不能也不应该尝试学习“先进”语言。
我实在不敢苟同。当然,使用这些语言,您将可以更快地获得第一个可以运行的代码体验,但是您也可能会很快挣扎于其他事情,例如语法和其他仅在代码运行时报告的错误。你会发现被认为很奇怪的行为,因为你不了解它们。我之前写过,对我来说,这类似于得到一个不好的条款的信用额度。我确实认为JS,Ruby,Python等是伟大的语言并且应该学习,但我认为很多开发人员(可能不是全部)都将从先学习Go而获益匪浅。
Go本身不是革命性的;它确实有一些比较独特的范式,但其语法和概念与大多数编程语言非常相似。事实上,如果你相当了解Go,那么你可以很快地学习Ruby,Java,Python,JS,C#,因为你已经有了所有核心概念的心智图。因为Go是一种小语言(语言本身具有有限的功能),大多数这些其他语言具有与Go类似的编程概念(除了并发性),但在上面添加了一些额外的层。因此,可以轻易地认为学习Go更容易,可以作为探索其他语言的基础。 Go不是所有问题的解决方案,许多开发人员学习Go将最终倾向于转向前端语言,如JS / TypeScript,有些人更喜欢更经典的面向对象方法,有些人会希望在类型语言上有更多的灵活性,有些将不会有所选择,并将编写他们工作中使用的编程语言。这是完全正常的!但是学习Go,你可以有一个坚实的基础,然后你可以转向其他你可能会更喜欢或更好地适应你的需要的语言。
对于初学者来说没有足够的内容
这让我很伤心,但它是真的:我们对于真正的初学者几乎没有什么内容。 由于我们的社区由具有经验丰富的开发人员启动,我们为现有开发人员创建了大量内容,而不是为新手。 另一方面,像Ruby和JS这样的社区比较大,总是有大量的全新开发人员被快速创建Web应用程序的承诺吸引而蜂拥而来(代价是学习基本原理,迟早会回来咬你一口)。
Swift作为Objective-C的替代品,但苹果和社区在吸引新的开发人员方面做出了惊人的工作。 由于苹果通常有动力尽快建立一些有形的东西并且苹果真的希望在他们的平台上创造本地应用程序,从而让苹果很容易捕获新的开发人员。
提高教学材料和新用户体验
我看不出有任何理由,我们为什么不能做到这一点,更好地教授基础知识,分享知识和欢迎新的开发人员。 毕竟,我们吹嘘我们的语言很简单; 是时候向新的开发人员表明,尽早投资Go是他们的正确选择。 我们来解决文档中的差距,并使入门变得令人兴奋。
好消息是,我们都是从新手开始并且都学到了一些东西。 如果你学到了一些东西,你应该可以简单的解释一下它。 开始撰写小型博客文章,或者就基本的Go概念进行本地讲座。 也许可以解释如何使用printf函数,如何在程序包中组织代码,或显示如何使用godoc或您最喜爱的集成开发环境(IDE)的功能。 我们的语言很简单,新开发人员面临的问题是有限的; 让我们确保为新Gophers寻求知识创造出令人敬畏的内容!
下个月在圣莫妮卡,有一个关于培训新的开发人员和我们该怎么改善 Go 语言的见面会。如果那时你在洛杉矶地区,就来加入我们吧!