Google Summer of Code
Google has again decided to run it's Summer of Code - funding students to work on open source projects. Unfortunately, last year Ruby wasn't able to get in by the deadline, but this year David Black made sure Ruby Central was a participating organization. We had 14 mentors signup and (last count I saw) 84 student proposals.
The proposal review period is over and project allocations have been announced. Ruby Central received funding for 10 proposals, and the successful projects have been announced.
Among those accepted projects is work by Jason Morrison on RDT! He's a student at RIT (my alma mater) who helped start up our local Ruby/Rails group. I'll be his mentor, and he'll be working on trying to improve RDT to do some code resolution and type inferrence in an effort to improve code completion and other features (such as marking occurences of variables) for our project. Hopefully he'll also be releasing some sort of white paper/documentation to benefit the greater Ruby community beyond RDT/JRuby.
Thansk to Jason for the great proposal, and expect to see some more news about his work here in the future.
Ruby Can Learn From Perl
I followed an interesting link off of Tim Bray's posting, which explains the differences in Java and Perl regex performance. The original article posted by Tim Bray notes his surprise that Java actually beats Perl in terms of the performance of regexes. However, it seems that Perl is losing the benchmark because they've implemented a better way to decrease some exponential matches to linear time. So the question is, is the tradeoff worth it? And if it is, then Ruby could stand to gain from implementing something similar to Perl.
Here's a simple test case, which shows that Ruby falls in the same camp as Java - they don't handle the edge case in favor of keeping faster general regex. Run the following script and try increasing that 20 by one each run and see how the amount of time to finish increases - it's frightening.
string = ""
20.times { string << "foo "}
string << "fo"
start = Time.now
string.match(/^(\s*foo\s*)*$/)
end_time = Time.now
puts "finished in #{end_time - start} seconds" Using the Ruby Development Tools plug-in for Eclipse
I just noticed today that there's a nice new article up on IBM's developerworks entitled Using the Ruby Development Tools plug-in for Eclipse. The article gives a nice little overview of using the Ruby Development Tools Plugins within Eclipse and developing Ruby code with them. The article ends by incorrectly stating that the current release is 0.5.0, we've launched 0.6.0 with a significant number of new features. Hopefully this will help drum up some new users and even developers for the plugins!
From Java to Ruby
I've written up a nice summary page to help Java programmers transition from Java to Ruby (with love). This is for all those Java programmers interested in taking a peek at Ruby, but don't know where to start. I've gathered up a bunch of useful links and information to help you check out the language.