SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
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”?
http://www.flickr.com/photos/35064820@N00/3950391591/
http://www.flickr.com/photos/janineberben/321955670
Why Dynamic Languages

           Simplicity




 Perspective            Expressive
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 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
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)
http://ironpython.net




   http://ironruby.net




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

Mais conteúdo relacionado

Mais procurados

Ruby Introduction
Ruby IntroductionRuby Introduction
Ruby Introduction
Prabu D
 
Exploring C# DSLs: LINQ, Fluent Interfaces and Expression Trees
Exploring C# DSLs: LINQ, Fluent Interfaces and Expression TreesExploring C# DSLs: LINQ, Fluent Interfaces and Expression Trees
Exploring C# DSLs: LINQ, Fluent Interfaces and Expression Trees
rasmuskl
 

Mais procurados (20)

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

Destaque

Role of iron in human health
Role of iron in human healthRole of iron in human health
Role of iron in human health
princy77malik
 
Role of iron in the human body
Role of iron in the human bodyRole of iron in the human body
Role of iron in the human body
eman youssif
 
Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...
Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...
Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...
Ajjay Kumar Gupta
 
Iron metabolism, iron deficiency
Iron metabolism, iron deficiencyIron metabolism, iron deficiency
Iron metabolism, iron deficiency
Guvera Vasireddy
 

Destaque (14)

Iron Key Introduction
Iron Key IntroductionIron Key Introduction
Iron Key Introduction
 
Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13Cast Iron Overview Webinar 6.13
Cast Iron Overview Webinar 6.13
 
Role of iron in human health
Role of iron in human healthRole of iron in human health
Role of iron in human health
 
Role of iron in the human body
Role of iron in the human bodyRole of iron in the human body
Role of iron in the human body
 
Iron metabolism final
Iron metabolism finalIron metabolism final
Iron metabolism final
 
Iron metabolism
Iron metabolismIron metabolism
Iron metabolism
 
Iron absorption
Iron absorptionIron absorption
Iron absorption
 
Iron Metabolism
Iron MetabolismIron Metabolism
Iron Metabolism
 
IRON METABOLISM
IRON METABOLISMIRON METABOLISM
IRON METABOLISM
 
Iron metabolism
Iron metabolismIron metabolism
Iron metabolism
 
Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...
Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...
Steelmaking and Iron Products (Cast Iron, Compacted Graphite Irons, Ductile I...
 
Iron metabolism, iron deficiency
Iron metabolism, iron deficiencyIron metabolism, iron deficiency
Iron metabolism, iron deficiency
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
 

Semelhante a Iron* - An Introduction to Getting Dynamic on .NET

Dynamic languages for .NET CLR
Dynamic languages for .NET CLRDynamic languages for .NET CLR
Dynamic languages for .NET CLR
py_sunil
 

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

Jax keynote
Jax keynoteJax keynote
Jax keynote
 
Iron Sprog Tech Talk
Iron Sprog Tech TalkIron Sprog Tech Talk
Iron Sprog Tech Talk
 
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
 IronPython and Dynamic Languages on .NET by Mahesh Prakriya IronPython and Dynamic Languages on .NET by Mahesh Prakriya
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
 
DSL Construction rith Ruby
DSL Construction rith RubyDSL Construction rith Ruby
DSL Construction rith Ruby
 
Dynamic languages for .NET CLR
Dynamic languages for .NET CLRDynamic languages for .NET CLR
Dynamic languages for .NET CLR
 
IronRuby: Ruby on the .NET Platform
IronRuby: Ruby on the .NET PlatformIronRuby: Ruby on the .NET Platform
IronRuby: Ruby on the .NET Platform
 
Ruby is dying. What languages are cool now?
Ruby is dying. What languages are cool now?Ruby is dying. What languages are cool now?
Ruby is dying. What languages are cool now?
 
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
DSL Construction with Ruby - ThoughtWorks Masterclass Series 2009
 
ruby pentest
ruby pentestruby pentest
ruby pentest
 
SyPy IronPython
SyPy IronPythonSyPy IronPython
SyPy IronPython
 
Ruby On Rails Overview
Ruby On Rails OverviewRuby On Rails Overview
Ruby On Rails Overview
 
2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge2016 bioinformatics i_python_part_1_wim_vancriekinge
2016 bioinformatics i_python_part_1_wim_vancriekinge
 
IronSprog - Community Day 2010
IronSprog - Community Day 2010IronSprog - Community Day 2010
IronSprog - Community Day 2010
 
Open Source .NET
Open Source .NETOpen Source .NET
Open Source .NET
 
Scala Days NYC 2016
Scala Days NYC 2016Scala Days NYC 2016
Scala Days NYC 2016
 
Life Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby AppsLife Beyond Rails: Creating Cross Platform Ruby Apps
Life Beyond Rails: Creating Cross Platform Ruby Apps
 
Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011Iron Languages - NYC CodeCamp 2/19/2011
Iron Languages - NYC CodeCamp 2/19/2011
 
P1 2018 python
P1 2018 pythonP1 2018 python
P1 2018 python
 
Whats New In C Sharp 4 And Vb 10
Whats New In C Sharp 4 And Vb 10Whats New In C Sharp 4 And Vb 10
Whats New In C Sharp 4 And Vb 10
 
PIL - A Platform Independent Language
PIL - A Platform Independent LanguagePIL - A Platform Independent Language
PIL - A Platform Independent Language
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 

Iron* - An Introduction to Getting Dynamic on .NET