21年年末,Python再次摘得了年度编程语言宝座,可以说是“民推之光”语言了。就在今天,TIOBE2月编程语言又出炉了,各大编程语言排行又有什么变化呢?
本次的TIOBE榜单跟以往有些不同,原因是去年12月,作为TIOBE重要排名指数来源的Alexa网络流量排名引擎停服,TIOBE也就更换成了Similarweb。
不过更换之后,TIOBE的榜单排名数据变化并不是很大,前三名的编程语言依次仍旧是:Python、C和Java。
三者的增长指数都上涨了1%,但Python已经遥遥领先排名在第二的C,从去年年末开始的大热趋势,现在看来还要持续一段时间。
No.1
TIOBE编程社区指数榜单经常出现在各类编程社区中,但是很多人其实并不清楚它的具体排榜方式。
其实TIOBE是编程语言流行度的指标,评级基于全球熟练工程师、课程和第三方供应商的数量。谷歌、必应、雅虎、维基百科、亚马逊、YouTube和百度等流行搜索引擎用于计算评分。
但是TIOBE指数与大多数代码所使用的语言无关,与行业领先技术水平也无关,主要是一个衡量流行程度的榜单,是个“网红榜”。
而在这个榜单排名第一的Python,近几年可谓风头无两,其语法的优越性,让众多以“lessismore”为信条的工程师对它大加赞赏,也有了名言“人生苦短,我选Python”。
Python的可读性、简单、直截了当,在数据分析方面,它甚至可以取代办公软件常青树Excel,野村证券副首席数字官马修·汉普森在伦敦QuantConference上发表讲话:“现在走进交易大厅,用Excel的人越来越少,大家都在码Python代码”。
也因此很多非编程工作的人,也在学习Python,用来进行数据分析相关的工作。
No.2
然而,工程师们对Python的青睐,还没能影响到大多数企业也是事实。
Python在应用领域上更具吸引力,它更像个“多面手”,囊括了数据分析、人工智能、开发、测试、运维等领域,而Java更着重于企业级程序。
很多新手也就因此犹豫,因为时间和精力有限,上手必须要先学一门,到底选哪个好呢?
1.语法特点
Java的面向对象特性使得在编程过程中会不自觉的先定义父类,然后继承父类,根据多态来定义子类应有的属性和方法。或者是先定义接口,再根据接口去实现对应的函数。这个过程会使得程序员在编程过程中不自觉的自顶向下的进行思考,会在拿到需求后先进行抽象和设计,再逐步实现。
而Python则有所不同。由于Python是一门多范式的编程语言,对过程式编程的支持使得用Python实现一个功能变得很方便。
同时Python本身内置了大量方便简洁的API,如序列化用的json,文件目录处理os等,这些API让程序员面对一些用Java来做可能需要创建好几个类才能实现的功能简单调用一下API就能实现,这样也使得程序员不会更多的考虑如何对这个过程进行抽象和设计,而是单纯从效率出发,尽快的实现功能。但却使得后续的维护和扩展成本变得更高。
在功能复杂度较低的时候,Python的开发成本更低,可以更快地实现所需功能。但当功能复杂度较高时,Java的优势便开始显现。在一个设计规划良好的Java项目中,功能复杂度的增加对于Java开发成本的增加会比Python低得多。
2.执行效率
Python的运行效率可以说是完败于Java和C的。这是因为Python的执行过程是需要逐行解释的,同时作为动态语言,Python需要在运行过程中确定对象的类型。这也大大降低了Python的运行效率。
3.数据库访问
Java具有自己的数据库访问模块,JDBC非常强大,并且使用JDBC可以连接到几乎所有可用的数据库。Python的数据库访问层比Java的JDBC弱,因此很少在存在关键数据库应用程序的企业应用程序中使用。
在目前,Java和Python受欢迎程度更是不分伯仲,人工智能和大数据的兴起,这两个职业正处于上升阶段。不过在国内Java语言的受欢迎程度是要比Python稍微高一截的。
总的来说Python学起来简单,是大数据分析的首选编程语言,实用性强,发展前景广阔,但岗位没有较少。而Java发展了很多年,稳定需求,就业机会多。