不知道作为web前端工程师的大家有没有相似的经历:很多时候我们想深入学习node,立志向web全栈方向发展,但是却十分遗憾的发现很多node教程基本都是helloworld级别的。如果真想搞后端开发,node还是不稳定,于是乎我们有了想接触更多后端语言的想法。

那么node之外还想掌握一门后端语言,Java、Python、Go 哪个适合web前端工程师呢?关于这个问题,我来说说自己的一点看法:

首先来说一下Java

如果只是以进阶学习为目的,建议大家考虑下Java。毕竟node是脚本弱类型语言,学习编译型或者强类型语言可以体会另一面的开发思路。在编程的学习过程中,思维方式很重要,其次是对比思考不同类型的语言适用的场景。而且Java侧重工程化,能更好理解大项目开发管理思路。对比NodeJs大多数复杂的冗余设计都是在考虑,或者当年的场景下考虑,大型项目开发。基本上明白Java比NodeJs复杂的原因,就语言设计的历史和工程管理有所顿悟了

接下来说下Python

Python最大的特点就是简单易学,对新手十分友好,而且Python在运维类脚本工具开发和爬虫等领域应用十分广泛,像这两年比较火的AI和NLP等,很多也是基于Python的。单纯从语言角度来说Python写起来要比Javascript舒服很多。Javascript设计本身有许多缺陷,毕竟当时设计的时候只是作为在浏览器中做一些简单任务的script,所以代码一旦庞大,维护还是有困难。

最后说下Go语言

Go语言可以满足我们对编程语言诸如语法简单、多线程等所有幻想。在语言特性不是很熟悉的情况下,我们甚至仅仅用一个周末的时间,就可以用Go语言完成一个CRUD应用。敲业务代码实现起来特别简单,没考虑过死锁的问题,因为框架层面就帮你解决了。而且全部是同步代码,不用再去await了。目前比较坑爹的是Go的包管理不够好,以及各种开源库存在不靠谱的情况。可能用着用着就panic了。不过相信随着Go 2.0的问世,有了泛型以及新的错误处理机制,Go的库也会越来越完善。可以说,Go语言是未来,在web开发领域也会逐步提升份额。现在大部分是用Go做中间件开发,但是也有大厂用来做crud业务了。所以现在开始学习掌握Go语言是一个非常好的选择。