Nick Sieger: JRuby Serial Interview 1 http://blog.nicksieger.com/articles/2007/01/06/jruby-serial-interview-1 en-us 40 JRuby Serial Interview 1 <p><em>In cooperation with <a href="http://on-ruby.blogspot.com/">Pat Eyler</a>, we present this conversation as a parallel thread to his recent string of <a href="http://on-ruby.blogspot.com/2007/01/rubinius-serial-interview-episode-iii.html">Rubinius &#8220;serial&#8221; (ongoing) interviews</a>&#46; We aim to bring short, frequent, looks at the two alternate Ruby implementations&#8217; developments, and have the conversations intersect from time to time&#46;</em></p> <p><strong>A lot has happened since the <a href="http://on-ruby.blogspot.com/2006/10/jruby-interview-part-2.html">last JRuby interview with Pat</a> &#45;&#45; Java was open&#45;sourced, you&#8217;ve been to Javapolis, pushed out another release, and a slew of new contributions have poured in&#46; How have your plans and goals for JRuby changed (if at all) since then?</strong></p> <p><em>Charles Nutter:</em> For me the biggest items are the following, in order:</p> <ul> <li>We need to announce full Rails support as soon as possible</li> <li>We need to resolve the remaining runtime performance bottlenecks</li> <li>We need to keep working on the compiler</li> </ul> <p>All these of these have been the hot topics on the JRuby mailing lists lately&#46; I&#8217;ve launched into a newly&#45;refactored compiler that&#8217;s showing great performance gains&#46; Many of us have discussed how to speed method dispatch and finally push interpreted&#45;mode performance up to or beyond Ruby&#8217;s speed&#46; And we&#8217;ve started to test and track Rails 1&#46;2, while continuing to resolve remaining issues running Rails 1&#46;1&#46;6&#46;</p> <p>Now there&#8217;s a lot of work to do, but we&#8217;ve seen steady, continuous growth among JRuby contributors&#46; Just in the past week we&#8217;ve had a number of new names on the mailing lists, we&#8217;ve added a new committer (Nick Sieger), and we&#8217;ve seen patches pouring in for more and more bugs&#46; Things are going great&#46;</p> <p><em>Ola Bini:</em> I was very happy about the last release&#46; It fulfilled the goals I had set for it, which was to get OpenSSL and complete Java&#45;backed YAML into it&#46; Besides that, we also got seriously many bugs fixed in just a few months&#46; Since I have a tendency to plan mostly for the next release, what I want to see in 0&#46;9&#46;3 is support for Sandbox, all those strange block scope bugs that surface in Rails gone, our load times improved (by refactoring the LoadService code), and finalizers finally working&#46;</p> <p>The Sandbox stuff is mostly done, and I also hacked a Generator that is so much faster than MRI that we come out faster, all in all, in a test case with generators&#46;</p> <p><em>Thomas Enebo:</em> Largely, I think three goals are important: 1&#46; Support Rails well enough where people do not need to ask us if it is ready for prime time; 2&#46; Round out java integration support to do what most people expect it to do; 3&#46; Make the runtime &#8216;fast&#8217; enough&#46; These three goals existed before JavaPolis, so I do not feel much has changed goal&#45;wise&#46;</p> <p><strong>How much closer have you come to achieving them? What is your perception of delta in growth in the JRuby community and acceptance of JRuby as a viable alternative to MRI?</strong></p> <p><em>Ola Bini:</em> What I like about the last few months &#45; since RubyConf &#45; is that it really feels like JRuby and the other implementations will actually be viable alternatives and that there is something really useful going on&#46; With Java open source, one of the major roadblocks for adoption in certain circumstances has all but disappeared&#46; The contributions we have gotten is mostly visible in how many bug reports we get&#46; That is really great, because that makes it that much easier to fix things&#46; So I would say that the future looks brighter than ever&#46;</p> <p><em>Thomas Enebo:</em> If you look at the amount of time between releases then you get a better idea of how much development has sped up&#46; The time between 0&#46;9&#46;1 and 0&#46;9&#46;2 was a little under two months&#46; This is the shortest development cycle to date and it seemed like we got so much done&#46; Sun hiring us obviously had something to do with this, but also our community involvement is at an all time high&#46; We get so many emails, bug reports, patches, tests, ideas, and enthusiasm coming in from the JRuby community&#46; The community impact on JRuby is huge&#46;</p> <p>I think acceptance of JRuby as a Ruby interpreter is certain&#46; Compatibility keeps improving, we keep getting faster, and we also offer integration with Java&#46; If you look at the trend of how often JRuby is mentioned in blogs or the volume of email on our mailing lists, then I think you can get a picture as to whether people are willing to accept JRuby as a Ruby runtime&#46;</p> <p><em>Charles Nutter:</em> Rails is probably the most visible measure of success for JRuby right now, and I&#8217;d say we&#8217;re able to run something like 75% of Rails 1&#46;1&#46;6 code and test cases&#46; We&#8217;ve been using Rails&#8217; own test suite as a yardstick for compatibility, with the idea that if we can run all the Rails test cases, we can say we support it&#46; And that 75% is better than it might sound, since it&#8217;s the most heavily&#45;used functions&#46;</p> <p>Now this might change, but we&#8217;re really hoping to claim full Rails support some time in February&#46; We&#8217;re not sure if that will mean 90% of 1&#46;1&#46;6 test cases or 100% of 1&#46;2 test cases, but we&#8217;re weighing options now&#46; Finally having Rails support behind us will let us change focus toward outward to other applications and inward to improving JRuby internals and performance&#46;</p> <p>We&#8217;re also seeing daily gains in the performance area, with more to come&#46; Since this past summer, we&#8217;ve managed to eliminate all the major performance bottlenecks seen when profiling&#46; The only remaining area is the interpreter itself&#46; My work on the compiler will eventually resolve that, and our work to improve the performance of method lookup and dispatch will help both interpreted and compiled execution&#46; Everything&#8217;s moving very fast now&#46; It&#8217;s going to be a great Spring for JRuby&#46;</p> <p>Probably the most intriguing change of the past month is the support from Aslak Hellesøy, creator of RSpec&#46; Aslak has helped us get JRuby running RSpec extremely well, and we&#8217;re looking forward to the RSpec team using JRuby as part of their regression testing&#46; I hope more Ruby app developers will take this same path, since their users are going be running JRuby more and more&#46; Compatibility and regression testing for those apps should include JRuby just like it includes different Ruby versions and host operating systems&#46;</p> Sat, 06 Jan 2007 18:21:56 +0000 urn:uuid:9e1be030-f95c-4b22-8b48-4443c58302f5 Nick Sieger http://blog.nicksieger.com/articles/2007/01/06/jruby-serial-interview-1 jruby ruby jrubyserialinterview http://blog.nicksieger.com/articles/trackback/183