python脚本短小的原因分析

设计目的不同。C++ / Java 自身是为了严肃工程设计的言语,而 Python / Perl 之所以称为“脚本言语”,由于它们设计就是作为脚本,暂时执行一下的,通常还担任“胶合”其它顺序协作完成义务。(虽然 Python 在各种脚本言语里是最倾向于工程的)

从这个设计目的推倒,那么这些言语在执行一些罕见功用的时分,一定要更方便才好,否则人们直接用 Java / C++ 就可以了啊。所以 Bash 格外擅长调用和组合顺序,Perl 特别擅长字符串处置等。Python 相对普通一些,提供了一个相对短平快而方便书写的语法以到达目的:

“静态强类型”省略类型声明。C++ 11 刚刚末尾引入 auto 停止类型推导。当然后者对正确的保证更强一点。

内置丰厚而高效的数据类型:array / list / dict。对比一下 new HashMap<String, HashMap<String, String>>().get(“Key1”).get(“Key2”) 什么的……

Python 较早引入了一些 FP 言语的元素,如 map / filter / apply / itertools,还有 lisp comprehension 和 generator [1] 这种大神器。对比 C++ 11 / Java 8 才引入 lambda 真实是……泪目。

规范库,”battery included”。虽然在某些方面比 JRE 不如,比 C++ std lib 那个弱 X 还是可以自豪得笑的。

而且 Python 更强的是有 PyPI 和配套的 pip 工具,使得管理依赖项、自动装置和更新变得像 Debian 系统包装置一样容易(这不是黑,真的)。Java 后来也算有了 Maven(鉴于需求手写 XML,我还是以为这货不是给人类运用的。Clojure 的 Leiningen 略好)。C++ 墙角哭去!

当然,假设题主真的计划悬崖勒马寻觅一下 THE LANGUAGE 的话,没事可以围观一下 Ruby 和 Lisp 系言语……

遗忘是 Paul Graham 还是谁说的了……每个言语最后都会变成一种 lisp 方言 🙂

提供最优质的资源集合

立即查看 了解详情