用了用Python,感觉Python的路还很长。

  当然,如果说:Python的路已经走到头了,那还是长点好。

  我的感觉是,Python固然有很多优点,但是距离成为一门其他语言无法替代的语言,还有不少事情要做。什么是无法替代?应该是说拥有一块领域,在这块领域上其他语言很难与之争锋。比如C/C++在系统编程方面、Java在跨平台上面,这样一来凡是在这个领域做的人都会去用这门语言,这门语言也越来越适合这个领域,马太效应就可以保持这门语言在一个特定的领域长盛不衰,也保持了语言的生命力和活力。

  Python之所以现在如此流行,就是因为它特别好用。C++支持多态,可以用继承、模板两种方法实现,还能进行模板元编程、可以操作符重载……可以这可以那……那如果问一句,Python怎么用模板实现多态?Python能用模板吗?

  Python的多态当然可以用继承实现,但是模板呢?Python根本就没有模板——因为Python没有C++强大?不是的,因为Python根本不需要模板就能做到C++要做的。而且Python就提供了很多方便的库为我们做很多事情,C++也有类似的库,但是就是要你去找,麻烦。

  这是Python的两个优点,第一语言上方便好用;第二提供了贴心的库给用户用,也许不强大,也许别的语言也有更多更强大的库。第一个优点保证用户在写程序的时候觉得顺手,没有什么编程基础的人也能很麻利的写出合用的程序,注意,这里,我说的是“用户”,不是“程序员”。第二个优点就完全是针对用户,不是针对程序员了,Python的哪一个功能是C/C++没有的?Python的哪一个功能是C/C++实现不了的?要回答这两个问题,可以先回答一下这个问题:Python是用哪个语言实现的?就是用C/C++。那么再问一下,当你需要把一个字符串按照空格切分的时候,你会选择Python还是C/C++?凡是用过Python的,都会选择Python吧。是因为C/C++实现不了这个功能吗?还是因为C/C++没有库函数支持?都不是,C/C++实现Python的split函数完全可以也不复杂,而且我相信早就有现成的函数了。为什么大家还会用Python呢?因为Python的就在手边上,什么也不需要你做就能用,C/C++却需要放狗去网上摆渡一下找出来,然后下载代码、阅读使用说明、编译,才可以用——时间上可能就差个五分钟,对于程序员来说不算什么,但是用户可不愿意费那五分钟的劲——有那五分钟,干嘛不去看看花边新闻呢?

  说到这里,Python的地盘应该是:针对普通大众日常编程需要的一种语言。它面对的是编程基础很差的普通大众,它要能让人很容易的学会,然后很容易的写出满足用户希望功能的程序。所以Python的语法很好学很好用,提供的库很贴心——用户想什么它就提供什么,不像C++那样要考虑兼容性考虑性能考虑各个厂商,它只考虑用户的需要。

  那么,Python是不是就已经在这个地盘上至高无上,旁观左右而无他?应该不是,类似的语言有BASIC、VBScript、JScript,可能Perl和awk也算,但是我对它们了解不多。对于这些语言来说,Python能做到的他们完全也可以做到,不存在任何质的区别。即使是C++,如果把合适的库打包起来发布,那么Python写的多短的程序C++甚至可以写的更短,但是C++永远无法做到像Python那么容易上手,这是被语法所限制的。对于BASIC、VBScrip和JScript这样的就不是那么回事儿了,它们本来就是解释型语言,语法上也很好学,和Python相比只在伯仲之间。再加上合适的库的支持,那么Python能否从它们的夹击中胜出更是难以预料。

  目前Python针对其他的解释型语言已经占有优势,但是这个优势不过是量的优势而不是质的优势。好比当年Delphi/Object Pascal针对VC的优势一样,尽管有优势,但是Delphi/Object Pascal能做到的没有VC做不到的,只是VC做的还不好。等到VC做的够好时候,哪里还有Delphi/Object Pascal的影子?如果其他的语言能够赶上,Python的地位只怕岌岌可危。

  那么怎么能一统江山?让其他语言也无法赶上呢?什么才是Python能做到别的做不到的?

  今天晚了,明天再续~

[原文在百度空间已经关闭]