NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

NetBeans:Ruby 开发者的新伙伴

  • 2007-11-01
  • 本文字数:2986 字

    阅读完需:约 10 分钟

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 采用推断的方法去猜测类型,并据此提供代码完成中的选项。

代码完成会随着你的打字而减少可选项的数量,直接回车就可以把选中的文字填到编辑器里。

你可以看到每个方法的模块,以及方法接受的参数。除了帮你快速地补完方法 / 类 / 模块的名称,代码完成还可以给你帮很多忙。其中很有用的一项就是代码完成会显示每个类、方法、模块、关键字等等的文档(RubyDoc)。

对于初学者和从其他语言迁移过来的开发者,近在指端的文档是特别有帮助的——你可以用代码完成功能一边开发一边学习 API。这样去学习一门语言及其 API,比起预先学会所有的细节的方式要友好得多。而且,许多开发者都喜欢边实验边学习,Ruby 干净整洁的语言和 API 会让这个过程更加容易更加愉快。

代码完成在你输入 Require 语句的时候也能发挥作用:

NetBeans 的代码完成还有一个很有用的特性,它支持正则表达式。除非你能记住正则表达式所有的符号组合,不然这个特性是很便利的“

类似地,如果你记不住一个 $ 变量的名字和意义,或者 % 开头的转义代码,NetBeans 会帮你:

我在这里仅仅介绍了一些基本的特性,代码完成还有很多很多办法让你日子过得轻松一些。在用 NetBeans 进行 Ruby 开发的时候,你绝对会发现 Ctrl-Space 是你最爱用的快捷键。

2. 图形化的 Ruby 调试器

多数 Java 开发者都离不开调试器。然而,Ruby 的调试一直都是一大难题。NetBeans 给 Ruby 提供了一个图形化的调试器,与 Java 调试器很相像。你可以在代码里插入断点,然后以调试模式运行程序,程序就会如愿在第一个断点处停下来。此时你可以观察各种视图,如本地和全局变量;你可以加入监视条件;查看调用栈;切换线程,等等。如果你把鼠标停留到代码中的任何元素上,该表达式的当前值就会被计算出来立即显示在你面前。

在上面的截图中可以看到,NetBeans 还支持 RHTML 调试,你可以很方便地一步步检查 RHTML 页面。

3. Ruby 重构和快速修补

重构 Ruby 代码一直都繁琐到令人痛苦:要想改一个方法名,你不得不把它出现的所有地方都改一遍。在 NetBeans 里这个过程被自动化了,你可以搜索任何方法 / 类 / 变量的使用情况,也可以调用重命名重构功能去修改元素的名称。下面是使用查找使用情况命令的一个例子:

重命名重构功能让你在一个专门的视图里修改所有引用:

NetBeans Ruby 支持在以后的版本里,还会提供其他重构功能,包括提取方法、提取本地变量等等。

IDE 有时候会检测到代码里的变量冲突,可能使代码不符合用户的意图。在这种情况下,IDE 可以提供一个“快速修补”,让用户便捷地修正代码:

在上面的截图中,块变量和本地变量的名字相同,会导致代码出现副作用;于是 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 文档主页

在本系列的后续文章中,我们将讨论更多 Ruby 支持的特性,以及其他一些主题,比如如何影响这个项目和它的未来计划。与此同时,请务必试试 NetBeans 中的 Ruby 支持。如果你经常用 Ruby 开发,你会发现 NetBeans 正是你一直在寻找的 IDE!

查看英文原文: NetBeans: Ruby Developer’s New Best Friend

2007-11-01 23:363128
用户头像

发布了 225 篇内容, 共 60.9 次阅读, 收获喜欢 50 次。

关注

评论

发布
暂无评论
发现更多内容

QCN9274+QCN9074 chip: efficient and stable Wi-Fi 6 solution

wifi6-yiyi

wifi6 WiFi7

亚信科技荣任「DBL电信行业工作组」副组长单位,AntDB数据库连年入选《中国数据库产品图谱》

亚信AntDB数据库

AntDB 数据库· AntDB数据库 企业号 7 月 PK 榜

ChatGPT的探索与实践-业务应用篇 | 京东云技术团队

京东科技开发者

人工智能 ChatGPT 企业号 7 月 PK 榜

Debian11系统编译安装Redis教程。

百度搜索:蓝易云

redis 云计算 Linux 运维 Debian

MobPush Android For Unity

MobTech袤博科技

开发者 前端 Unity Android; Java’

引领AI变革,九章云极DataCanvas公司重磅发布AIFS+DataPilot

九章云极DataCanvas

DDD架构为什么应该首选六边形架构? | 京东云技术团队

京东科技开发者

分层架构 架构设计 企业号 7 月 PK 榜 六边形架构

当你成为一个Tech Lead

码猿外

技术管理 Tech Lead

TDengine 的查询性能与老牌时序数据库相比如何?来看看

爱倒腾的程序员

数据库

火山引擎DataLeap如何解决SLA治理难题(二):申报签署流程与复盘详解

字节跳动数据平台

大数据 数据中台 数据研发

国赛线下开赛!全国智能车百度智慧交通创意组区域赛今日正式拉开帷幕!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

Debian11系统编译安装Memcached教程。

百度搜索:蓝易云

memcached 云计算 Linux 运维 Debian

聊聊Spring注解@Transactional失效的那些事 | 京东云技术团队

京东科技开发者

spring Transactional @Transactional 企业号 7 月 PK 榜 注解失效

ChatGPT火热之下的冷思考

这我可不懂

AIGC ChatGPT

一文让你了解全媒体广告投放。轻轻松松搞定全媒体信息流广告投放代理!

陈老师讲创业

全媒体互联网广告 全媒体广告投放代理 招商加盟 信息流广告

高性能网络设计秘笈:深入剖析Linux网络IO与epoll

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

缕析条分Scroll属性 | 京东云技术团队

京东科技开发者

前端 DOM ScrollView ScrollView(滚动条) 企业号 7 月 PK 榜

直播软件源码开发搭建提高安全性方案——山东布谷科技创作

山东布谷科技

源码 软件 软件开发 直播 源码搭建

ChatGPT赋能Scrum实践

俞凡

人工智能 Scrum 敏捷开发 ChatGPT

LeetCode题解:2618. 检查是否是类的对象实例,使用instanceof

Lee Chen

JavaScript LeetCode

升级数智底座是数智化2.0时代的核心诉求

用友BIP

数智底座

Last Week in Milvus

Zilliz

Milvus Zilliz AIGC cvpstack

只有1%的人才知道的ChatGPT写作技巧

俞凡

人工智能 ChatGPT

安装Ingress-Nginx

tiandizhiguai

云原生 k8s

ChatGPT助力DevOps的优势与局限

互联网工科生

DevOps 自动化运维 ChatGPT

认识高性能服务治理框架 Kmesh

openEuler

Linux 开源 操作系统 openEuler 服务网格

小动作牵动大文明,“大运空瓶行动”从你我做起

新消费日报

IPQ8072|XGS-PON|Dual Band 10GbE Wifi6 Industrial SBC DR8072V01

wallyslilly

用ChatGPT挣钱的五种思路

高端章鱼哥

机器人 零售行业 ChatGPT

Win11 搭建SD WebUI环境 | 社区征文

IT蜗壳-Tango

AIGC Stable Diffusion 年中技术盘点 SD

浅谈一下自动化运维优点和缺点,哪款工具好?

行云管家

自动化 IT运维 自动化运维

NetBeans:Ruby开发者的新伙伴_Java_Roman Strobl_InfoQ精选文章