Everything you wanted to know about Ruby.NET
Recently Wayne Kelly spoke at the Brisbane Ruby and Rails Brigade about Ruby.NET (code repository).
We figured he was some authority figure on the topic, as he wrote it, together with some other members of his QUT department, plus a growing number of Ruby.NET users and contributors.
Local Microsoft officialdom sponsored the show with pizza and then drinks afterwards. Ok, I’m understating that - Charles Sterling is an ex-.NET project manager, who is now in Oz for a Tour of Duty as an Evangelist. In his capacity as an evangelist, he giveth us thy pizza. Twas tasty too.
I believe Ruby.NET is in direct competition with IronRuby for the hearts and minds of Ruby/.NET/Windows developers.
Wayne starts the video below with a comparison of the two, plus a few other Ruby implementations (sorry Evan, Rubinius wasn’t mentioned).
Fortunately we were treated to a demo early in the show. Wayne had recently implemented Ruby code-behind for some of the drag-and-drop widgets that come with Visual Studio. It was very sexy to see all that Ruby being generated.
The video also includes lots of “why Ruby is hard to work with as a compiler writer”, and more importantly, there are lots of audience questions all throughout the talk. This might be why the talk is 1.45hrs long!!
Enjoy… (and the slides from Wayne)
Showing off data on a timeline
I’m still trying to justify my effort writing the MagicCGI code. It let you get an XML or JSON feed for any database, with some basic conditionals, limits etc. The existing demo is for my blog database.
I think this one is kinda cool - showing off all your blog posts/articles on a timeline:
To get the timeline working with the schema output from the Magic CGI, I needed to write my own Timeline EventSource. Currently I don’t do anything fancy with the generated bubbles - I just use the defaults.
The MagicCGI query gets all wp_posts (Wordpress schema) rows, where “post_status=publish” and only returns fields that are relevant (notably ignores the large post_content field holding the blog content):
The other cool thing I did here was to deploy it all with Capistrano (an html page + javascript libs). It even deploys/manages a copy of the Timeline trunk onto the server. This is the first time I’ve deployed a non-Ruby/Rails app using Capistrano, and once I got it set up it becomes much easier to manage than using an FTP app, etc.
How easy? cap1 update (note the dubious use of capistrano 1… I still… haven’t… converted… to 2.0…)
I’m not confident enough that my solution is sexy enough to outline in detail, so if you’re interested in deploying Javascript apps etc with Capistrano, just checkout the code (below) and look at the config/deploy.rb script. (note that I’ve disabled the deprec require statement as it assumes I’m wanted to run some mongrels etc, but deprec is very handy for setting up ssh and other fun stuff at the start).
So, no details here, just a fun example.
If the Timeline tickles your fancy, their website has lots of tutorials, and/or check out my html/javascript code.
svn co http://drnicwilliams.com/svn/blog_timeline/trunk blog_timeline
If the MagicCGI tickles your fancy, its also only on svn at the moment, though its docco should be pretty good. I think.
svn co http://rubyforge.org/var/svn/magicmodels/magic_cgi/trunk magic_cgi
Dr Nic at RubyConf 2007 - RubiGen - Teaser
4th of November 2007 - 9am - main conference room - RubyConf 2007…. comes … RubiGen.
Turn up the volume and enjoy that 80s theme music…
Ruby.NET goes Open Source … too late?
Once upon a time there were two Ruby on .NET projects - one by John Lam, created in his spare time (RubyCLR) and ultimately he and his code was absorbed by Microsoft (now IronRuby).
The other - Ruby.NET - was created by Wayne Kelly, at the Queensland University of Technology (QUT), in Brisbane, Australia. My city. Where I live. Which is great, because Wayne is going to talk about Ruby.NET on Monday night.
This Monday 15th Oct, Wayne will be talking at the Brisbane Ruby + Rails Brigade about Ruby.NET, and to reiterate that it has/is to be open sourced.
[/end infommercial for Ruby meetup]
[start of critique on why the hell I don't know tickitty-boo about Ruby.NET, and the perils of Open Sourcing something that no one knows anything about]
RubyCLR/IronRuby and Ruby.NET have the same aim - to allow Ruby to be used to write .NET apps, in addition to the other languages you can run on the .NET CLR (common language runtime) - C#, C++, J# and VB.
So if RubyCLR is now Microsoft IronRuby, and is being shipped with Silverlight and thus/probably with Visual Studio 2008, does this mean RubyCLR won and Ruby.NET lost?
Hint: refer to “I don’t know tickitty-boo about Ruby.NET” above and Microsoft’s $X trillian market cap and pervasive promotion of Silverlight lately.
I can’t compare the two projects technically, but I can compare them from a marketing/community perspective, and with a healthy dose of sarcasm. I also want to ask you for help - even if you haven’t used Ruby.NET nor ever will. Its an anti-Microsoft thing. Read on…
From the get-go, John Lam has talked and blogged about RubyCLR/IronRuby. It even had a fancy website back in its RubyCLR days, with a logo and everything. John will be at RubyConf in Charlotte NC in November, talking about IronRuby.
Ruby.NET doesn’t have its own website - its just a page somewhere on the QUT domain - http://plas2003.fit.qut.edu.au/Ruby.NET/, with updates that aren’t available via RSS.
Ruby.NET doesn’t have a blog, nor does Wayne. Oooh, I found Wayne has a 1995-compliant “who am I?” page, including the 1995-edition yellow balls
.
But, he did do this video with the Ch9 MSDN site.
This isn’t a dig at Wayne entirely - I haven’t met him yet and hopefully he finds the above funny enough that he’ll still talk to me
Rather, this is a call for help for getting Ruby onto .NET in a safe, friendly, Microsoft-free, open source way. Its about World Peace.
Ruby.NET maybe open sourced, but as a project and a movement, it needs help: “I am inexperienced at managing this kind of open source project I need your help and advice.” [Wayne]
Lots and lots of Ruby developers are sitting on Windows boxes, and probably a lot of them do/have written .NET stuff. Blending Ruby into .NET means awesome WinForms loveliness with a decent language behind the scenes.
So, on Monday, Wayne is going to show off his wares. If you are in Brisbane, come along. For everyone else, I’ll park the video camera at the back of the room.
Now, before I ask you for assistance, I need to tell this story (blockquoted for dramatic effect):
I was at Web Directions South conference a few weeks ago, which Microsoft helped sponsor, and had a large booth at the front door promoting Silverlight.
I met some of the Silverlight people at drinks and got talking to one guy who was an ex-programmer-come-spruiker, and the conversation degraded as follows:
Him: IE7 was delayed for a long time because 'ajax' came out and it scared Microsoft.
Me: Microsoft of f@#ked up IE7 on purpose?
Him: We have shareholders.
Me: So you did it on purpose?
Him: Yes
[Me: exits the table]
This translates directly into my fears for IronRuby (similarly concerned are Martin Fowler and Ola Bini). Microsoft was persecuted for modifying Java outside the license agreement. Shareholders first, community last, and all that.
Ruby.NET isn’t my project, but I envisage it to be an important project.
But it will be an abandoned trivial project unless it gets a community of users, the corresponding portion of patchers, and a corresponding portion of core developers.
To my mind, Ruby.NET needs marketing help. It needs a website + blog, logo + identity: a place for users to feel proud of, a site they can show their bosses when they are trying to convert their team from C#.NET to Ruby.NET.
You don’t need to use Ruby.NET to be able to help here.
If you can help, please contact Wayne directly.
Alternately, if you have any public thoughts on how Wayne can build a community around the project etc, go for gold below.
NOTE: I’ve never built a large community around any more my projects so I can’t claim any real high-ground over the Ruby.NET project. But I do know I’d rather have choice in my Ruby for .NET implementations, and Ruby.NET is only going to be a choice if it can become a self-sustaining project.
