日本人的Ruby
资料来源 wikipedia ruby-lang rubyist 翻译 东北藏
rubyist
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开发的应用
・影舞
・Hiki
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允许的话,可以提供运行时动态载入对象文件的功能。
PS Matz
Yukihiro Matsumoto( 1965年 4月 14日 -)编程语言“Ruby”的开发者。本名“松本行弘”,英语圈通称Matz。鸟取县立米子东高等学校,筑波大学第三学群情报学类,鸟根大学研究生院博士课程学分取得后退学。
大阪出生,4岁搬家至鸟取县米子市。出身地通常介绍为米子市出生。
现住在鸟根县松江市,同市网络应用通信研究所(NaCI)株式会社特别研究员。
末日圣徒耶稣教信徒。
Ruby及4个孩子的父亲。
(译者注:国人什么时候能开发出有国际知名度的好东东啊?)