RubyConf 2007

(The sessions at RubyConf 2007 were recorded by Confreaks, and will hopefully be available soon on the web. I'll update this post with a link when they are.)

Ropes: an alternative to Ruby strings by Eric IvancichInteresting. Strings havealways been a problem area in various ways, SGI'sropes provides an interesting solution for someuse cases. In particular, Strings always show up as pigs in Java memory usage, what with the many, long-ish class names and method signatures, that have lots of duplication internally; I wonder if something like ropes might help.

Ruby Town Hall by MatzDidn't take any notes, but the one thing that stuck out for me was the guy from Texas Instrumentswho said they were thinking of putting Ruby in one of their new calculators. He askedMatz if future releases would be using the non-GPL'd regex library, as the TI lawyerswere uncomfortable (or something, can't remember the exact words) with it (the licensing). See alsothe notes under Rubinius, below, regarding licensing.

But the big news for me, from this question, was the calculator with Ruby.Awesome, if it comes to be. I talked to the guy later and he indicated it was,as I guessed/hoped, the TI-Nspire. Sadly, he also indicated thecalculator probably wouldn't be available till mid-2008.

IronRuby by John LamDidn't go into enough technical depth, sadly. And the technical presentation included infoon the DLR and then XAML, which I don't think were really required.John had a devil's tail attached to his jacket or pants,which appeared about half way through the presentation. Really, I think everyone seemed to be quiteopen to IronRuby, no one seems to be suggesting it's evil or anything. Are they?

JRuby by Charles Nutter and Thomas EneboLots of good technical info. Tim Bray did a very brief announcement at the beginning aboutsome kind of research Sun is doing with a university on multi-VM work; sounded like it didn't involve Java, and given the venue, I assume it had something to do with Ruby.Sounds like we'll hear more about it in the coming weeks.

The JRuby crew seems to be making great progress, including very fresh 1.0.2 and 1.1 beta 1 releases.

One thing that jumped right out at me when the 'write a Ruby function in Java'capability was discussed, was how similar it seemed to me to what I've seenin terms of the capabilities of defining extensions in the PHP implementationprovided in Project Zero. That deserves some closer investigation. It wouldbe great if we could find some common ground here - perhaps a path to a nirvana of defining extension libraries for use with multiple Java-based scripting languages?

I happened to hit the rubini.us site a few times this weekend, and at one point noticed thefollowing at the bottom of the page: Distributed under the BSD license. It's been a while since I looked at the Ruby implementations, in terms of licensing, but I like the sound of this, because I know some of theother implementations' licenses were not completely permissive (see Ruby Town Hall above). Ruby has still not quite caught on in theBigCo environments yet, and I suspect business-friendly licensing may be needed to make that happen. It certainly won't hurt.

Mac OS X Loves Ruby by Laurent SansonettiOh boy, does it ever. Laurent covered some of the new stuff for Ruby in Leopard, and had peopleaudibly oohing and ahhing. The most interesting was the Cocoa bridge, which allows you to buildCocoa apps in Ruby, using XCode, which (now?) supports Ruby (syntax highlighting, code completion?).Most of the oohing had to do with the capability of injecting the Ruby interpreter into runningapplications, and then controlling the application from the injector. Laurent's example wasto inject Ruby into TextEdit, to create a little REPL environment, right in the editor. Lotsof ooh for the scripting of Quartz Composer as well.

Apple also now has something called BridgeSupport which is a framework whereby existingC programming APIs (and Objective C?) are fully described in XML files, for use by frameworkslike the Cocoa bridge, as well as code completion in XCode. That's fantastic. I've had todo this kind of thing several times over the years, and, assuming the ideas are 'open',it would be great to see more people step up to this, so we can stop hacking C headerfile parsers (for instance). And I think I could live with never having to writea java .class file reader again, thankyouverymuch.

I suspect all this stuff is available for Python as well.

Laurent also showed some of the DTrace support. No excuse not to look at DTrace now.Well, once I upgrade to Leopard anyway.

Someone asked "Will Ruby Cocoa run on the iPhone?" Laurent's reply: "Next question".Much laughter from the crowd. Funny, in a sad way, I guess.

Matz KeynoteMatz covered some overview material, mentioned Ruby will get enterprisey: "Thesuit people are surrounding us".He then dove into some of the stuff coming in 1.9.Most of it sounds great, except for the threading model moving from green threadsto native threads, and a mysterious new loop-and-increment beast, which franklylooked a bit too magical to me. The green vs. native threads thing is personalpreference of mine; I'd prefer that languages not be encumbered with thethreading foibles provided by the platform they're running on. Green threadsalso give you much finer control over your threads. On the other hand,given our multi-core future, I think there's probably no way to avoid interacting with OS-level threads, at some level.

Behaviour Driven Development with RSpec by David Chelimsky and Dave AstelsI really need to catch up on this stuff, I'm way behind the times here. They showedsome new work they were doing that better captured design aspects like stories,including executable stories, with a web interface that can be used to buildthe stories. That's going to be some fun stuff.Presentation available as a PDF.

Controversy: Werewolf considered harmful?Charles Nutter wonders ifthe ever-popular game is detracting from collaborative hack-fests. The game certainly is quite popular.I played one game, my first, and it was a bit nerve-wracking for me. But then, I was a werewolf, and the lastone killed (the villagers won), the game came down to the final play, and I'm a lousy liar.

I kept notes again on a Moleskine Cahier pocket notebook,which works out great for me. Filled up about 3/4 of the 64 pages, writing primarily on the 'odd' pages, leaving the 'even' pages for other doodling, meta-notes, drawing lines, etc. I can get a couple of days in one notebook. The only downsideis you need something to write on, for the Cahiers, for support, and the last half of the notebook pagesare perforated. I don't really need the perforation, but it wasn't a big problem. They endup costing about $2 and change for each notebook.

I was, like usual, primarily surfing during the conference on my Nintendo DS with the Opera browser; good enough to twitter, check email, check Google Reader. It'sa good conversation starter, also. At one point, a small-ish, slightly scruffy Asiangentleman leaned over my shoulder to see what in the world I was doing, so I gave him my little spiel on how it was usable for the simple stuff, yada yada.He seemed amused.