SlideShare a Scribd company logo
Iron* - An Introduction
to Getting Dynamic on
         .NET
      //kristiankristensen.dk
     twitter.com/kkristensen
    mail@kristiankristensen.dk
Question
Agenda

      Dynamic
     Languages


            Dynamic
Demo!       Language
            Runtime


45 min                 15 min
Why Dynamic Languages

                 Fashion



 Fortune                        Fame




                           Weight
      Interest
                            Loss
What makes a language “dynamic”?
Iron* - An Introduction to Getting Dynamic on .NET
http://www.flickr.com/photos/35064820@N00/3950391591/
Iron* - An Introduction to Getting Dynamic on .NET
http://www.flickr.com/photos/janineberben/321955670
Why Dynamic Languages

           Simplicity




 Perspective            Expressive
Iron* - An Introduction to Getting Dynamic on .NET
Iron* - An Introduction to Getting Dynamic on .NET
The traditional view of the world
        Dynamic              Static
       Languages           Languages

    Simple and succinct       Robust


      Implicitly typed     Performance


    Meta-programming      Intelligent tools


      No compilation       Better scaling
Dynamic Language Runtime
Dynamic Languages on .NET

IronPython   IronRuby   Iron?



                                  C#   VB.NET


             Common Language Runtime
Multiple Language Dynamic Dispatch
   IronPython     IronRuby         C#          VB.NET
      x.Foo         x.Foo        x.Foo          x.Foo

              Dynamic Language Runtime
                             GetMember
                      Name=“Foo”, IgnoreCase=false

     Object         COM          Python          Ruby
     Binder        Binder        Binder         Binder
Today’s view of the world
Common Language = CLR + DLR
     Dynamic              Static
    Languages           Languages

 Simple and succinct       Robust

   Implicitly typed     Performance

 Meta-programming      Intelligent tools

   No compilation       Better scaling
Iron* - An Introduction to Getting Dynamic on .NET
Iron languages are
first class .NET citizens
IronWhat?
• True language implementation
  –   True to the language
  –   True to the community
  –   True to the experience
  –   Excellent performance
• Great integration with .NET
  –   Easy to use .NET libraries
  –   Easy to use other .NET languages
  –   Easy to use in .NET hosts
  –   Easy to use with .NET tools
• Implementation Running On .NET
Iron* - An Introduction to Getting Dynamic on .NET
Languages on DLR
• Pictures
Why Iron* Languages?

Easy to extend
Easy to embed
 .NET Interop
” Talk is cheap. Show me the code.”
            - Linus Torvalds



                         http://en.wikiquote.org/wiki/Linus_Torvalds
Ruby Test Framework
[TestClass]
public class StackTest {

    [TestMethod]
    public void NewStackHasZeroElements() {
        var s = new Stack<string>();
        Assert.AreEqual<int>(0, s.Count); }

    [TestMethod]
    public void StackPeekTopElement() {
        var s = new Stack<string>();
        s.Push("bob");
        Assert.AreEqual<int>(1, s.Count);
        Assert.AreEqual<string>("bob", s.Peek()); }

    [TestMethod]
    public void StackPopTopElement() {
        var s = new Stack<string>();
        s.Push("bob");
        Assert.AreEqual<string>("bob", s.Pop());
        Assert.AreEqual<int>(0, s.Count); } }
IronPython in Visual Studio




                        http://ironpython.net/tools
Easy to embed aka BadPaint
The road ahead (picture)
Iron* - An Introduction to Getting Dynamic on .NET
http://ironpython.net




   http://ironruby.net




http://dlr.codeplex.com
The end.
//kristiankristensen.dk
//twitter.com/kkristensen
mail@kristiankristensen.dk

More Related Content

KEY
IronRuby for the .NET Developer
PPTX
Jaoo irony
PPTX
IronRuby And The DLR
PPTX
Dynamic Ranguage Runtime (DLR)
PDF
IronRuby for the Rubyist
PDF
OOPS Advanced
PPTX
Semana Interop: Trabalhando com IronPython e com Ironruby
PPTX
Things Developers Believe About Video Files (Proven Wrong by User Uploads)
IronRuby for the .NET Developer
Jaoo irony
IronRuby And The DLR
Dynamic Ranguage Runtime (DLR)
IronRuby for the Rubyist
OOPS Advanced
Semana Interop: Trabalhando com IronPython e com Ironruby
Things Developers Believe About Video Files (Proven Wrong by User Uploads)

What's hot (20)

