2. About me IRC hooligan! CasualJim Partner at White Rabbit Consulting C# MVP Author “IronRuby in Action” February 6, 2010 IronRuby: Ruby & .NET's Love Child 2
3. Concepts covered Introduction to IronRuby Why IronRuby and Mono? Leveraging Ruby libraries Sinatra IronRuby + Silverlight BDD with Rspec & Caricature Extending existing apps February 6, 2010 IronRuby: Ruby & .NET's Love Child 3
4. Introduction to IronRuby Open Source (MS PL) Microsoft DLR Currently 1.0 RC1 RC2 is imminent – this week February 6, 2010 4 IronRuby: Ruby & .NET's Love Child
5. The CLR as we knew it February 6, 2010 IronRuby: Ruby & .NET's Love Child 5 C# VB.NET … Base Class Libraries Common Type system Security Class Loader, GC, JIT, Execution Support
6. The new & improved CLR February 6, 2010 IronRuby: Ruby & .NET's Love Child 6 C# VB.NET … Base Class Libraries DLR Runtime Common Type system Security Class Loader, GC, JIT, Execution Support
7. Why should we care? February 6, 2010 IronRuby: Ruby & .NET's Love Child 7
8. For me the purpose of life is partly to have joy. Programmers often feel joy when they can concentrateon the creative side of programming, so Ruby is designed to make programmers happy. Yukihiro “Matz” Matsumoto February 6, 2010 IronRuby: Ruby & .NET's Love Child 8
16. Get in touch… www.WhiteRabbitConsulting.eu ivan@whiterabbitconsulting.eu Twitterati @casualjim http://github.com/casualjim/ February 6, 2010 IronRuby: Ruby & .NET's Love Child 16
Editor's Notes
Shared dynamic subsystemStandard hosting environmentFull access to the CLREnable fast generation of dynamic codeProductivity gainsDSL’s rule the world, unfortunately most of those DSL’s are in XML * config files * manifests * build scripts=> Why use xml?To quote Phil Haack: Friends don’t let friends do XML. This pretty much sums up how I feel about xml as well.**** Demo Ninject configuration ****
Many people that come to Ruby do so through the Rails framework.And then often you can hear these people say:I came for Rails but I stayed for RubyRuby is a pleasant language to work with, partly because its well-chosen keywords, but mostly because it represents a kind of best breed implementation of a programming language. One of the goals ruby tries to achieve is to make the language you use ,when you’re writing your algorithms, a lot like a natural language. For example ruby has both the keywords if and unless, and you can apply those in 2 different ways. Best of breed Duck typing Everything is an object Classes are open / monkey patching Flexible Functional Procedural meta programming
Get into dynamic typing before duck typingRuby cares about typesIt cares about hierarchy + mixins when doing method lookupOnly safe operations against an object (no magic)Conversions explicit stepYou can override operators to allow for implicit conversion => explicit step + you’re in controlExplain how static typing resembles aristocracy with their bloodlines and how heritage is more important than capabilitiesExplain how duck typing focusses on the abilities of objects instead of their type. If the method is there it’s all good