很多文章都在疯传"Python超过Java成为第一的编程语言",这样的信息导致很多人转头学习Python,或者都想了解一下Java,那么事情的真实情况究竟如何呢?我们今天就来聊一下这个话题。说到编程语言排行榜,我们可以用百度来搜一下,你会得到这样的结果。 图片源自网络,仅做配文展示 我们能够看出,TIOBE给出的排行榜是具有权威性质的,是判断语言流行趋势的指标。而TIOBE的编程语言排行又是怎么样的呢?TIOBE排行榜的网址是:https://tiobe.com/tiobe-index/ 进入这个页面我们能够看到这样的信息。 图片源自网络,仅做配文展示 这是2019年8月的世界编程语言排行榜,我们可以看到Java依然保持着第一,Python的增幅很快,但是并没有像现在各个运营号疯传的那样,很多的公众号为了博人眼球吸引流量所以人云亦云的传播了很多不符合实际的内容。我们并不否认Python的成长,但是我们需要冷静正确的看待。那么今天我们就来一起分析一下这个编程语言排行榜吧~ 我们可以清楚的看到,Java依然居于榜首。在实际中,现在绝大多数的公司都在使用Java作为后端的编程语言,Java语言的特点是结构非常规范,非常适合大规模的集成开发,也非常适合平台开发。 这是Java的一个巨大的优势。我们先暂且不太多的说Java,我们先看一下其他的语言,Java放在后面来说。 我们可以在榜中看到,C语言的比例是15.154%,C++的比例是6.057%。 大家要注意,C和C++的近亲关系在很多的时候,我们可以认为这两个放在一起是一种语言,所以C语言势力的真正占比应该是超过21%的存在,应该稳居榜首的。 在TIOBE将C和C++分开,是因为毕竟C和C++有一点不同,为了严谨,所以认为是两种不同的语言。但是这两种语言的近亲程度简直就是亲兄弟。所以C的世界依然是巨大的。而且C语言的应用范围是其它语言目前无法抢夺的。 现在依然流行的编程语言里,Python是比较老的编程语言了。Python之前虽然没有现在这么的火热,但是也一直都是很流行的编程语言。我们今天就来分析一下,为什么现在Python这么火。 1. 互联网创业热潮: Python经过多年的积累,有着非常丰富的类库,Python的语言非常的自由灵活。写过Python和Java的人都会感叹,Python真的太容易了,写Python真的太轻松了。Java得写上百行的代码,Python只需要十多行就搞定了。 所以对于创业公司来说,Python简直是不二之选,开发速度快,效率高。对于创业公司来说,效率简直就是命。随着互联网的创业热潮,所以创业热潮成为了Python的第一波助推剂。但是创业公司在成型之后,都会面临语言转型。转到C或者Java或者其它。因为Python的性能是比较差的,是无法和Java与C相比的。 2. 人工智能兴起: 这一两年人工智能兴起,人工智能的应用忽然遍地都是,2017年被称为人工智能应用的元年。那么人工智能的兴起和Python有什么关系呢?难道Python是为人工智能而生的? 其实主要原因还是因为Python有丰富的类库,NumPy的存在奠定了Python在人工智能领域的基础。对于机器学习的Scikit-learn,还有深度学习相关的类库(TensorFlow,Pytorch,Chainer,Apache MXNet, Theano等)。 有着这些类库,可以让人工智能的开发者非常轻松的进行开发。本身Python就号称是能够执行的伪代码,加上如此强大的类库,所以Python成为了人工智能方向最亮的"仔"。但是Python的老毛病也在逐渐显现,就是Python的性能比较差。所以人工智能方向Python并不是一家独大的。 3. 盲目涌入的人群: 这两年在捧Python的文章特别的多,这些文章的目的其实只有一个,就是为了流量。捧Python和谈论"谁才是最好的语言"是一样幼稚的。因为不同的语言有着不同的应用场景,不同的语言在其所在的领域几乎都是无法撼动的。所以实际上公司采用什么语言,还是要取决于语言的特定,是否有开源的社区和支持等。 最后我们冷静的看一下Python,先除去盲目涌入的人群。剩下两个方向,一个是人工智能方向,一个是初创型企业。人工智能可不是我们写很多的if-else就能实现的,人工智能的方向对数学和算法的要求是非常高的,一般算法工程师的招聘要求都是研究生起步的。 所以对于互联网行业初入的小白来说,如果数学功底不好的话,是非常不建议走这个方向的。初创型企业很多是需要Python的,但是往往在发展壮大了之后都会转型(当然也存在尾大不掉的情况),所以进入这样的公司还是需要考虑一下的。 PHP早年间是非常火热的,当时的情况非常像现在的Python,几乎人人都想去学PHP,但是人多了之后,企业方就有了很大的筛选余地,这时候企业就变得挑剔了,PHP的招聘要求也变高了,很多人觉得找不到工作,觉得PHP凉了,就又要转语言找其它的工作。 其实不是语言凉了,而是人多了,自然就会有很多人被挤出去。其实劝告新人一句,每种语言都有适合的场景,想要一份比较好的收入的工作,唯一的方法是提高自己的技能,而不是选择语言。 PHP的快速建站的能力,在所有的编程语言中是数一数二的,在Web开发方面,就算不说是最好的语言,也是非常不错的语言了。 JavaScript随着互联网的发展一路高歌猛进,因为语言的特性和环境的支持,使得JS在前端开发领域长期没有什么有力的竞争者,所以发展的十分迅速,只是近两年,移动端的普及,JS的性能上受到了一些诟病,但是JS依然在多方的完善之下,依然坐稳前端开发的市场,甚至正在逐步的走向整个客户端开发的领域。 JS:Python~听说你最近很火,来做个页面和我比比? 使用数据库相关的产品的时候,SQL是我们离不开的脚本语言。 SQL有着自己的语法,而且目标非常的专一,就是查询数据库。而且各个数据库的厂商又非常的惯着SQL,只承认这一个亲儿子语言。(因为SQL做查询确实合适。)所以无论是学什么后端的语言,都需要学习SQL。 C#和Java是同一个时代出现的语言,但是中间的一段时间,C#并不开源,致使开源社区等众多的开发者倒向了Java。 虽然语法,性能和Java很相近,但是这两兄弟的路走的并不一样。C#在客户端开发的领域依然有着不错的优势。 几乎每个开发IOS的人都要学习Objective-C,随着IPhone的畅销,Objective-C的热度也随之上升,这个语言所在的范畴其它语言几乎很难进入。 上面说了这么多的语言,其实对于小白来说,很多的语言是家族式的。就像C/C++本就是孪生兄弟,在计算市场的时候应该加在一起。还有就是Java家族,Java家族除了Java这个大哥哥之外还有Scala,Kotlin,Clojure等,其中Scala在大数据的方面依然非常的热门。 我们之前只说了Python在人工智能方向上的强势,其实Java在人工智能方向也不弱,现在的很多大公司也都在使用Java来进行开发。在自然语言处理上的CoreNLO,张量操作的ND4J,还有GPU加速深度学习堆栈DL4J。而且Java的语言可以轻松的使用Spark和Hadoop等大数据平台。而且Java9在语法上做了很多的改进,让Java的编写不再那么冗杂,这些方面都是Java在当前环境下做个改变。因为人工智能是基于大数据的,所以Java在这个方面天然就带有一定的优势。 写在最后: 最后的总结,没有最好的语言,热门也只是一时的。最重要的是,选好一个你喜欢并且适合的行业,然后好好钻研。实力强的人从来不愁找工作,只学表面的人因为找不到工作才会总想换语言。 ps:很多大公司在招人的时候,其实是允许人进来之后再转语言的。比如今日某条,也招Java方向的人,应聘成功后也会询问是否愿意转为Python。在比如某滴打车,是使用Go语言的,但是市场上哪有那么多优秀的使用Go的人呢?都是招聘其它语言方向的人,然后转语言方向的。当你了解底层,了解原理之后,语言只是一种表象,语言之间的转化没有什么难的。 就像你穿了不同的衣服,但是你依旧是你。