KEY
Four Python Pains
KEY
Week2
PDF
The Spoofax Language Workbench (SPLASH 2010)
KEY
Remix Your Language Tooling (JSConf.eu 2012)
KEY
Using Aspects for Language Portability (SCAM 2010)
PDF
A Progressive Approach to the Past: Ensuring Backwards Compatability Through ...
PDF
Introduction to Ruby
PDF
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
PPTX
Lambda The Extreme: Test-Driving a Functional Language
PDF
Create Your Own Language
PPTX
What is Python?
PPTX
FFMS2: Indexing, Edge Cases, and Insanity
PDF
Kotlin from-scratch
PDF
2012-02-15 jfokus2012 - regex applied
PPTX
P1 2017 python
PDF
Multilingual Fine-grained Entity Typing
PPS
Ruby Introduction
PPTX
Exploring C# DSLs: LINQ, Fluent Interfaces and Expression Trees
PPTX
Let's Write a JPEG Decoder (Vimeo Lunch Talks)
PDF
Learning to Translate with Joey NMT
Four Python Pains
Week2
The Spoofax Language Workbench (SPLASH 2010)
Remix Your Language Tooling (JSConf.eu 2012)
Using Aspects for Language Portability (SCAM 2010)
A Progressive Approach to the Past: Ensuring Backwards Compatability Through ...
Introduction to Ruby
Building a Pipeline for State-of-the-Art Natural Language Processing Using Hu...
Lambda The Extreme: Test-Driving a Functional Language
Create Your Own Language
What is Python?
FFMS2: Indexing, Edge Cases, and Insanity
Kotlin from-scratch
2012-02-15 jfokus2012 - regex applied
P1 2017 python
Multilingual Fine-grained Entity Typing
Ruby Introduction
Exploring C# DSLs: LINQ, Fluent Interfaces and Expression Trees
Let's Write a JPEG Decoder (Vimeo Lunch Talks)
Learning to Translate with Joey NMT
Ad

Viewers also liked (14)

PPTX
Iron Key Introduction
PDF
Cast Iron Overview Webinar 6.13
PPT
Role of iron in human health
PPTX
Role of iron in the human body
PDF
Iron metabolism final
PPTX
Iron metabolism
PPTX
Iron absorption
PPT
Iron Metabolism
PPTX
IRON METABOLISM
PPT
Iron metabolism
PPTX
Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...
PPTX
Iron metabolism, iron deficiency
PDF
3 Things Every Sales Team Needs to Be Thinking About in 2017
PDF
How to Become a Thought Leader in Your Niche
Iron Key Introduction
Cast Iron Overview Webinar 6.13
Role of iron in human health
Role of iron in the human body
Iron metabolism final
Iron metabolism
Iron absorption
Iron Metabolism
IRON METABOLISM
Iron metabolism
Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...
Iron metabolism, iron deficiency
3 Things Every Sales Team Needs to Be Thinking About in 2017
How to Become a Thought Leader in Your Niche
Ad

Similar to Iron* - An Introduction to Getting Dynamic on .NET (20)

PPTX
Dynamic languages for .NET CLR
PPTX
IronSprog - Community Day 2010
PPTX
Iron Sprog Tech Talk
PDF
New c sharp4_features_part_vi
PDF
dotnet-ug-iron-ruby
PDF
Codemash-iron-ruby-match-made-in-heaven
PPTX
Whats New In C Sharp 4 And Vb 10
PPT
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
PPTX
Dynamic language
PPTX
IronRuby: Ruby on the .NET Platform
PDF
New c sharp4_features_part_iv
PDF
Dynamic Binding in C# 4.0
PPTX
PPTX
Introduction to .NET with C# @ university of wayamba
PPTX
DOT NET Framework.pptxdsfdsfdsfsdfdsfdsfdsf
DOC
Dotnet ch1
PPT
Introduction to Visual Studio.NET
PPT
Best DotNet Training in Delhi
Dynamic languages for .NET CLR
IronSprog - Community Day 2010
Iron Sprog Tech Talk
New c sharp4_features_part_vi
dotnet-ug-iron-ruby
Codemash-iron-ruby-match-made-in-heaven
Whats New In C Sharp 4 And Vb 10
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
Dynamic language
IronRuby: Ruby on the .NET Platform
New c sharp4_features_part_iv
Dynamic Binding in C# 4.0
Introduction to .NET with C# @ university of wayamba
DOT NET Framework.pptxdsfdsfdsfsdfdsfdsfdsf
Dotnet ch1
Introduction to Visual Studio.NET
Best DotNet Training in Delhi

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Encapsulation theory and applications.pdf
PPT
Teaching material agriculture food technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PPTX
Spectroscopy.pptx food analysis technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Approach and Philosophy of On baking technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
sap open course for s4hana steps from ECC to s4
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Electronic commerce courselecture one. Pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Per capita expenditure prediction using model stacking based on satellite ima...
Building Integrated photovoltaic BIPV_UPV.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Encapsulation theory and applications.pdf
Teaching material agriculture food technology
Big Data Technologies - Introduction.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Spectroscopy.pptx food analysis technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Iron* - An Introduction to Getting Dynamic on .NET