扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
NetBeans是一个广受欢迎且功能强大的Java IDE,由Sun Microsystems在2000年开放源码。随着用户社区的增长,如今已成为行业中一个主要的IDE。在2007年,NetBeans开始将功能扩大到支持许多其他语言,包括Ruby在内。
在这里,你会看到NetBeans为Ruby开发者提供的许多便利,其中一些特性还是其他IDE身上找不到的。我们还会谈到Ruby工具项目的一些背景,获取NetBeans软件的必要信息,如何配置IDE,以及如何为这个项目贡献力量。
为什么Sun投资于Ruby?
Sun Microsystems向Ruby如此大手笔地投入可能有些令人惊讶,毕竟Ruby作为一种语言与Java有所竞争。为了理解Sun的动机,我们需要把Java看作是一个平台。Java不仅是一门编程语言,还是一个虚拟机以及一整套API。与过去不同,如今的Java虚拟机(JVM)支持多种语言。JVM不再只是Java一家的事情,Sun在JDK 6中捆绑了Rhino JavaScript解释器也明确体现了这一点。
Sun认识到动态语言的价值——Java语言仍然是大型企业应用的最佳选择,但Ruby这类动态语言在特定领域中非常高效,例如原型验证、Web开发或者粘合各种应用。在2006年,Sun雇佣了JRuby项目的主要开发者——Thomas Enebo和Charles Oliver Nutter——去进一步探索将Ruby集成到Java平台的不同方式。(JRuby是完全用Java编写的一个Ruby实现。)2007年6月发布的1.0版标志着JRuby项目达到了一个重要的里程碑。
使用JRuby,开发者可以得到Java平台的许多优势,比如访问Java API和方便的部署。Java平台存在着大量的类库(其中大多数是开源的),因此Ruby开发者如果在JRuby之上运行Ruby代码,就能够享受到直接访问这些类库的便利。JRuby能将Ruby带到之前不曾进入的领域。能想象在大型机上运行Ruby吗?JRuby使之成为可能。Java平台有许多解决伸缩性、安全、维护、部署等等企业应用问题的方案,同样由于JRuby,Ruby开发者也能够从中得益。
Sun总是通过NetBeans为它的各种技术提供工具支持,JRuby也不例外。即使你是纯粹的Ruby或者Rails开发者,对JRuby一点都不感兴趣,NetBeans仍然是一件合适的工具。NetBeans Ruby IDE用JRuby作为默认的运行时,但你可以在选项对话框中将JRuby换成原生的Ruby——只要告诉NetBeans你的Ruby安装在哪里。因此无论是想探索动态语言领域的Java开发者,还是对Java一点都不感兴趣的Ruby/Rails开发者,NetBeans都是值得尝试的。
NetBeans中Ruby支持的三大亮点
让我们先看看我觉得在NetBeans中开发Ruby极其有用的三项特性:
1、无处不在的代码完成
“代码完成”是一个上下文敏感的弹出窗口,给用户提示一些最可能的方法、类或者模块。用户可以在编辑器中按下“Ctrl-Space”来调用它。代码完成是Java开发者们熟知并深为喜爱的——所有现代Java IDE都提供了这个功能。然而,对Ruby来说,实现一个完善的代码完成功能是一件困难的任务,因为在Ruby语言里类型是没有声明的。因此IDE采用推断的方法去猜测类型,并据此提供代码完成中的选项。
代码完成会随着你的打字而减少可选项的数量,直接回车就可以把选中的文字填到编辑器里。
图1 |
你可以看到每个方法的模块,以及方法接受的参数。除了帮你快速地补完方法/类/模块的名称,代码完成还可以给你帮很多忙。其中很有用的一项就是代码完成会显示每个类、方法、模块、关键字等等的文档(RubyDoc)。
图2 |
对于初学者和从其他语言迁移过来的开发者,近在指端的文档是特别有帮助的——你可以用代码完成功能一边开发一边学习API。这样去学习一门语言及其API,比起预先学会所有的细节的方式要友好得多。而且,许多开发者都喜欢边实验边学习,Ruby干净整洁的语言和API会让这个过程更加容易更加愉快。
图3 |
代码完成在你输入Require语句的时候也能发挥作用:
图4 |
NetBeans的代码完成还有一个很有用的特性,它支持正则表达式。除非你能记住正则表达式所有的符号组合,不然这个特性是很便利的。
图5 |
类似地,如果你记不住一个$变量的名字和意义,或者%开头的转义代码,NetBeans会帮你:
图6 |
图7 |
我在这里仅仅介绍了一些基本的特性,代码完成还有很多很多办法让你日子过得轻松一些。在用NetBeans进行Ruby开发的时候,你绝对会发现Ctrl-Space是你最爱用的快捷键。
2、图形化的Ruby调试器
多数Java开发者都离不开调试器。然而,Ruby的调试一直都是一大难题。NetBeans给Ruby提供了一个图形化的调试器,与Java调试器很相像。你可以在代码里插入断点,然后以调试模式运行程序,程序就会如愿在第一个断点处停下来。此时你可以观察各种视图,如本地和全局变量;你可以加入监视条件;查看调用栈;切换线程,等等。如果你把鼠标停留到代码中的任何元素上,该表达式的当前值就会被计算出来立即显示在你面前。
图8 |
图9 |
在上面的截图中可以看到,NetBeans还支持RHTML调试,你可以很方便地一步步检查RHTML页面。
3、Ruby重构和快速修补
重构Ruby代码一直都繁琐到令人痛苦:要想改一个方法名,你不得不把它出现的所有地方都改一遍。在NetBeans里这个过程被自动化了,你可以搜索任何方法/类/变量的使用情况,也可以调用重命名重构功能去修改元素的名称。下面是使用查找使用情况命令的一个例子:
图10 |
重命名重构功能让你在一个专门的视图里修改所有引用:
图11 |
NetBeans Ruby支持在以后的版本里,还会提供其他重构功能,包括提取方法、提取本地变量等等。
IDE有时候会检测到代码里的变量冲突,可能使代码不符合用户的意图。在这种情况下,IDE可以提供一个“快速修补”,让用户便捷地修正代码:
图12 |
在上面的截图中,块变量和本地变量的名字相同,会导致代码出现副作用;于是IDE向你提供将变量改名的选项去解决这个问题。
这里只是NetBeans让你过得更加轻松的几个例子。我会在本系列的后续文章中继续介绍其他编辑功能。
从哪里获得NetBeans Ruby IDE
要获得NetBeans Ruby支持有几种方式。其一是访问NetBeans 6.0下载页面获取NetBeans完全版,里面已经包括了Ruby支持:http://dlc.sun.com/netbeans/download/6.0/milestones/latest
如果你只想安装精简版的Ruby IDE,你可以从这里下载:http://deadlock.netbeans.org/hudson/job/ruby 。
获取Ruby模块的还有一种方式是先安装基本的Java IDE,然后转到IDE中的插件管理器(Tools | Plugin Manager),让NetBeans从网上下载并安装各种模块。
目前,NetBeans Ruby支持还只是一个预览版。不过我们知道很多开发者已经在商业应用开发中使用它,还有很多Bug等着在最终版中修复。如果你发现任何Bug,请向NetBeans的 Issuezilla系统报告:http://www.netbeans.org/kb/articles/issuezilla.html 。
更多信息
你可以在Wiki页面上找到NetBeans Ruby支持的更多信息。
我们也录制了一些截屏录像,重点演示了各种新特性:
http://www.netbeans.org/download/flash/jruby_on_rails/jruby_on_rails.html和http://www.netbeans.org/download/flash/jruby_editing/jruby_editing.html。
其他演示和教程请移步Ruby文档主页。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。