关于perl:为什么Python使用者远远大于perl

40次阅读

共计 927 个字符,预计需要花费 3 分钟才能阅读完成。

不认为 两者 的语法差别是造成如此场面的次要起因.
perl 的语法尽管比拟特立独行, 但也不是很难.

总结如下起因:

library(或者叫 package)的应用

如果是本语言原生的 library, 那没有问题. 如果是须要调用内部函数 / 过程的 package 的话, 那么就会有微小的差别.

  • python 是预编译而后从 pypi 上下载
    python(pip) 将 package 下载到本地
    而后解压后将 package 内容装置到不同的指定目录
  • perl 是代码下载到本机后本机编译
    须要在本机上安装 c 编译器, linker, pkconfig, 以及依赖的动静库 …
    构建之后, 再将构建生成物装置到不同的指定目录

比方: PyQT/PySide 装置后, 会有一些动态链接库 (*.so/*.dll/*.pyd) 呈现在 site-packages/pyqt5/ 的目录里. 能够证实 python 的 package 是 all in one 型.

从为数不多的 Perl 理论应用来看,本机编译 比拟艰难,要装置许许多多的开发工具和辅助工具,常常遇到某某软件缺失问题,有时还会遇到莫名的编译失败 装置失败,不如 python 间接将编译好的动态链接库下载到指定地位,也不须要额定装置 c /haskell/Ada 或者什么语言的编译 / 构建环境,大大降低了入门的难度与所需常识储备
( 目前看来这是许多新畛域抉择 python 而不是 perl 的重要起因。毕竟熟练掌握 c 程序的构建须要很多很多的常识储备, 一旦呈现装置问题 小白就抓瞎)。

所以心愿 Perl 社区认真改良这个问题(像 python 一样提供编译好的 package), 进步应用体验.

不过,perl 社区都是大牛, 可能不会呈现这种根底问题, 天然也意识不到

面对对象能力

python perl 都有一点面对对象能力。
Perl 的 OO 语法比拟怪异(而且有不同期间的不同实现).
python 的 OO 语法比拟正统(靠近 c ++ java c# 这类 OO 支流), 学习起来比拟容易.

支流惯性

因为长期将精力专一于 Raku(以前的 perl 6), perl 社区错过了 web2.0, 大数据, 人工智能 这些新热点. 造成在这些畛域衰亡之后, 抉择的次要语言是 python, 新退出的学习者天然追随支流.

在生物信息 数据挖掘这些畛域, 因为畛域惯性, perl 还是支流语言.

正文完
 0