一、Ruby溯源
静态语言如Java,C#,C++等,功能相当强大,但是每做一件事都要添加一大堆引用,进行严格的语法的强制检查,进行编译处理,然后才可以运行。就算是显示一句“Hello World”,都要经过若干个步骤才能完成。对于静态语言来说,运行时动态增加一些特性也比较困难;虽然像C#也加入了DLR,支持动态语言,但是终归说来还是相当麻烦的。而且像Java,C#这种动辄还要安装数十兆的运行环境(JVM,.NET Framework),严重影响了部署感受;而且在当今移动互联网疯狂扩张的年代,在浏览器中要完成一些相当小巧灵活的功能,完全没必要使用这种大型的语言(当然如果是企业级的前后台开发来说,目前还是离不开Java或者ASP.NET的)。
综合上面各种因素,动态语言就火了起来。从古老的JavaScript,Perl,到中年的Python,再到青年的Ruby,它们活跃在网站开发的各个方面,从浏览器端到服务器端。这里不去比较每种语言的优缺点,只是说明一下Ruby相关的历史。Ruby在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto,简称Matz.)开发,Ruby以7月诞生石ruby(红宝石)命名。Ruby是基于Perl等语言发展起来的,是“纯粹的”面向对象语言,由 Ruby 语言本身还发展出了JRuby(Java 平台)、IronRuby(.NET 平台)等其他平台的 Ruby 语言替代品。
二、Ruby的优缺点
Ruby有以下优点:
◆解释器:Ruby是解释型语言,其程序无需编译即可轻松执行;修改完可以直接运行。
◆变量无类型:Ruby的变量没有类型,因此不必为静态的类型匹配而烦恼。相应地,错误检查功能也变弱了。
◆所有变量均无需声明即可立即使用。从变量名即可判断出是何种变量(局部变量,全局变量,实例变量)。
◆扩展性强:可以动态给类添加新的成员。
◆自动垃圾回收(Garbage Collect,GC)功能,能自动回收不再使用的对象。
◆一切都是对象:Ruby是纯粹的面向对象语言,以整数等基本数据类型为首的所有东西都是对象,它们都有发送信息的统一接口。
◆用模块进行混合插入(Mixin):Ruby舍弃了多重继承,但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。
◆迭代器:该功能可以将循环抽象化。
◆闭包:可以将某过程片段对象化。对象化后的该过程片段就称作闭包。
◆功能强大的字符串操作/正则表达式:以Perl为样板创造出了功能强大的字符串操作和正则表达式检索功能。
◆拥有超长整数:添加超长整数功能后,可以计算非常大的整数。例如计算400的阶乘也轻而易举。
◆具有错误处理功能:错误处理功能可以使您编写代码处理出错情况。
◆可以直接访问OS :Ruby可以使用(UNIX的)绝大部分的系统调用。单独使用Ruby也可以进行系统编程。
◆动态加载:若OS支持的话,可以在运行时读入对象文件。
Ruby也有下列缺点:
◆因为Ruby是解释型语言,所以速度较慢,不过对于现在的硬件来说,都是小菜。
◆静态检查比较少,这个也是动态语言的基本特性。
三、安装Ruby
到Ruby站点http://www.ruby-lang.org/en/下载最新的Ruby版本,按照网站的安装说明安装即可,非常简单;在这个站点上还有一些有用的文档可以瞻仰一下。此外,针对不同的运行平台,也可以安装相应的组件,比如JRuby(支持Java的运行环境)等。安装Ruby或JRuby后,需要添加bin目录到Path环境变量(一般自动添加,如果安装完没有添加的,则需要手动添加)。安装完了在cmd命令行中执行 "ruby" / "jruby" 看到版本号说明安装和配置成功。
Ruby Gem:Ruby Gem指的是Ruby可用的一些框架和类库,其中最著名的恐怕就是Ruby On Rails - Web开发的明日之星。凭借这个框架,Ruby也成为了动态语言中Web开发的无冕之王。要玩通这些扩展,是需要Ruby作为基础的,所以安心学好Ruby,然后进阶再学习各种Gem就可以了。
四、运行Ruby程序
如果装的是Ruby,在命令行中打"irb"可以打开命令行交互运行环境(每打一行就执行一次,定义类与方法除外)。也可以先编辑好一个Ruby文件(.rb结尾),然后在命令行中直接打"ruby"运行指定的Ruby文件。Ruby代码文件可以使用任何文本编辑器编辑。如果装的是JRuby则可以使用默认的JRuby的irb编辑器;当然也可以在命令行中直接打"jruby"运行指定的Ruby文件。
Ruby执行过程:总是默认创建一个外围的Object对象main去顺序执行代码。(可以直接执行puts self和puts self.class来验证。)
五、Ruby IDE
在Windows平台下,Ruby常用的编辑工具主要有这几种:Notepad,Notepad++,Eclipse,Netbeans。使用Notepad类似的工具就是比较简单,基本不需要安装额外的东西,但是管理一个工程比较麻烦。重量级的IDE使用最多的就是Eclipse与Netbeans,这两个工具都需要安装JRE与Ruby,然后再安装IDE,占用内存也比较多 ,属于重装上阵 ,但是胜在功能比较强大,从代码编辑到运行,项目创建到管理都比较完善。
1. Eclipse
在Eclipse中编辑Ruby需要安装相应的插件,使用较为广泛的插件主要有两种:Aptana RadRails与Dynamic Languages Toolkit
RadRails插件功能较为强大,使用也较为方便,但是在安装过程中会添加一些非必须的插件和功能。DLTK较为简洁。至于传说中的RDT插件,已经没有人维护了,这里直接忽略。
(1).安装Eclipse
到http://www.eclipse.org/helios/下载3.6版本,解压就可以直接使用了。因为Eclipse每个版本的插件是不通用的,所以不要装最新的3.7版本。
(2).安装插件
安装 Aptana RadRails 插件
从aptana主页 http://www.aptana.com/products/radrails/download 获取插件下载地址(选择Eclipse Plug-in Version): http://download.aptana.com/tools/radrails/plugin/install/radrails-bundle。然后打开Eclipse,点击菜单栏中的"help",在下拉菜单中选择"Install New Software…",在Install窗口中,"Work with"地址栏中填入获取的插件更新地址,等待Eclipse查找插件,等插件出现在列表中后,勾选"Rails"以及子节点"Apatana RadRails",点击"Next"根据提示操作完成安装。安装过程中如果出现警告信息,直接点击"OK"即可。安装Rails插件完成后就可以直接使用了,不需要手动配置Ruby编译器的位置。
安装 Dynamic Languages Toolkit插件
点击Eclipse菜单栏中的"help",在下拉菜单中选择"Install New Software…",在Install窗口中,"Work with"地址栏中选择"Helios – http://download.eclipse.org/releases/helios"。
在下面的选择框中找到“Programming Languages”,点击后展开,找到并选中“Ruby Development Tool - Ruby ...”。点击Next,根据提示完成安装。
安装完成后需要重启Eclipse。重启后点击菜单栏"Window->Preferences",在设置窗口中找到Ruby->Interpreters,点击"Add…"按钮,设置Ruby所在路径。安装完插件后,Ruby源文件的编码格式无法通过更改目录默认编码格式修改,只能对每个Ruby文件进行单独设置。如果要修改Ruby文件系统默认编码格式,点击菜单栏 "Window->Preferences" ,找到"General->Content Types",在Content types窗口中找到并选中"Ruby Source File",修改"Default encoding"输入框中的默认编码,点击"Update"更新设置。注意:若不点击"Update"直接点击"OK"设置将不会生效。
2. NetBeans
NetBeans比较简单,直接到http://netbeans.org/downloads/6.9.1/index.html下载NetBeans For Ruby版本就可以了。需要注意两点:
(1). 7.0版本后不再支持Ruby编辑,所以需要下载6.9.1以及更老的版本。NetBeans相对来说对Intellisense的支持更好一点。
(2). NetBeans需要JRE 6以后的版本,否则的话运行比较慢。
六、经典再现:“Hello World!”
在irb中输入:puts "Hello World",按回车即可。简单吧,这与静态语言的Hello World比起来是不是简单多了。这就是第一个Ruby程序,功能就是输出"Hello World"。欲知后事如何,请听下回分解。