tangboyun 写了:习惯用法太多,用perl好好写的话,也可以写出很好的代码,可惜这种是靠个人修养的,语言本身没有这种保障
use strict;
use warnings;
甚至语言本身有鼓励你去写难维护代码的倾向,
从哪里看出来的呢?
python呢,模块一开始不多,python是搞一个核心团队,专门整了个标准库。。。。。有个标准库我个人觉得还是很有意义,不要打开个文件就有各种方法。。。。
Python 有一个巨型的标准库,多数 Python 模块只会依赖标准库,而不会再需要别的非标准库模块,最著名的例子就是 Django。这点设计理念接近于 Windows。当然现在有了pypi之后要处理依赖关系也很方便。
而 Perl 的标准库很小,常用的CPAN模块很少会依赖只标准库,而通常都会有一堆依赖关系。这点设计理念接近于 Unix,Perl 程序员通常对重复发明轮子(reinvent the wheels)很反感。
而且perl的oop是很难看的
这是因为 perl 的 oop 系统比较自由。而现在有 Moose 可以写出漂亮严谨的 oop。
(模块撰写本身就很恶心,比如末尾非要留个1
这是语言一致性的体现。
,名字空间的管理也很难看)
Perl的是显式的、绝对的 namespace,而 Python是隐含的、相对的 namespace。可能各有所爱吧。
perl内联c也比较麻烦,没有标准的FFI,xs那时候我也比较柴,没好好读过文档。。。
嗯,Perl 的 FFI 不成熟是事实,但是Python也没有像XS那样便利的扩展手段。当然,Python和Perl都可以用SWIG。
专业领域的话,比如生物信息这块的话,倒还是perl绝对优势,其他方面对python大有优势的倒不觉得。
Python语法简明,但也造成 Python 从语言本身来看缺乏特别的长处,所以 Python 好像什么事情都可以做,但目前并没有在任何一个领域占有绝对优势
Perl 虽然也是全能,但在文本处理上特别便利,所以才能在生物信息领域占据绝对优势。
从9.04到10.10,我个人感觉ubuntu里应用越来越倚重python了。。。
嗯,现在 Python 写的 GUI 程序明显比用 Perl 写的多。