发新话题
打印

[文章] 日本人的Ruby(转译)

本主题由 admin 于 2008-2-5 13:47 分类

日本人的Ruby(转译)

Ruby是一种编成语言,属于Script语言类,即脚本。Perl也是比较有名的脚本语言,实际上可以说Ruby是基于Perl而产生的。从Ruby的命令(函数,方法)很多都与Perl重名来看很容易理解这点。Ruby是面向对象的,可读性及柔软性高。

为什么偏偏是Ruby。首先最重要的事实是,其作者是日本人。所以可以直接用日语向作者提问,日语的资料也非常多。充分考虑了对汉字编码的处理等日语的使用。对我们日本人,在此之前还没有这种待遇吧。虽然还有很多有魅力的地方考虑到篇幅这里就不提了。不管怎样,提起日本人,有Ruby!

Ruby的座右铭就是“快乐编程”。我确实感觉Ruby编程很有趣。大家也能来使用的话就更有趣了。现在是个好时代,因为CGI的存在。说起CGI,即便不安装程序也可以在浏览器上使用。而且不依赖具体的操作系统。因为使用起来很有趣可以做游戏。大家如果能对Ruby感兴趣,我真是非常高兴。



wikipedia

Ruby是Matz开发的面向对象的脚本语言,是Perl等脚本语言应用领域的面向对象的编程语言。Ruby最初产生于1993年2月24日,1995年12月发表于fj。Perl与6月的生日石Pearl(珍珠)的发音大致相同,Ruby名称来自于Matz的同事的生日石(7月)。

Ruby具有类定义,垃圾回收,出色的正则化处理,多线程,异常处理,迭代封闭,Mixin,演算符重载等功能。从一开始便致力于代替Perl。与Perl同样,使一种易整合语言,可以嵌入调用C程序或库等扩展模块。

Ruby处理系统是作为解释器来开发的(尝试过JIT方式运行时编译的实验)。

Ruby继承了ALGOL,重视可读性。Ruby中整数及字符串等数据类型全是对象型的,是纯粹的面向对象语言。

Ruby作为自由软件发布(类似GPL或Artistic自由协议)。



Ruby哲学

Ruby的作者Matz在确定Ruby语言规格时特别强调的是,快乐编程(Enjoy Programming)。Perl的座右铭是“TMTOWTDI:There's More Than One Way To Do It”(总是不止一种办法解决),“Diversity is Good”(多样则优)。Ruby所倡导的并非是最重要的,可能不是一种推荐的手法。由此语言的规格较难使用,因过于强调自律也被称为洗脑语言。以前Ruby遵循最小惊讶原则(Principle of least astonishment或Rule of least surprise)-跟程序员想的相反的不同寻常的行为,或语言规格上的歧义等-,容易被解释偏而去掉了这个座右铭。

编程

Ruby主要有两种编程方式。一个是广泛使用的公式化的Ruby解释器。另一个是基于Java的JRuby。Ruby解释器现移植到大多数的平台上,如,Unix、Linux、Microsoft Windows、MS-DOS、Mac OS X、OS/2、Amiga等。JRuby也是纯粹Java编程,不依赖于平台,并且提供了几乎所有的Ruby类。

竞争语言:Python

作为编程语言Ruby可以通俗地讲是“Perl的面向对象版”,即通过解释运行的高级面向对象的脚本语言。与之相媲美的还有Python。使用不同语言的用户经常争论,到底哪一个更优越。但争论往往在技术细节上没有什么结果。

这里并不想比较两者的细微差别,从用户数量,开发的系统得数量及质量来看,现在作一比较的话,Python更有人气。但是在日本,因为开发者是日本人所以Ruby的人气比较高,这类的书籍也比较多。2004年前后并没有那么风靡,也就tDiary及Bug管理系统“影舞”有些知名度,谈不到大范围普及。但是受2004年末发表2005年流行的黑马Ruby on Rails影响而备受瞩目。

Ruby相关技术

・分布对象的dRuby

・嵌入于Apache的用于显示HTML的嵌入Ruby文字的eRuby

・可以嵌入Ruby脚本的文本形式RD

・应用RD的Wiki clone,RWiki

・可处理SDL的Ruby/SDL

・可处理Delphi的Apollo

・Web应用框架Ruby on Rails

・Ruby的另一处理系统YARV(Yet another RubyVM)

・Ruby的综合开发环境RDE(Ruby Development Environment)

・Ruby的代码转换为Windows的执行形式文件的Exerb

・Ruby的库管理系统RubyGems

使用Ruby开发的应用

・tDiary

・影舞

・Hiki

・Ruby on Rails

・qwikWeb



ruby-lang

Ruby是轻量级的面向对象的解释型语言。Ruby(如同Perl)具有丰富的文本处理及系统管理等功能。而且Ruby是单纯的,容易理解的,容易扩展的语言。如果想找个简单的面向对象的语言,感觉Perl代码难读,Lisp的思想比较好但对它的括号之多感到困惑时,Ruby就是你想要的。

Ruby具有如下特点:

・解释器

Ruby是解释型语言,运行程序时不需要编译

・变量没有类型(付与动态类型)

Ruby的变量可以是任何类型,不必担心变量的类型。另一方面,编译(不是运行时编译)时检查工作量减少。

・无需定义变量

Ruby中变量的使用不需要定义。可以通过函数名确定函数的种类(局部变量,全局变量,instance变量等)。

・语法简单

Ruby受Eiffel的影响小,语法简单。

・无需用户对内存的管理

Ruby自动进行内存管理。不管在哪进行内存访问的对象都由嵌入在解释器的垃圾回收器处理。

・所有都是对象

Ruby从一开始就设计为纯粹的面向对象语言。像整数这样的基本数据类型等所有的数据都作为对象来处理。

・类,继承,方法

Ruby当然具有类,继承,方法等基本的面向对象的机能。

・特意方法

对特定的对象可以付加方法。比如,GUI中的某个按钮,被按下时的动作可以记述为方法。由此可以作为基于原型(prototype)的面向对象语言。

・模块的Mix-in

Ruby考虑多重继承是复杂之源,不支持多重继承。通过混合模块的使用达到多重继承的效果。这个功能叫Mix-in。

・调用块方法(迭代器)

实现控制结构抽象化的块方法调用功能。

・封闭

手续可以作为对象。这种对象化的手续叫封闭。

・很强的字符串操作/正则表现

具有类Perl的强大的字符串处理及正则表现检索功能。

・多倍长整数

嵌入的多倍长整数功能使内存允许的范围内进行超大整数的运算。比如,400的阶乘很容易计算。

・异常处理功能

异常处理功能可使异常对应的处理变得简单。

・OS的直接访问

Ruby具有(UNIX)的系统调用功能。Ruby可实现系统编程。

・动态载入

OS允许的话,可以提供运行时动态载入对象文件的功能。

TOP

发明火药的,未必火药用的最好
发明汉字的,未必汉字研究得最精
中国人发明的好东西都让日本人发扬光大了。

终于,这次轮到日本人发明了ruby,我每次用ruby都有一种说不出的快感。

TOP

发新话题