设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

Ruby受欢迎的三十七个理由

2011-7-5 14:38| 发布者: joejoe0332| 查看: 9388| 评论: 1|原作者: 互联网|来自: 互联网

摘要:   Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。   一、Ruby 是面向对象 ...

  七、Ruby 借鉴了前辈语言。

  这是好事儿吗?在文学领域之外,是的,这是好事儿。牛顿说,“若我看得比别人远,乃是因为我站在了巨人的肩上”。Ruby 确实是站在了巨人的肩上。Ruby 引借了来自 Smalltalk, CLU, Lisp, C, C++, Perl, Kornshell,以及其他语言的特性。

  我看到其中的原则是:

  1. 不要重新发明轮子;

  2. 不要修补没有问题的部分;

  3. 特别重要的是,充分利用人们现有的知识。

  您掌握 UNIX 里面的文件和管道(pipes)吗?没问题,您可以在 Ruby 中运用到那些知识。您花了两年时间研习 printf 的各种格式符号?别担心,您在 Ruby 里面还可以使用 printf。您了解 Perl 的 regex handling 技术?好的,那么您几乎也就立刻学会了 Ruby 的 regex handling 技术。

  八、Ruby 具创新性。

  这一条与第7条有些矛盾吧?唔……是有一点;每个硬币都有两面嘛。Ruby 有一些特征极具创新性,比如非常有用的 mix-in 概念。或许这些创新型特征将来会被新的语言借鉴。(注:一位读者向我指出,LISP 至少早在 1979 年就有 mix-in 了。这一点我倒是完全没有注意到;我当另寻一个更好的例证,保证其真确性。)

  九、Ruby 是特高级语言(Very High-Level Language,VHLL)。

  这个问题有待商榷,因为术语 VHLL 还未被广泛使用,而其含义更是比 OOP 的含义更具争议性。我说“特高级”指的是,Ruby 可以通过相对较少的指令掌控复杂的数据结构并对其进行复杂的操作,符合了被一些人称为“最少投入”的原则(Principle of Least Effort)。

  十、Ruby 有智能垃圾收集器。

  诸如 malloc 和 free 之类的函数现在只是已然过去的昨夜噩梦。您连析构函数都不需要调用。仅此足矣。

  十一、Ruby 是脚本语言。

  不要以为 Ruby 是脚本语言所以就不强大。Ruby 可不是玩具。Ruby 是全功能的程序设计语言,只不过 Ruby 让传统的脚本操作变得更容易撰写,比如运行外部程序、检查系统资源、使用 pipe(管道)、截获输出等等。

  十二、Ruby 用处多样。

  Ruby 可以完成好 Kornshell 能够完成好的事情,也可以完成好 C 语言能够完成好的事情。想快速写一个十行的 hack 程序来完成一次性的任务,或者为遗留代码写个 wrapper 吗?用 Ruby 没问题。想写一个 Web 服务器、CGI,或者棋类游戏吗?用 Ruby 也没问题。

  十三、Ruby 对线程予以支持。

  您可以使用简单的 API 撰写多线程应用程序。是的,即使是在 MS-DOS 上撰写也可以。

  十四、Ruby 是开源的。

  想看 Ruby 的源代码了?想提供一个补丁建议了?只管去吧!想与智慧云集、乐于助人、包括语言设计者在内的用户社区进行联络吗?可以的!

  十五、Ruby 具有直观性(直觉性)。

  学习曲线平滑不陡。一旦入了门,您是否就开始“猜测” Ruby 的使用方式了呢?您的猜测通常是正确的(译注:因为 Ruby 很直观,符合了人们惯常期待的方式)。Ruby 致力于符合“最少诧异或惊讶”之原则(Principle of Least Astonishment (or Surprise)).

  十六、Ruby 具有异常(exception)机制。

  同 Java 和 C++ 一样,Ruby 能处理异常。这意味着少与返回代码纠缠,更少的嵌套 if 语句,更少的意大利面式逻辑(spaghetti logic,贬义,指的是复杂混乱的代码设计,比如大量使用GOTO语句等等),更好的错误处理机能。


酷毙
3

雷人
1

鲜花

鸡蛋

漂亮

刚表态过的朋友 (4 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部