ruby loves dot net
DESCRIPTION
Presentation for the belgian VISUG about IronRubyTRANSCRIPT
www.visug.bewww.visug.be
Ruby <3 .NETIvan Porto Carrero
http://flanders.co.nzhttp://twitter.com/casualjim
Upcoming sessions
• June 18 : Domain Driven Design (Yves Goeleven)• June 30 : IronRuby (Ivan Porto Carrero)• September 10 : ORMs, NHibernate – Entity Framework
(Davy Brion, Kurt Claeys)• Week of October 5 (TBD) : Dino Esposito• November 18 : Modeling with VSTS2010 (Marcel De Vries)• November 26 : RIA Services (Miguel De Lathouwer
& Steven Van Den Eynde)
www.visug.be
The plan
• CLR, DLR, WTF??• All ur Rubyz are now belongs to us• Ruby why should I care?• Gotcha’s• BDD with Bacon and Caricature• Sinatra has not left the building• IronRuby MVC• Ruby + Silverlight == Teh cake
www.visug.be
CLR as we knew it
Common Type system
Class Loader, GC, JIT, Execution Support
Security
Base Class Libraries
C# VB.NET …
www.visug.be
CLR but mo betterer
Common Type system
Class Loader, GC, JIT, Execution Support
Security
Base Class Libraries
C# VB.NET IronPython
DLR Runtime
www.visug.be
www.visug.be
All ur Rubyz are now…
• MRI ‐ “The Normal” Ruby • JRuby ‐ Sun • MacRuby ‐ Apple • IronRuby ‐ Microsoft • Rubinius ‐ EngineYard • MagLev ‐ Gemstone • HotRuby
www.visug.be
All ur Rubyz are now…
• MRI ‐ “The Normal” Ruby • JRuby ‐ Sun • MacRuby ‐ Apple
• IronRuby ‐ Microsoft • Rubinius ‐ EngineYard • MagLev ‐ Gemstone • HotRuby
www.visug.be
Why should I care?
For me the purpose of life is partly to have joy. Programmers often feel joy when they can concentrate
on the creative side of programming, so Ruby is designed to make programmers happy.
- Yukihiro “Matz” Matsumoto
www.visug.be
Why should I care?
Actually, I'm trying to make Ruby natural, not simple. - Yukihiro “Matz” Matsumoto
www.visug.be
www.visug.be
Best of breed
If Python was the result of Lisp and C++ having a baby,Ruby is the result of Perl and Smalltalk having a baby.
- MeowMeow Jones, 11/8/2001 on slashdot.
www.visug.be
www.visug.be
Duck typing
if it looks like a duckand acts like a duck it might as well be a
duck
www.visug.be
www.visug.be
Metaprogramming
The computer should be doing the hard work.That’s what it’s paid to do, after all.
- Larry Wall
www.visug.be
Metaprogramming
I don’t think the idea here is to save memory or speed.The idea behind metaprogramming is
to teach Ruby your conventionsAnd let it do some guessing
In order to save you some code - Why, author of why’s poignant guide to Ruby
www.visug.be
STOP!!!! Demo time
www.visug.be
REPL
Read Eval Print Loop
Read Eval Print Loop
Read Eval Print Loop
Read Eval Print
www.visug.be
STOP!!!! Demo time
www.visug.be
Everything is an object
I invented the term Object-Oriented,and I can tell you I did not have C++ in mind
- Alan Kay
www.visug.be
STOP!!!! Demo time
www.visug.be
Classes are open
www.visug.be
STOP!!!! Demo time
www.visug.be
CLR classes open for business
www.visug.be
STOP!!!! Demo time
www.visug.be
Adding Iron to Ruby
I have always imagined that paradise will be a kind of library- Jorge Luis Borges
www.visug.be
Gotcha’s
www.visug.be
BDD Ruby/CLR interop
www.visug.be
IronRuby MVC
www.visug.be
Sinatra
www.visug.be
Silverlight
www.visug.be
Kweshiunz?
www.visug.be
“A language that doesn't affect the way you think about programming is not worth knowing.”
- Alan Perlis
www.visug.be
References
• http://flanders.co.nz• http://ironruby.net• http://ironruby.info• http://iunknown.com• http://manning.com/carrero• http://rubydoes.net• http://blog.prokrams.com/• http://nightlybuilds.cloudapp.net/Project.
aspx?project=dlr• http://blog.jimmy.schementi.com/
www.visug.be
go_to(http://ironruby.net).play.create.have_fun