[PerlChina] Perl with opensources

watercloud watercloud at xfocus.org
Sun Oct 12 00:04:16 PDT 2008


perl是高手用的语言,里面有太多奇技淫巧,常人很难用来做真正的项目,而这世上高手又不多。python是老少皆宜,没有什么花哨的东西,学起来用起来都简单很多。
我用了5年的perl,也在真正的项目中写过很多perl代码,现在也转向python了,培养一个perl程序员难度太大,教团队新成员python则容易的多,且团队内由于perl语言太灵活,彼此看不懂对方代码也很头大,虽然perl是我用着最上手的语言现在却不得不转向python了……

perl里最大的几个问题:
1.
语法太灵活。这是perl的优点,perl爱好者巨喜欢的,我就很喜欢,但这也是制约perl发展的最根本的原因。项目团队内解决方法,约定一套统一的编码、命名、注释规范。尤其是每个变量必须my声明,且标明内部结构如:
my %user; # user { 'name' : .. , 'groups':[ {'groupname' : .....
2. 多线程严重不稳定,win32下效率非常低,解决方法:用多进程。
3. 类声明语法很不自然。 class声明一般团队新手很难学会,解决方法: use  cpan
上的perl6::classes,这样在perl5里就可以用人都能看懂的方法来声明类了:
class Person {
  method function1 { .. }
 }
4. 函数无法指明参数,使得函数定义不自然,也不易阅读,解决方法:use cpan上的perl6::subs,然后就可以比较好的定义函数了 def
function($age,$name) ...

perl5本身除了以上几点外已经非常完美了,说实话我对perl6一点都不看好,因为:
a) perl5已经足够好,大家并没有使用perl6的动力,开发者也没有动力去开发perl6.我觉得这个才是perl6始终缓慢的根本原因。
b)perl6会导致对perl5的不兼容,现在cpan上这么多模块不兼容是巨大的损失。

我列出的perl主要4个问题,有3个都能得到解决,只有那个线程问题是个硬伤,尤其是现在cpu都向多核发展,多线程解决不好会更加限制perl的发展。如果perl6能很好的解决这个问题就是天幸了!

当然python目前对多线程支持也极烂,同一时刻只能有一个线程使用解释器,这就导致无论多少个cpu同一时刻只能有一个线程在执行中,其他都在等待。



2008/10/6 kind terry <kindterry at gmail.com>

> 同意你的观点。
> 牛人们不能太低调啊,要出来教育群众嘛。如果每天china-pm都有这么多邮件就好了,哪怕不是光讨论perl
>
> 2008/10/6 xu zhou <redicaps at gmail.com>
>
>> 需要牛人不断闪现啊
>> 新手做不了什么
>>
>>
>
> _______________________________________________
> China-pm mailing list
> China-pm at pm.org
> http://mail.pm.org/mailman/listinfo/china-pm
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/china-pm/attachments/20081012/848d004c/attachment.html>


More information about the China-pm mailing list