服务与支持 |咨询热线 0931-8733767
  • 金城在线
  • 公司简介
  • 发展历程
  • 企业文化
  • 售后服务
  • 工作机会
  • 联系我们

python脚本短小的原因分析

来源:发布时间:2017-12-5 10:10:31

设计目的不同。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 方言 :)


相关文章
  • 预约专家

    为您提供一对一解决方案
    立即预约
  • 售前咨询

    周一至周五9:00——17:30
    立即咨询
  • 联系方式

    13919049954

    全国7×24小时热线服务
  • 免费报价

    专属专业顾问1对1报价
    免费报价