回复内容:
学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。但是可能两年之后都上不了线。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn