我认真来回答一些专业上的话题了,不然*乎老给我推荐一些买ipad的问题,烦死我了。我可是是一个程序员啊。

好进入正题,要回答python这么火,从几个方面入手python是为了解决什么问题?

有什么能取代python的吗?

回答了这两个问题,我想现在为什么python能火的原因大概就清楚了吧。

python是为了解决什么问题?

跨平台。

在10几年前,主流的语言还是c++ java的时候,如果要处理一些简单的批量操作,一般在windows上会使用bat。但要命的是,linux乱入了,有着unix精神的人有很多类似bat的解决方案,比如bash, perl, python等等。现在好了,一个问题变成:我写的批处理最好能跨平台运行。

此时python有个极好的方案,就是很早就有很完善的windows安装包,所以python成为了跨平台脚本的不二之选。

开箱即用。

python的库不是一般的多,得益于其实老外一直就想用python来取代perl/cpan,所以大家费尽心思给python充值。

这样的结果就是,无论你想用python做什么样的事情,总能找到相应的包。早年我想解决编码识别的问题,就有一个chardet;我想解决分词的问题,就有一个库叫jieba。

当时一个同事说你很饿,有两个选择:

1. python就像一桌菜,你可以选择吃什么不吃什么

2. x语言,干干净净什么都没有,但给你整套的厨具,你想吃什么就自己做。

有什么能取代python的吗?

其实当年最火的脚本不是python,而是perl。不幸的是,这个东西在移植的时候有点水土不服,windows上不是那么服服帖帖,对cjk也不是那么友好。对当时大火的oo支持也不是那么完美。所以就被python干趴下了。

当年ruby和python几乎不相上下。但随着时间推移,ruby自己把自己玩坏了,而且很多人多少还是有点排斥ruby的民族出身(日本),所以python又胜出了。(但ruby仍然在我们身边,我们现在还有很多东西是用ruby写的,比如mac上著名的homebrew,xcode开发用的cocoapods。)

那时候javascript没有好的interpeter:v8压根还没有出现,node更不可能有,在那个贫瘠的年代,能用的只有python了。

至于后来搞出来的ml, dl,为什么选择了python,我觉得多半是因为没有其他语言可以选了吧。