最近和朋友谈及工作,疫情这两年苦不堪言,很多企业受影响;JavaScript后端从业4年+,现在公司裁员可能会有他,感叹JavaScript后端太小众,在广州也难上10K......学Go吧!
Golang 简介
Golang 诞生于互联网巨头 Google,而这并不是一个巧合。我们都知道,Google 有一个 20% 做业余项目(Side Project)的企业文化,允许工程师们能够在轻松的环境下创造一些具有颠覆性创新的产品。而 Golang 也正是在这 20% 时间中不断孵化出来。Go语言的创始者也是 IT 界内大名鼎鼎的行业领袖,包括 Unix 核心团队成员 Rob Pike、C 语言作者 Ken Thompson、V8引擎核心贡献者 Robert Griesemer。Go语言被大众所熟知还是源于容器技术 Docker 在 2014 年被开源后的爆发式发展。之后,Go语言因为其简单的语法以及迅猛的编译速度受到大量开发者的追捧,也诞生了很多优秀的项目,例如 Kubernetes。
Go语言相对于其他传统热门编程语言来说,有很多优点,特别是其高效编译速度和天然并发特性,让其成为快速开发分布式应用的首选语言。Go语言是静态类型语言,也就是说 Go语言跟 Java、C# 一样需要编译,而且有完备的类型系统,可以有效减少因类型不一致导致的代码质量问题。因此,Go语言非常适合构建对稳定性和灵活性均有要求的大型 IT 系统,这也是很多大型互联网公司用 Golang 重构老代码的重要原因:传统的静态 OOP 语言(例如 Java、C#)稳定性高但缺乏灵活性;而动态语言(例如 PHP、Python、Ruby、Node.js)灵活性强但缺乏稳定性。因此,“熊掌和鱼兼得” 的 Golang,受到开发者们的追捧是自然而然的事情,毕竟,“天下苦 Java/PHP/Python/Ruby 们久矣“。
不过,Go语言并不是没有缺点。用辩证法的思维方式可以推测,Golang 的一些突出特性将成为它的双刃剑。例如,Golang 语法简单的优势特点将限制它处理复杂问题的能力。尤其是 Go语言缺乏泛型(Generics)的问题,导致它构建通用框架的复杂度大增。虽然这个突出问题在 2.0 版本很可能会有效解决,但这也反映出来明星编程语言也会有缺点。当然,Go的缺点还不止于此,Go语言使用者还会吐槽其啰嗦的错误处理方式(Error Handling)、缺少严格约束的鸭子类型(Duck Typing)、日期格式问题等。
JavaScript、Python和Go
通过观察每种编程语言的排名,我们可以看到Go的人气正在显著提高,而JavaScript和Python的人气却在下降。
为什么选择Python?
Python是一种高级的动态类型编程语言,在IT行业已经流行数年。许多调查结果显示,Python可以被称为是过去十年中最流行的语言。
Python的优点
· 它有一个庞大的社区。当遇到困难时,总会有人来帮忙。
· 使用Python,可以用更少的代码行在更短的时间内解决复杂的问题。
· Python通过简单而强大的语法使许多复杂的事情变得非常简单。
· 它是一种高级语言,因此不必像使用C++那样担心诸如内存管理之类的复杂任务。
· 它是跨平台的,你可以在Windows、Mac和Linux上构建和运行Python应用程序。
· 它有大量的库、框架和工具。这意味着无论你想做什么,其他人以前很可能已经做过,因为Python已经存在20多年了。
简言之,Python是一种多用途语言,其语法简单、简洁、对初学者友好。从技术上讲,你用Python做的每件事,也可以用其他编程语言来做。Python的简洁和优雅让它比其他语言发展更快,这就是它成为雇主首选语言的原因。
不论你是程序员还是初学者,学习Python会给你带来很多工作机会。
为什么选择JavaScript(Node.js)?
众所周知,Node.js在IT行业的后端开发领域非常流行,其中一个主要原因是Node.js基于JavaScript。如果你是JavaScript开发人员,那么你可以轻松地成为全栈开发人员,这是JavaScript的另一个优势。
JavaScript和Node.js
· 前端和后端使用同一种语言编写。
· Uber、LinkedIn、Netflix和Facebook等大公司都在使用它。
· 它是跨平台的。这意味着您可以在Windows, Mac, and Linux上构建并运行Node.js应用程序。
· 它是非阻塞的,这意味着Node.js真的很快。读写非阻塞文件是服务器需要做的事情之一,但Node.js也可能做该工作。
· 它有一个庞大的社区。Gitter 、Slack channels和Stack Overflow discussions等。
· 它不是一个臃肿的框架。这意味着它是一种web服务器技术,可以用于Node.js的不同框架,比如Express。
Node.js也将是一个很好的JavaScript环境,可用于后端开发。
为什么选择Go?
Go是一种开源编程语言,它使构建简单、可靠和高效的软件变得容易。它于2009年发布,起初它的人气不如Python和JavaScript。但如今,Go已经两次被评为年度编程语言,Go已经成为67.9%开发者最喜爱的编程语言。显然,开发者开始喜欢Go是有原因的。
Go的优点
· Go也是一种跨平台的语言。
· 它非常高效。因为Go是一种C类的语言,所以不需要知道新的语法。
· Go不经常更新。更新也少有重大的变化,而且Go与旧版本100%兼容。
· Go现在是一种成熟的语言,有一个内置的包管理器测试框架和一个并发模型。
· 它是一种简单的语言,只有25个关键字和较少的数据结构(没有类,只有函数和类型)。
· 它是一种可靠的语言。默认情况下,它支持并发,有一个漂亮的模型,还可以处理可用于生产环境的服务器。
很多程序员都将C语言作为他们的学习的第一种编程语言。如果你也是这样开始的,那么学习和使用Go对你来说毫不费力。
如你所见,Go在过去的几年里做得很好,与JavaScript和Python相比,Go的用户数量也相当可观。在接下来的几个月里,它的人气和资源肯定会增加。