最近看到這篇文章,裡面有一個問題
請問在JVM上跑Rails要幹嘛?
我在這邊講一下為什麼我對 jRuby 的期望那麼深。
我們看一下一段 code ,這是從 Ruby Cookbook 抓下來的範例
#!/usr/bin/env jruby
# random.jrb
require 'java'
include_class 'java.util.Random'
r = Random.new(123)
puts "Some random number #{r.nextInt % 10}"
r.seed = 456
puts "Another random number #{r.nextInt % 10}"
啟動的時候會出現這樣的結果
$ jruby random.jrb
Some random number 9
Another random number 0
我們仔細看到這段 jruby code,他是完完全全的 Ruby 程式,但是他使用 Random Number lib 是使用 JAVA lib。這代表 jRuby 讓 Ruby 可以隨意呼叫 Java Lib 。
Ruby 被 chanllenge 的其中一個地方就是「Third Party Lib 不足」,這個通常需要時間跟社群的持續的累積,但是如果直接使用 Java Lib,那不就是一個「別重新造輪子」的最好例子嗎?jRuby 不也就很直接的解決掉 Ruby Third Party Lib 不足的問題嗎?當然啦,jRuby 還有很多好處,但是最直接,也是最令人興奮的好處就是可以直接使用 Java Lib。
technorati tags:jruby
分享到:
相关推荐
《Asana 0.5.4 与 JRuby-Parser:深入开源项目解析Ruby语法的秘密》 在IT领域,开源项目...开源项目如"jruby-parser"促进了技术的共享和进步,同时也鼓励了社区的创新与协作,这对于IT行业的持续发展具有重要意义。
"rice"可能是一个项目的简称,"core"暗示这是该项目的核心服务部分,而"service-api"则明确表示这个库包含了服务相关的接口定义。.zip格式是常见的文件压缩格式,用于归档和分发多个文件。 描述中提到的"bourbon-...
这里,`-i`表示安装,`-v`表示详细模式,`-h`表示显示进度条。 4. 安装完成后,你可以通过`java -version`命令检查Java是否已成功安装并设置好环境变量。 请注意,JDK7可能不包含最新的安全更新和性能优化,因此...
通过对JRuby和Rubinius(两种Ruby的替代实现)以及Ruby垃圾回收算法的深入探讨,读者可以对Ruby语言的执行、类和模块的内部结构,以及Ruby代码如何被编译器转化为其他语言有一个全面的了解。 首先,Ruby是一种强大...
JDK7,全称为Java Development Kit 7,是Oracle公司发布的Java平台的一个重要版本,其版本号为1.7.0_80,这里的“_80”表示的是该版本的更新次数,而“32bit”则意味着这个JDK是针对32位操作系统的。 JDK7包含了几...
詹姆斯·布里特,ruby-doc.org网站管理员,表示第一版的《Programming Ruby》就是一本智慧、优雅且充满趣味的书,而第二版更是超越前者,成为Ruby学习者的首选资料。 ### 学习Ruby的意义 查德·福勒(Chad Fowler...
3. **动态类型语言支持**:通过引入`invokedynamic`指令,为运行时绑定提供了更大的灵活性,对Groovy、JRuby等动态语言支持有重大意义。 4. **字符串增强**:新增了`switch`语句支持字符串,以及`split()`、`join()`...
标题中的"免安装版 jdk 1.7.0_64"指的是这个版本的JDK是不需要进行传统意义上的安装过程,用户可以直接解压后使用,简化了安装步骤,尤其在某些不支持管理员权限或者希望快速部署Java环境的场景下非常实用。...
6. **动态类型语言支持**:Java 7通过JSR 292提供了对 invokedynamic 字节码指令的支持,使得动态语言(如Groovy、JRuby等)能在Java平台上更高效地运行。 **Linux JDK 安装与配置** 在Linux环境下安装JDK 1.7,...
- Sebastian Hennebrüder认为,在尝试了Java和JRuby的元编程后,发现使用Java单独开发就像是拿着香蕉去参加剑斗一样,而使用Ruby则能更好地应对挑战。 - Jurek Husakowski提到,这本书填补了语言参考手册和编程食谱...
JVM(Java虚拟机)的出现促进了基于JVM的语言发展,如Jython、JRuby、Groovy和Scala等,这些语言利用JVM的优化特性,如垃圾收集、异步I/O和即时编译,实现了更好的性能和开发体验。 #### 系统架构的变迁 软件架构...
- **Duncan Beevers**(Kongregate 开发者)认为本书不仅对 QA 人员有益,也为开发者和项目经理提供了宝贵的信息,有助于理解 QA 和沟通的真正意义。 #### 五、总结 《Scripted GUI Testing with Ruby》是一本难得...
标题中的"seir-41"似乎是一个项目或者模型的标识符,但在这个上下文中,它没有明确的IT含义。描述中的"由肉制成"显然不是与IT或编程相关的表述,可能是一个误解或者是一个玩笑。标签是"Ruby",这指的是一个流行的...
"第十亿个t子克隆 迭代一"这部分描述可能是指项目的迭代版本,它可能是一个实验性的或者测试性质的阶段,代表了开发过程中的一个里程碑。"t子"在这里可能是一个缩写或代号,具体含义需要更多的上下文信息来解读。 ...
这些类型提供了数值计算和简单数据表示的基础。 - **封装的意义**: - **增加灵活性**: 封装后的类型不仅包含了原始值,还包含了一系列方法,如`toString()`、`valueOf()`等,这使得开发者可以更方便地操作这些数据...
"扎科普基"这个词在IT领域,特别是在编程和软件开发的上下文中,并没有特定的专有名词含义。可能这是一个项目名或某个特定的工具、库的名称,但具体信息不足,无法提供详细的解释。不过,既然标签是"Ruby",我们可以...