Python已经式微了吗?为什么学计算机的小伙伴说现在Java和C++才是王道?
程序员文章站
2022-04-06 18:32:39
...
回复内容:
学python有11年了,一直也比较关注这个问题。我没感觉python在逐渐示微,给我的感觉是国际上略微上涨,国内大涨,科学计算领域大涨。至于我么,大学时java还是学过的,虐所有同学还是很容易的,但学python以后就扔下再也没动过,那个时代java已经是跟C可以争第一的了。c++也学过一些,不深,2004年大三时考下个软件设计师认证就是靠C++,之后我在C++方面对自己的要求就是能看懂基本语法写出来的程序,而不怎么写了。C是这些年一直在用,尤其是2007年开始写单片机的程序以后。国际上略微上涨,来自于TIOBE排行榜,最近这十年python的位置一直在第5到第8之间徘徊。两次上过年度最佳语言(指涨幅而不是排名),最近一次看是排名第5。编程语言的发展也算比较快了,能保持排名也很不容易。比如曾经流行的ruby,2009年前后最高冲到过第9,然后就没落了,最近几年好像有掉出前20的风险。objc曾最高冲到过第4,但最近也渐渐冷下来了。
国内大涨,来自于我所看到的招聘需求。2006年我毕业找工作时,国内只有三家公司用python。而现在各种公司的招聘,则招python的就很多了。有些职位并非主力用python的,但也把会python作为注明的加分项。在创业公司的圈子里,python明显需求很高,毕竟做原型快。
科学计算大涨,来自于多个方面。guido当初就是写python来帮助科研的。最近这些年科学计算则很明显的python与c++都得到了很广泛的应用。很多科学计算方面的库都在官方提供了python支持,而不是第三方。包括但不限于:
1、caffe:深度学习
2、theano:深度学习
3、opencv:计算机视觉
4、numpy:线性代数与数值计算
5、scipy:信号处理
6、cuda:nvidia基于GPU的计算加速
7、opencl:其他GPU厂商的计算加速
好吧,限于我的知识范围,应该还有不少而我不知道的。记得2006年时就有做生物的朋友提到某生物信息学的库在用python。知道各种科学计算方面python库的,欢迎评论补充。
此外也有一些科研项目使用了python,这类就数不胜数了,比如最近大热的引力波,据说代码在github上,用到了numpy。
你同学的意思,我相信是指java和C++比较好找工作,这个我认同。但在现代,python也算是很好找工作的了。我的看法是反正学python很简单,几个星期就够了,学一下是个高性价比的事情。c++方面我的看法是有太多feature是用来设计library的,平常人用不上,但是却使得代码可读性降低。所以我很推荐c+python,并不推荐c++。
编程语言是编程路径依赖的起点,多学几种不是坏事,会对架构思维的形成有帮助,尤其是越是后来学一门新的语言越容易。但不应该在语言本身上浪费太多时间,这也是我不推荐c++的一个原因。学完语言本身以后,需要大量的精力去了解更多的应用领域,比如网络、高性能计算、web、游戏引擎、移动开发、数据库、GUI等等,太多了。这些应用领域相关的知识很多是独立于语言的,也是真正对工作有用的。所以赶紧学完了语言就去学这些。
对一些新出现的编程语言,应该保持开放的态度,了解一下其语言特性,学着写个hello world。但要限制一下所用的时间。java是最近十几年中突入TIOBE前十并稳定住自己排名的唯一一种编程语言。历史长河中昙花一现的选择太多了。我在2006-2009期间也花了不少精力寻找python以外更好的选择,并写了大量笔记。lua写了近20万字,erlang写了36万字。学到了不少新思维,但他们都没能发展起来,最终只是站稳了各自擅长的小领域,没有成为通用而流行的语言。最近几年兴起的语言很多,比如go,julia,但在我看来也大多是吸取已有各种语言优点而成的,并没有什么革命性的创新,所以没什么希望成为新的通用语言。 我觉得像Python这样成熟的语言谈不上式微不式微,只是合适不合适你的应用场景。
比较正统的开发人员认为Java, C++, C#才是真正的开发语言,我曾经也这么认为。但是慢慢意识到,每种语言都是它自己的优缺点,问题的关键是你是否了解这些优缺点,和你自身的skillset,在合适的时间地方选择适合你的语言和技术。
我个人觉得Python非常好用,易上手,有无数的Library,从客户端到网页全能做,现在在创业队伍里很流行。虽然有人说有性能问题,豆瓣据说就是用它开发的,上亿量级的UV和50万行+的代码也没见性能不好。再说,如果你用Python做的东西真的遇到性能瓶颈了,那应该是好事,说明你的网站至少是百万级的日活了,估计你也有钱雇更专业的人优化你的网站了:-) 十几年前就一直有人说C++要完,说了这么多年也没怎么样嘛
Python虽然不是非常普及但是也是相当广泛的应用了,目测相当长的一段时间都不会有大的变化。
我一直觉得计算机二级的考试语言简直没用,什么C和VB,很多人这辈子都不会再用也不会想用。我觉得还不如考Python或者JavaScript,就算不从事计算机行业也有很大机会用得上。 1.语言大战从古至今从未停止
2.大战之前需正确称呼目标名字
3.每种语言都有其长处短处和应用场合,就算是"世界上最好的语言PHP",也还是有那么一点点优点的
4.码农请勿嘲讽科学工作者用python,因为你搬你的砖,他打他的草稿 C++和Java本来就是王道级的泛用语言,一直都是,因此没什么好疑惑的。
至于Python,定位不同,压根不存在与C++和Java竞争的场景。然而完全不妨碍它热门起来。
热不热?式微与否?参考TIOBE。 知乎入门:先问是不是,再问为什么? 俺是502胶水俺怕谁,不服import试试 洗洁精已经式微了吗,怎么现在大家都说洗衣液才是王道 python是脚本语言,java和C++是编译语言,根本就不是一个类型的,没有可比性。真要比较,应该拿python和PHP这些语言来对比。就像你可以拿LOL和Dota比较,但是你不能和炉石比较。 是你的小伙伴式微了
纠正一下其他一些说法:
Python不是脚本语言,或者说不仅仅是脚本语言,它是正儿八经的系统级编程语言。质疑Python能力的应该去了解下Tornado和Openstack。
相同功能的代码,CPython可能会比C/C++或者Java的实现慢100到1000倍,但Python能编写出的复杂系统用C++一辈子都写不对。而且这是纯CPU计算上的差异,通常我见过的糟糕的Java系统会因为滥用封装,在一个HTTP请求里调用数十次MySQL查询,把性能都消耗在等待查询结果上,反而比Python实现的性能更差。
同样用Web服务举例,Python的Web服务器性能一般在数百qps,如果全部改用C++性能可以轻松到达上万qps。但是可能两年之后都上不了线。
上一篇: PHP装饰器模式详解
下一篇: php实现开心消消乐的算法的过程分享