执行效率太低又怎样?Python 照样火过 Java、C/C+

关键时刻,第一时间送达!

世界上有成百上千种编程语言,时代更迭下不断有新的语言产生和消亡,但 Java 的江湖地位始终无人撼动,长期霸占排行榜榜首。

但是近年来,Python 显露出越来越猛的进攻趋势,更似有反超 Java 之意。

2011 - 2017 年 Python vs Java 搜索指数逐渐靠拢且不断赶超,图片来源于网络

之前的《不止 20K,Python 工程师薪资再飙升》一文中就阐述了目前市场上 Python 岗位的火爆情况。一方面市场需求不断上涨,据最新的招聘网站数据统计,平均每月招聘人数需求达12331 人,10 月的招聘旺季更高达 20600 人,招聘地区也以北、上、深、杭、广等一线城市为主。另一方面,Python 工程师的薪资水准也持续攀升,在全国范围内月薪以 20K - 30 K 居多,当然相应地对工作经验和学历也有要求,工作 3- 5 年的本科学历人员最受欢迎。

显而易见,大火的 Python 是一个新的时代「风口」。

然而比起 Python,市场上明明还有很多更为高效、易用的编程语言:前有应用率最高、长期霸占排行榜的常青藤 Java,后有易于上手的 C,还有在游戏和工具领域占主流地位的 C++,以及占据 Windows 桌面应用程序半壁江山的 C# 等等。相较而言,Python 具有执行速度不够快、GIL 锁限制并发、版本间不能很好的兼容等缺陷。

那么为什么近年来 Python 能够突破重围、突然火起来了?

其一,简单易学且生态开放的 Python 很容易上手。

大多数人都相信“最好的编程语言”是取决于具体领域的,因为每种语言都有自身的优缺点,没有例外,比如 Java 的体型臃肿、语法冗长一直被大量的开发者所诟病,C 语言极大依赖于程序员本身的驾驭能力,C++语法复杂对开发者很不友好,C# 缺乏生态支持后续乏力......至少目前,还没有任何一门语言能完美满足所有需求特性。

Python 的执行速度慢是不可避免的。作为一门脚本语言,它自然会比那些需要编译为可执行程序的语言要慢一些,因为在执行的过程中需要解析器参与,一边解析一边执行——这是脚本语言的通病。但在现代计算机的硬件配置下,Python 的运行速度和一些快速语言已经越来越近了。而且瑕不掩瑜, Python 不仅不需要浪费太多时间做一些定义和强制转换变量类型的常规工作,还有大量免费的库供使用,无需“重新发明轮子”,各种 Web 框架、爬虫框架、数据分析框架、机器学习框架可以拿来即用。此外它与 C / C ++ 等代码之间可以进行简单的绑定,这就意味着复杂代码部分的性能可以植入这些语言,能够避免带来性能损失。

目前, 越来越多的工程师使用 Python 进行大数据处理,科研工作者开始使用 Python 来进行数据分析,系统管理员使用 Python 管理 Linux 系统,开源的云计算平台 OpenStack 使用 Python 语言开发,很多编程爱好者使用 Python 进行爬虫等......Python 已经逐步在网络爬虫、数据分析、AI、机器学习、Web开发、金融、运维、测试等多个领域扎根壮大。

谷歌搜索结果显示的 Python 应用领域占比,图片来源于网络

其二,人工智能的爆发为 Python 的流行大大地添了一把火。

在机器学习领域,Python 是 ROS(机器人操作系统) 的两大主要编程语言之一。对于机器学习算法而言,重要的是算法能够快速构建、代码阅读性好、维护简单、上手容易,Python 能够很好地满足这些需求。而且作为一门胶水语言,很多算法都会提供一个 Python 接口,底层仍然用更为快速的语言来实现,所以 Python 的角色主要在数据预处理、数据展示、算法定义等方面,这些动作所花费的机器执行时间几乎可以忽略不计。

所以开发者需要把握「风口」,积极进阶

简单易学、语法优美、丰富强大的库、开发效率高、应用领域广泛等等,这些特性促使 Python 的入门和学习需求越来越强烈。以下整理了一些入门&应用级别的技术文章,可供学习使用。

入门级

应用级

写在最后

作为一门开放性语言,Python 维护者众多,加之近些年出现了好多实用的框架,因此越来越深受广大开发者的喜欢。但是如果想吃螃蟹,编程语言仅仅只是吃螃蟹的工具而已,能否捉到螃蟹还要依赖于你本身的知识和其它技能。

所以,人生苦短,来用 Python 吧。

本文来自企鹅号 - CSDN媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏无原型不设计

交互设计流程是怎样的?

尽管“交互设计”在近几年的设计行业中早已不是什么新鲜名词,但依然还是有很多朋友,尤其是刚入行的新人会问:什么是交互设计?交互设计师到底是干嘛的?交互设计的流程...

3845
来自专栏Python入门

小伙用Python 分析了 20 万场吃鸡数据,网友:原来吃鸡这么简单

最近老板爱上了吃鸡(手游:全军出击),经常拉着我们开黑,只能放弃午休的时间,陪老板在沙漠里奔波。 上周在在微信游戏频道看战绩的时候突发奇想,是不是可以通过这个方...

1664
来自专栏日常学python

用数据分析来看哪种 Python 程序员最赚钱?

本文以Python爬虫、数据分析、后端、数据挖掘、全栈开发、运维开发、高级开发工程师、大数据、机器学习、架构师这10个岗位,从拉勾网上爬取了相应的职位信息和任职...

1224
来自专栏BestSDK

5个要点,决定你的交互设计是否成功!

交互设计(Interaction Design):定义、设计人造系统的行为的设计领域。人造物,即人工制成物品,例如,软件、移动设备、人造环境、服务、可佩带装置以...

3307
来自专栏软件开发 -- 分享 互助 成长

浅谈保证软件工程质量的一些心得体会

Itwolf原创博客,转载请标明出处,谢谢

2429
来自专栏企鹅号快讯

波音公司利用区块链打击GPS欺骗

来自波音的一项新专利表明,这家飞机制造巨头正在研究区块链如何帮助保护飞行中的GPS接收机。 在上个星期四美国专利和商标局发布的一项专利申请中,世界上最受欢迎的客...

2007
来自专栏逸鹏说道

程序员的核心竞争力是什么?为什么?

姚冬回答的非常好,我狗尾续貂的说几句。 我们都知道学习能力很重要,那么学习能力从何而来,除了去看书上课这种,如何在实践工作中学习成长? 我之前微博说了一个笼统...

2796
来自专栏技术小黑屋

为什么程序员应该要尝试写一写博客

作为程序员,最平常不过的就是敲代码了。然也,这是我们自身以及外界对我们最朴实的认知。在编码过程中,我们可能会遇到并解决掉一些问题,积累经验和心得,有的人选择用自...

541
来自专栏java一日一条

程序员如何提一个好问题

提出好的问题是在编写软件时的一个非常重要的技能。这么多年来我对此也算略有小成。这里有一些我用着觉得很棒的指导方针!

733
来自专栏灯塔大数据

探秘 | 写了一百万行代码是什么体验?

搞程序的累计写到一百万行代码到底是什么体验呢? 如果一百万是标量的话,来和大家研究一下这个数据,假设最好的情况,一天100行高质量代码,一年36500,100/...

3544

扫码关注云+社区