为什么要在2020年学习Go

为什么要在2020年学习Go

随着新的一年即将来临,我们都对2020年会带来些什么感到疑惑。与每年一样,看看那里有什么技术以及学习什么会很有趣。
但是在如此广阔的技术海洋中,您如何选择下一步要学习的内容?您需要了解Rust,Nim,Go或Kotlin吗?
在过去的几年中,我真的很喜欢Go,并且几乎每天都在使用它。无论是在工作中,对于开源项目,还是在诸如workwithgo.com之类的副项目中。
但是,为什么明年要学习Go?好吧,这是我认为将其捡起的一个好主意的一些原因。
Go用途广泛
几乎无论您对编程的兴趣在哪里,Go中都有一种方法可以做到这一点。就个人而言,我喜欢在学习语言时深入研究项目,并且理想情况下该项目很有用。另外,我经常听到Go是一种“发展”语言。因此,让我们消除这个神话。(不过,它在DevOps中也确实很棒!)????
因此,如果您想知道可以在哪里使用Go或需要一些启发来构建内容。
Web后端
Go可以作为一种后端语言正常工作,在传统上您可能会看到Python(Django),RoR,Java等。事实上,Go具有一些非常强大的工具来执行此操作。
Json / XML封送处理和解封送处理已内置在该语言中,并且从零开始。启动http服务器只是几行代码,处理请求很容易。没有框架,所有这些都可以完美完成。(如前所述,workwithgo.com在Go后端上运行,到目前为止,除了数据库驱动程序之外,我还没有使用外部库)。
稍后可能需要一些框架,例如buffalo,但完全不需要开始。
CLI工具
Go的命令行工具非常简洁,标准库足以开始创建CLI工具。考虑到默认情况下Go并没有前端部分,因此您可以立即创建CLI工具。
微控制器
Go在微控制器上运行!好吧,理想情况下,您将使用TinyGo,但它仍然是Go。Go真的很有趣。当您看到代码实际在您面前移动了东西时,这只是开发的一个不错的反馈循环。只要它不会将您的无人机飞入墙壁。
如果您想了解更多有关此的内容,建议您在gopherconUK上观看Gergely Brautigam的演讲。如果您还没有无人机,那么入门的成本会更高一些。但是您可以获得相对便宜的微控制器以开始入侵。
也许您仍在及时编程自己的圣诞节LED?????
网络组装
Go是可以使用默认工具链编译为Web程序集的几种语言之一。您也可以为此使用TinyGo,但不必这样做。
因此,如果您想探索一种新的语言和新的目标平台,Go也在这里提供了介绍。在github上有一个教程,您可以按照该教程领略WASM。我已经玩了一点,它很漂亮—尽管仍然涉及一些Javascript。它正在进行中,但这更多是关于WASM而不是关于Go????
云功能/ AWS Lambda
Google Cloud Platform和AWS Lambda都支持运行Go代码。(我想GCP并不应该让我感到意外)。如果您已经在云中运行了一些代码,则可以开始使用小型Go程序,而通常会选择使用这些程序,例如Python。
这样做的好处是代码被很好地包含并且不需要对现有系统进行大修。您可以使用简单的lambda /功能测试水。
随时随地使用Python
这实际上是来自Ignat Korchagin在gophercon上的演讲“ Linux中的脚本编写语言”引用。Go感觉就像是一种脚本语言,可以毫无麻烦地使用。无论如何,就是当您要构建可用作* Nix程序的小型Go程序时。
如果您想使用shebang行将Go代码作为实际脚本运行,则难度会稍高一些。Ignat谈论他们如何在CloudFlare上解决此问题绝对是一件很棒的事,而且大约只有20分钟。我向当前使用大量python脚本的任何人推荐此方法。
围棋在成长
如果您看了这么多,您就会知道Go可以在很多情况下使用。但是,Go在这方面并不是唯一的。那为什么要拿起Go?
Go是一种增长中的语言,因此学习它可能会在将来为您提供工作机会。一些相当大的公司已经采用了Go,例如Uber,Twitter,Netflix,美国运通。
他们有将近200万(估计)的用户,因此学习Go时您不会孤单。如果您想与我们互动,也许要加入地鼠。这是一个友好且不断发展的社区,目前约有50.000人。

根据* 2019调查,开发人员最想要的5种语言包括Go。

为什么要在2020年学习Go

此外,Go的付款也非常出色。在全球排名第二。与F#共享的头寸。

为什么要在2020年学习Go

这也只是使它进入前10名最喜欢的语言在2019年的*,在第9位之中,略高于C#。

为什么要在2020年学习Go

GO很有趣
是的,这完全是主观的,但是Go绝对会让我开心。通常,每年我参加代码出现时都会使用多种语言。但是今年,就只剩下Go了(还有一点点Haskell,因为我也很喜欢)。

判断Go娱乐是否有趣的最佳方法就是开始使用Go进行编程!