免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1977 | 回复: 2
打印 上一主题 下一主题

仙子MM,请教个问题! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-05 13:26 |只看该作者 |倒序浏览
中文wiki上perl6 vs ruby的一段:

和 Ruby 比较

一般都是认为 Ruby vs. Python(可能是因为同样采取缩排的设计),但是就一些相关的讨论和访谈,Ruby vs. Perl 6 的可能性反而是最大的。CPAN 上排名第一名,同时也是 Perl 6 的开发者的唐凤(Audrey)就这么说过:“Ruby 就是‘没有到处打广告的 Perl 6’”[1]。Ruby 的创始者——松本行弘(まつもとゆきひろ/Yukihiro Matsumoto,Matz)在接受 O'Reilly 的访问时[2],也提到“Ruby 借用了很多 Perl 的东西……,Python 远比 Perl 要少……”。从 Ruby 的命名也可以看出 Matz 远大的企图心:“Pearl(珍珠)是六月的诞生石[3],而 Ruby 是七月的诞生石,我认为 Ruby 这个名字作为 Perl 之后的一门语言的名字真是再恰当不过了。”[4]
Perl 之父拉里·沃尔(Larry Wall)在《Larry Wall On Perl, Religion, and……》[5]一文中表示:“很多方面上我还是很喜欢 Ruby 的,这是因为那些部分是从 Perl 借过去的。:-)”、“我还喜欢 Ruby 的 C<*> 一元星号操作符,所以我把它加到 Perl 6 里面。”
但是拉里·沃尔在文中也说:“Ruby 的主要问题在于它的最少惊讶原则可能让人误入歧途,就好像隐藏式词法范围。问题在于减少谁的惊讶?专家和初学者对不同的事情惊讶。一个从小程序写成大程序的人和一个从开始就写大程序的人可能对不同的事情感到惊讶。”

但是拉里·沃尔在文中也说:“Ruby 的主要问题在于它的最少惊讶原则可能让人误入歧途,就好像隐藏式词法范围。问题在于减少谁的惊讶?专家和初学者对不同的事情惊讶。一个从小程序写成大程序的人和一个从开始就写大程序的人可能对不同的事情感到惊讶。”

这一句对ruby的评价怎么解释呢,不知所云,是翻译的问题吧!
那么他所说的“惊讶”是什么意思?

论坛徽章:
0
2 [报告]
发表于 2010-02-05 14:27 |只看该作者
隐藏式词法范围可相对于Perl的my申明变量来理解。
ruby也有自己的变量作用域,它的面向block的机制,会大量的使用这个作用域来自动销毁标量。
但是,这个作用域是ruby内部维护的,不需要my/our等声明,所以称为隐藏式词法范围吧。

Larry说过:
需要对比的话,我必须说 Ruby 的例子是主要的(导致我不支持在 Perl 6 中加入隐藏式词法范围)的原因。我们还是坚持使用 my 的声明方式。很多方面上我还是很喜欢 Ruby 的,这是因为那些部分是从 Perl 借过去的。


Matz也说过:

Ruby 的类库是对 Perl 语言功能的面向对象重组,另外添加了一些Smalltalk 和 Lisp 的东西。我想我是用了很多 Perl 的东西, 不过我不应该继承一些风格丑陋的变量。


ruby的类库基本是跟着perl命名的,例如libnet家族、CGI家族等。ruby的确借鉴了perl太多东西,包括特殊变量和正则表达式都照搬的,这也是perl程序员喜欢ruby的原因。
ruby好些地方的确让人迷惑,例如它做一件事的实现方法比perl还多;还有它的面向block的语法,写起来很酷,但每次脑袋都要绕几个弯去想背后的细节(当然也可以不想),对新手是极大的困惑。还有元编程,虽然方便,但不好跟踪。

论坛徽章:
0
3 [报告]
发表于 2010-02-08 15:12 |只看该作者
谢谢仙子!{:3_189:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP