python已经式微了吗?为什么学计算机的小伙伴说现在java和c++才是王道?

回复内容:
学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。但是可能两年之后都上不了线。

Posted in 未分类

发表评论