![Page 1: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/1.jpg)
Jacinto A. Limjap, Jr. Microsoft MVP for Visual C#
Senior Software Design Engineer, Cormant Technologies
![Page 2: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/2.jpg)
Dynamic Typed LanguagesWhy they matterThe Dynamic Language RuntimeA brief history of Ruby, RoR, and
IronRubyWhat’s so cool about Ruby?QuirksNext steps
![Page 3: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/3.jpg)
Type checking is done at runtimeFewer or no type checkingMost of them are interpretedExamples:
![Page 4: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/4.jpg)
Expressive syntaxObject-orientedDuck typingObject runtime
alterationMetaprogramming
![Page 5: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/5.jpg)
Allows dynamic languages to run on top of CLR
Compilation process
![Page 6: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/6.jpg)
Allows for dynamic languages to run on top of the .NET Framework
![Page 7: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/7.jpg)
Conceived and written by Yukihiro Matsumoto in the mid 1990s
A “balance between imperative and functional programming”
Gained huge popularity after David Heinemeir Hansson came out with Ruby on Rails
![Page 8: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/8.jpg)
Open source project headed by John Lam since 2007
Matched with Ruby 1.8.6 specification
Released under Microsoft Public License
IronRuby 0.5.0 was released last May 20, 2009
![Page 9: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/9.jpg)
![Page 10: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/10.jpg)
Object oriented Everything,
including literals, methods, and classes, are objects!
“True” object orientation as opposed to “class-oriented programming”
![Page 11: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/11.jpg)
Expressiveness Allows for high
readability, and potentially higher maintainability
Allows for more succint code
Less code = less mistakes
![Page 12: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/12.jpg)
Duck Typing If it quacks like a
duck, it’s a duck! If an object
contains the methods called by another method, it’s good to go
Look ma, no interfaces!
![Page 13: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/13.jpg)
Object runtime alteration Objects can be
changed to a different type during runtime
Objects can be extended at runtime
![Page 14: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/14.jpg)
![Page 15: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/15.jpg)
No Visual Studio / intellisense support... yet
No LINQ tools... yet No WPF
databinding... yet Not sure if it make
it to .NET 4.0/Visual Studio 2010
![Page 16: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/16.jpg)
More languages, more options
DLR gives apps instant scripting abilities
C# is moving in that direction too! LINQ Lambda expressions Parallel extensions
(C# 4.0) ‘dynamic’ (C# 4.0)
and ‘var’ keywords
C# 1.0
C# 2.0
C# 3.0
Managed Code
Generics
Language Integrated Query
C# 4.0Dynamic Programming
![Page 17: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/17.jpg)
Polyglot programmer trend Use the best language for the job
Scripting capabilities for the .NET Framework
IronRuby to have better support for Visual Studio as it progresses
More demo apps are becoming available as we speak
Next MSDN Session!: IronRuby on ASP.NET MVC
![Page 18: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/18.jpg)
![Page 19: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/19.jpg)
www.ironruby.nethttp://ironruby.codeplex.comWhy’s (poignant) guide to Ruby:
http://poignantguide.net/ruby IronRuby and Silverlight demos:
http://github.com/jschementi/mix09/tree/master
Getting Ready with Iron Ruby and RSpec, Part 1: http://msdn.microsoft.com/en-us/magazine/dvdarchive/dd434651.aspx
![Page 20: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/20.jpg)
Learning Ruby via IronRuby and C# series: http://codethinked.com/post/2008/07/21/Learning-Ruby-via-IronRuby-and-C-Part-1.aspx
IronRuby presentation slides and demo code http://devpinoy.org/blogs/cruizer/archive/2009/05/24/ironruby-presentation-slides-and-demo-code.aspx
![Page 21: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/21.jpg)
Blog: http://dotnet.kapenilattex.comTwitter: http://twitter.com/LaTtEXEmail: [email protected] Forums:
http://msforums.ph/forumsMSDN Philippines:
http://msdnphilippines.net/blogs/limjap
![Page 22: An Introduction to IronRuby and the Dynamic Language](https://reader034.vdocuments.net/reader034/viewer/2022051615/5527f4084a7959d33d8b45b0/html5/thumbnails/22.jpg)
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation
as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES,
EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.