{{ !articles[0].partner.isSponsoringArticle ? "Platinum" : "Portal" }} Partner

Interview: Tom Enebo, from the NetBeans Ruby Project

Last week, in "Ruby On NetBeans Lives!" Tom Enebo (pictured, right) announced the start of a community project to support Ruby development in NetBeans IDE. Time to meet Tom, to remind ourselves who he is and to see what plans he's got up his sleeve.

Hi Tom, can you start by introducing yourself?

Hi. My name is Thomas Enebo.  I am a co-lead of the JRuby project which has been my day job for a number of years now. I used to actually work for the NetBeans organization when I was first hired to work on JRuby full-time for Sun Microsystems. I got to know quite a few people in the NetBeans group and I have an affection for the project.  In particular, I like NetBeans' Ruby support and its Java support too, of course.

So, what’s your interest in keeping the NetBeans Ruby support alive?

There are two simple answers:

  1. It is an excellent cluster/module.  The Ruby support is very good.  Seeing it step-debug through a Rails Erb template and seeing live object state makes your mouth water.  It would be very sad to see this much good software just go away.

  2. Java programmers love their IDEs (myself included).  Having Java and Ruby support in the same IDE is very good for the adoption of Ruby and in particular JRuby.  If you never have to leave your main day-to-day tool, it eliminates one reason not to give Ruby or Ruby on Rails a chance.

How do you plan to do this?

The plan is to engage as many people as possible to work on this project.   In order to engage contributors, you need to help make the project as attractive as possible.  There are two new things that will help do this:

  1. Mirror the official Ruby NetBeans repository on github.com.  Rubyists love git and I think this will raise the visibility of the project quite a bit.

  2. Start writing portions of Ruby NetBeans source in Ruby, in addition to continuing writing portions in Java. Virtually all committers will be Ruby programmers and we will get a lot more mind-share leveraging Ruby. It will also be easier for non-Java Rubyists to submit patches. 

What are the priorities in terms of features and bugs you’re going to work on?

A base objective is to make it as easy as possible to get started on hacking Ruby NetBeans (NB).  So far in my journey of building Ruby NB, I have had to hg clone about 1.2 Gb of NetBeans source.  That is a pretty big requirement to a new developer who wants to submit a patch. I also ran into some build-time issues (which look like small environment issues).

Once we have that set up...My list of items I think are most important:

  1. Rails 3
  2. Bundler support
  3. 1.9 syntax
  4. Crashers

I will probably start on 1.9 syntax, since that is one of my areas of expertise (for those who don’t know, NetBeans uses a project JRuby offers called JRubyParser).  Others can sign up for what interests them.

Has a start been made already and/or what’s the roadmap you have in mind?

Since no-one on this project will be doing this as their day job, I think we will need to see the level of contribution we are able to attract before we can outline specific timelines. 

I have been starting to look at unbundling JRuby source which has been committed to NetBeans repository (we should just be able to use a released jruby-complete.jar), but at this stage we need to get the 0-60 experience of compiling Ruby NetBeans much simpler before we can determine what can get done.  Also, get the github mirror setup properly.

Certainly, a first release goal is to make sure we squash any existing crashers.

How will your enhancements be committed back into the source base?

I answered this a little bit above, but initially I will be accepting patches and comitting them directly to the NetBeans hg repository.  Once we have things ironed out a bit we will look at adding additional committers; and hopefully having a github mirror simplifies the need for getting lots of NetBeans hg committers.

Thanks Tom and hope to hear more about these plans as they develop!

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks