免费注册 查看新帖 |

Chinaunix

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

Ruby札记1 - 安装、运行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-30 15:14 |只看该作者 |倒序浏览
Ruby札记1 - 安装、运行










一、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站点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的优缺点

  Ruby有以下优点:
  ◆解释器:Ruby是解释型语言,其程序无需编译即可轻松执行;修改完可以直接运行。
  ◆变量无类型:Ruby的变量没有类型,因此不必为静态的类型匹配而烦恼。相应地,错误检查功能也变弱了。
  ◆所有变量均无需声明即可立即使用。从变量名即可判断出是何种变量(局部变量,全局变量,实例变量)。
  ◆扩展性强:可以动态给类添加新的成员。

  ◆自动垃圾回收(Garbage Collect,GC)功能,能自动回收不再使用的对象。
  ◆一切都是对象:Ruby是纯粹的面向对象语言,以整数等基本数据类型为首的所有东西都是对象,它们都有发送信息的统一接口。

  ◆用模块进行混合插入(Mixin):Ruby舍弃了多重继承,但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。

  ◆迭代器:该功能可以将循环抽象化。
  ◆闭包:可以将某过程片段对象化。对象化后的该过程片段就称作闭包。
  ◆功能强大的字符串操作/正则表达式:以Perl为样板创造出了功能强大的字符串操作和正则表达式检索功能。
  ◆拥有超长整数:添加超长整数功能后,可以计算非常大的整数。例如计算400的阶乘也轻而易举。
  ◆具有错误处理功能:错误处理功能可以使您编写代码处理出错情况。
  ◆可以直接访问OS :Ruby可以使用(UNIX的)绝大部分的系统调用。单独使用Ruby也可以进行系统编程。
  ◆动态加载:若OS支持的话,可以在运行时读入对象文件。  

  Ruby也有下列缺点:
  ◆因为Ruby是解释型语言,所以速度较慢。
  ◆静态检查比较少。

五、经典再现:“Hello World!”

  在irb中输入:puts "Hello World",按回车即可。简单吧,这与静态语言的Hello World比起来是不是简单多了。这就是第一个Ruby程序,功能就是输出"Hello World"。欲知后事如何,请听下回分解。

论坛徽章:
0
2 [报告]
发表于 2011-12-30 17:12 |只看该作者
希望与楼至多多交流

论坛徽章:
0
3 [报告]
发表于 2012-01-01 13:10 |只看该作者
Ruby也有下列缺点:
  ◆因为Ruby是解释型语言,所以速度较慢。
  ◆静态检查比较少。

从目前流行趋势来看,这个变优点了。

论坛徽章:
0
4 [报告]
发表于 2012-01-01 13:11 |只看该作者
本帖最后由 2gua 于 2012-01-01 13:11 编辑

不是解释型的语言,现在都不好意思说了。

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
5 [报告]
发表于 2012-01-02 22:18 |只看该作者
Ruby的Hello World比起静态语言来是简单多了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP