首先,我们要知道,为什么人们会问这样的问题?
一般问这样的问题是人大多是学生,他们想知道这个问题的答案是因为他们想要找份工作,所以寻求一种可以增加面试成功率的技能。对于大多数人来说,
进入一个新的领域时了解什么是最流行的,是很有意义的。而对于其他人来说,
比如说已经掌握了一种或几种编程语言的程序员,他可能在想要掌握一门新的编
程语言时,会考虑一下当前最流行的编程语言作为参考。而对于要开发一个产品
的程序员来说,也希望了解当前最流行的编程语言是因为他们希望所开发的产品
能够迎合客户的环境和需求,显然支持流行的语言的API会被更多人使用。甚
至,就算是你想启动一个项目时,你也需要考虑是否选择一个流行的编程语言。
虽然你首先要考虑的是这种语言能够满足你的需求,比如说如果用一个流行的编
程语言你需要花费更多的时间和成本,而不那么流行的编程语言或许会更快捷和
轻松,显然你还是会选择那个不太流行的——但是如果各个方面都差不多,不
用说你会选择流行的那个,因为这样你可以找到更多的程序员,遇到问题也有更
多的解决方案。
怎么才算是流行?
那么,哪个语言是最流行的?其实回答这个问题并没有你想象的那么简单。
关键是,你该怎么定义这个“流行”?
这个问题并没有固定的答案,不过在维基上有一篇文章提到了如何测量编程
语言的流行度。在这篇文章中,列出了几个测量流行度的因素:1、该语言在搜
索中提及的次数,比如在谷歌趋势中;2、在招聘广告中提及该语言的次数;3、
传授和介绍该语言的书籍销售量;4、以该语言编写的现存代码的行数,不流行
的语言在公开搜索中可能根本就找不到;5、在GitHub、Freecode上使用该语言的项目数量;6、在论坛和新闻组中讨论该语言的帖子数量。
此外,你还可以考量如下指标:1、编程培训班里面该语言的培训课程销售
数量;2、编程培训班里面学生的数量;3、视频网站里面关于该语言的视频数量;4、StackOverflow和Reddit里面关于该语言的帖子数量。甚至,你还可以增加一些其它的统计维度,比如根据国家和城市来统计,你知道在北京哪种编程语言最流行么?上海呢?所以,这个问题的回答并不是一个简单的答案。
统计数据来源的不同
即使我们知道了流行度取决于多种因素,但是人们还是希望能够了解到底哪
个语言比较流行,以此来指导他们的培训和公司的决策。
有一些网站依据不同的标准,公开发布了一些语言流行度指标。IEEESpectrum对这些指标做了一个有趣的整合,它可以让你通过自行设置不同因子的权重来得到你自己的编程语言流行度排行榜。CodingDojo也有一个图表,聚合了工作搜索引擎Indeed.com的数据;而有名的Tiobe排行榜一直使用搜索引擎聚合来计算流行度;PyPl则是根据谷歌来查看语言的流行度。
然而,这并没什么大用。如果你想知道你该学习那种语言,或者是你需要支
持的语言.
这些语言分成了三大类。第一梯队包括Java、C、Python和C++,毫无疑问,你肯定经常听到它们的名字。第二梯队包括JavaScript、C#、PHP和Swift。剩下的两个是Objective-C和R。
第一梯队的语言Java、C、Python和C++都是非常通用的语言,它们并不局限于特定的编程平台或用途。
最值得关注的是第二梯队,它包括JavaScript、C#、PHP和Swift。JavaScript和PHP是主要的Web开发语言。C#是微软的编程语言,而Swift是苹果新推出的主力语言。基本上来说,第二梯队是平台相关的。
那么这反映了什么?如果你懂一点现代编程,你就知道编程其实不仅仅是使
用这种语言,而更重要的是开发一些什么,比如说嵌入式系统、iPhone应用、Web应用或者微软的服务器端应用等等。
对语言的熟悉程度其实只是一小部分。举个例子说,不管你是多么的喜欢Python或者古老而常青的C,但如果你要为WordPress开发插件或主题,你只能使用JavaScript和PHP。这无关于哪个语言更流行。
首先,CodingDojo的编程语言排行榜的第一名是SQL,只有它一家是这样。你很少会单独在SQL里面编程,通常都是在其它的语言里面使用它来管理数据。所以,学会SQL是很有用的,甚至是必要的。然而,去上一门SQL的培训课程并不能帮你找到一份工作,也不会多挣多少钱。
其次,苹果特有的语言在排行榜中排名很低,这或许和你的预期不同,因为
iOS的应用是如此的流行。不过确实是这样的,如果你不是要开发你自己的应用的话,那学它们其实不如学习别的语言,因为其实没有那么多的公司雇佣苹果应用开发人员。这就是Swift语言掉到了榜尾的原因,而Objective-C正在被Swift所替代,在前面也看到了它也处于榜单的后面。
C家族的语言仍然是主流。Java、C++、C、C#,甚至Objective-C都是基于C的语言。如果你只想学一门语言,你可以从其中选择一个。我推荐你选择Java或C++,它们可以为你打开进入C语言家族的大门。
以我的职业生涯的经验来看,不是特别复杂的场景的话,我大概能用20来
种语言来编程,通常我只用几天就可以学会一门新的语言。这是因为我在学校的
专业就是语言设计,我也教编程超过了20年了。掌握这么多的语言对我很有帮助,因为我总是根据我要做的事情选择一种语言,而不是专门去上课学习一种语言。这听起来好像有点难,但是其实你也能做到的。
我的建议就是,如果你要编程,那么就去学习多种编程语言和各种框架吧。用编程语言去做点东西出来,编程不仅仅是一种智力锻炼,而且你可以实际用它
做点什么出来。
掌握多种语言和框架是重要的,因为计算机行业变得太快了。C语言依然历久弥新,而Swift虽然出现才几年就登上了排行榜。你今天学习到的或许不够你整个职业生涯挥霍,所以“怎样学习语言”要比“学习语言”更重要,的办法就是多学几门。
我的推荐非常简单,无论是C++还是Java,选一个学习就好了。然后是
JavaScript,越来越多的基于Web的应用需要良好的JavaScript技能。再然后是PHP、Swift或Python中选一个,这要看你的工作种类了。当你在这三个梯队中都学会一门后,你就可以根据你的情况学习更多的语言和框架了。