The .Net Ruby VMNikos DimitrakopoulosDec 2009
MeSoftware developerRuby loverRails developer (for fun & profit)Working at pamediakopes.grand thus also .Net developer
The presentationWhat is IronRubyWhat does it offer to Ruby developersLimitationsFuture
Famous quotesIt doesn’t scaleIt’s slowIt’s immatureNot enterprise…
ButjRubyMacRubyRubiniusMagLevIronRuby
.Net
What is IronRubyThe Ruby VM implemented in .Net (C#)Part of the family of the scripting (and not only) languages implemented in .NetPythonRuby(more coming)?
.Net IntegrationInteroperability with .NetConsume all the C# code you want!The huge .Net library ecosystemExternal .Net librariesCustom / existing C# code
# Demo
.Net IntegrationExtend existing .Net classes the ruby way!
.Net IntegrationCall ruby code from .Net!
# Demo
.Net IntegrationDeploy on .Net infrastructureWeb apps on IIS (Rails on .Net!)Consume (natively) .Net servicesSQLOfficeActive DirectoryExchangeetc...
.Net IntegrationDeploy on .Net infrastructureDesktop applications on WindowsDesktop applications on everywhere (Mono)
.Net IntegrationTest .Net code with Cucumber & RSpec!
Additionally“Translations” of idioms:object.SomeMethod() <-> object.some_methodSystem.Core <-> System::CoreC# lambdas and delegates <-> Ruby clojures>>> l = System::Byte.instance_methods(false).last=> 'get_type_code'>>> l.ruby_name=> "get_type_code">>> l.clr_name=> "GetTypeCode"
AdditionallyInteroperability with the other scripting languages!PythonJavaScript…Use code also from there!
SilverlightSilverlight integrationWrite ruby instead of javascript in your pages! (Gestalt project)
Silverlight
# Gestalt Demo
LimitationsNo support for native C gemsSome rough edges in interoperability
Status
LinksIronRuby:http://ironruby.net/http://ironruby.codeplex.com/Rubyst.eshttp://rubyst.eshttp://groups.google.com/ruby-hellugPamediakopeshttp://www.pamediakopes.grhttp://www.airtickets24.comMehttp://blog.nikosd.comhttp://twitter.com/nikosdnospam - at - nikosd - dom – comCode samples : http://nikosd.com/f/ironruby-code-samples.zip

Athens Ruby Meetup #3: IronRuby