SlideShare uma empresa Scribd logo
1 de 21
IronPython combines the best of
Python and .NET.
Microsoft: IronRuby, IronPython
and the Dynamic Language Runtime
Nick Hodge
Professional Geek,
Microsoft Australia
@nickhodge
nhodge@microsoft.com
HAI
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
KTHXBYE
Dynamic languages
• Love ‘em or Hate ‘em People are Using ‘em
• History
– Visual Basic; implemented as Classic .asp
• Language / Framework tie in
– PHP (Wordpress)
– Ruby (Rails, Merb)
– Javascript (DOM/Browser to jQuery et al)
.NET 4.0
.NET 3.5LINQ
DLR
.NET 2.0
The {C|D}LR
.NET 1.0
GC
BCL
ReflectionJIT
Generics
In Runtime
Expression
Trees
Extension
Methods
Statement
Trees
Call Site
Caching
Dynamic
Dispatch
Dynamic
Codegen
Verifier
Sandbox
Silverlight
Fast
Delegates
Dynamic
Methods
JoelPobar
Dynamic Language Runtime (DLR)
The Stack
IronPython IronRuby Boo, et al
.NET 2.0 (CLR)
CoreCLR
Windows
Silverlight 2.0
Mac
Cats and Dogs Living Together
Dynamic Language Runtime (DLR)
Open Source = Consequences
IronPython IronRuby
ECMA 334/335 CLI
(eg: Mono)
Moonlight2CoreCLR
Linux (et al)
Moonlight
Firefox (et al)
MsPL
Open
Source
Why Iron*?
Inspiration
• How could Microsoft have screwed up so badly that
the CLR is far worse than the JVM for dynamic
languages?
– Jython shows that dynamic languages
can run well on the JVM
• Jim Hugunin decided to write a short pithy paper
called, “Why .NET is a terrible platform for dynamic
languages”
– 2003
• 2007: John Lam (.NET  MRI)
Dynamic Language Runtime
• Abstracted framework for implementing a dynamic language
on .NET/CLR
• Back-end compilers
• Dynamic operations on Objects
• Common Hosting of Languages
• Building your own language with DLR + ANTLR3
– http://www.bitwisemag.com/2/DLR-Build-Your-Own-Language
– Dermot Hogan. My tiny mind has assploded
• Check out: Irony: Script.NET, Lua
– http://codeplex.com/irony
• IronPython, IronRuby
– http://codeplex.com/ironpython
– http://ironruby.net/
• Codeplex == TFS “in the cloud” 
• Core V1 components – Trees, Sites, Binders
– Will ship in .NET Framework 4.0
– Basis for C# 4.0’s dynamic
• Future pieces are also available today
– Microsoft.Scripting.dll
• http://langnetsymposium.com/2009/talks.aspx
• (IronRuby is in github)
It’s on Codeplex
• Ruby
– Notorious for no formal specification
– RubySpec: now used by MRI, JRuby,
IronRuby…
• Python
– New movement in recent 6 weeks
Language Specifications
• Groovy (yes, Java scripting!)
• Nua (Lua)
• IronScheme
• Phalanger (PHP on CLR/DLR)
• Basic Basic and Basic Javascript (egs)
Languages on the DLR
IPy 1.0
•Shipped
Sept. 2006
•v2.4 language
compatibility
•27/54 built-in
modules
IPy 1.1
•Shipped
April 2007
•Limited v2.5
language
features
•More Modules
•Top user issues
•VS Integration
(VSX sample)
IPy 2.0
•Current Focus
•Fall 2008
•v2.5 language
compatibility
•Built on DLR
•More modules
•Top User Issues
IPy 2.6
•Alpha Released
•H1 2009
•v2.6 language
compatibility
•Productize VS
integration
IPy 3.0
•In Planning
•H2 2009 ?
•Python 3000
language
compatibility
•Support for next
version of VS
IronPython Roadmap
IronRuby 0.3
• Now
IronRuby 1.0
• Targetting
mid ’09
• Ruby on Rails
IronRuby Roadmap
http://ironruby.net/
IronPython combines the best of
Python and .NET.
Microsoft: IronRuby, IronPython
and the Dynamic Language Runtime
Nick Hodge
Professional Geek,
Microsoft Australia
@nickhodge
nhodge@microsoft.com

Mais conteúdo relacionado

Mais procurados

Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesJfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesCharlie Gracie
 
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)lennartkats
 
Ruby Presentation
Ruby Presentation Ruby Presentation
Ruby Presentation platico_dev
 
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019corehard_by
 
Introduction to llvm
Introduction to llvmIntroduction to llvm
Introduction to llvmTao He
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesMark Stoodley
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by GoogleUttam Gandhi
 
Pharo Arm Status
Pharo Arm StatusPharo Arm Status
Pharo Arm StatusESUG
 
llvm-py: Writing Compilers In Python
llvm-py: Writing Compilers In Pythonllvm-py: Writing Compilers In Python
llvm-py: Writing Compilers In Pythonmdevan
 
Extending Ruby using C++
Extending Ruby using C++Extending Ruby using C++
Extending Ruby using C++Tristan Penman
 
LLVM Compiler - Link Time Optimization
LLVM Compiler - Link Time OptimizationLLVM Compiler - Link Time Optimization
LLVM Compiler - Link Time OptimizationVivek Pansara
 
FOSDEM 2020 Presentation : Precise, cross-project code navigation at GitHub s...
FOSDEM 2020 Presentation : Precise, cross-project code navigation at GitHub s...FOSDEM 2020 Presentation : Precise, cross-project code navigation at GitHub s...
FOSDEM 2020 Presentation : Precise, cross-project code navigation at GitHub s...Fasten Project
 
[LibreOffice Asia Conference 2019] CJK Issues on LibreOffice(based on Korean ...
[LibreOffice Asia Conference 2019] CJK Issues on LibreOffice(based on Korean ...[LibreOffice Asia Conference 2019] CJK Issues on LibreOffice(based on Korean ...
[LibreOffice Asia Conference 2019] CJK Issues on LibreOffice(based on Korean ...DaeHyun Sung
 
Go for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B MeetupGo for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B MeetupKirill Zonov
 
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...DaeHyun Sung
 

Mais procurados (20)

Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot RuntimesJfokus 2016 - A JVMs Journey into Polyglot Runtimes
Jfokus 2016 - A JVMs Journey into Polyglot Runtimes
 
Intro for RoR
Intro for RoRIntro for RoR
Intro for RoR
 
ruby-cocoa
ruby-cocoaruby-cocoa
ruby-cocoa
 
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)
 
Ruby Presentation
Ruby Presentation Ruby Presentation
Ruby Presentation
 
Ruby Introduction
Ruby IntroductionRuby Introduction
Ruby Introduction
 
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
The Hitchhiker's Guide to Faster Builds. Viktor Kirilov. CoreHard Spring 2019
 
Introduction to llvm
Introduction to llvmIntroduction to llvm
Introduction to llvm
 
Eclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimesEclipse OMR: a modern toolkit for building language runtimes
Eclipse OMR: a modern toolkit for building language runtimes
 
Go Programming Language by Google
Go Programming Language by GoogleGo Programming Language by Google
Go Programming Language by Google
 
Pharo Arm Status
Pharo Arm StatusPharo Arm Status
Pharo Arm Status
 
llvm-py: Writing Compilers In Python
llvm-py: Writing Compilers In Pythonllvm-py: Writing Compilers In Python
llvm-py: Writing Compilers In Python
 
Extending Ruby using C++
Extending Ruby using C++Extending Ruby using C++
Extending Ruby using C++
 
LLVM Compiler - Link Time Optimization
LLVM Compiler - Link Time OptimizationLLVM Compiler - Link Time Optimization
LLVM Compiler - Link Time Optimization
 
FOSDEM 2020 Presentation : Precise, cross-project code navigation at GitHub s...
FOSDEM 2020 Presentation : Precise, cross-project code navigation at GitHub s...FOSDEM 2020 Presentation : Precise, cross-project code navigation at GitHub s...
FOSDEM 2020 Presentation : Precise, cross-project code navigation at GitHub s...
 
[LibreOffice Asia Conference 2019] CJK Issues on LibreOffice(based on Korean ...
[LibreOffice Asia Conference 2019] CJK Issues on LibreOffice(based on Korean ...[LibreOffice Asia Conference 2019] CJK Issues on LibreOffice(based on Korean ...
[LibreOffice Asia Conference 2019] CJK Issues on LibreOffice(based on Korean ...
 
Jython
JythonJython
Jython
 
Go for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B MeetupGo for Rubyists. August 2018. RUG-B Meetup
Go for Rubyists. August 2018. RUG-B Meetup
 
Kotlin from-scratch
Kotlin from-scratchKotlin from-scratch
Kotlin from-scratch
 
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
[LibreOffice Korea-Japan online Seminar] Introduce to LibreOffice & Korean Is...
 

Semelhante a Jaoo irony

SyPy IronPython
SyPy IronPythonSyPy IronPython
SyPy IronPythonNick Hodge
 
Open Source .NET
Open Source .NETOpen Source .NET
Open Source .NETOnyxfish
 
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinalProf. Wim Van Criekinge
 
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_vancriekingeProf. Wim Van Criekinge
 
Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirHideki Takase
 
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007eLiberatica
 
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...Uwe Korn
 
Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Robert 'Bob' Reyes
 
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?Michał Konarski
 
Polyglot Architecture: A Rational Approach to Software Design
Polyglot Architecture: A Rational Approach to Software DesignPolyglot Architecture: A Rational Approach to Software Design
Polyglot Architecture: A Rational Approach to Software Designkompalg
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Gozhubert
 
How to Write the Fastest JSON Parser/Writer in the World
How to Write the Fastest JSON Parser/Writer in the WorldHow to Write the Fastest JSON Parser/Writer in the World
How to Write the Fastest JSON Parser/Writer in the WorldMilo Yip
 
Evolution of Programming Languages
Evolution of Programming LanguagesEvolution of Programming Languages
Evolution of Programming LanguagesSayanee Basu
 

Semelhante a Jaoo irony (20)

SyPy IronPython
SyPy IronPythonSyPy IronPython
SyPy IronPython
 
Evalution about programming language part 1
Evalution about programming language part 1Evalution about programming language part 1
Evalution about programming language part 1
 
Open Source .NET
Open Source .NETOpen Source .NET
Open Source .NET
 
P1 2017 python
P1 2017 pythonP1 2017 python
P1 2017 python
 
P1 2018 python
P1 2018 pythonP1 2018 python
P1 2018 python
 
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
 
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
 
Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet Elixir
 
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
 
Ruby and Security
Ruby and SecurityRuby and Security
Ruby and Security
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
Berlin Buzzwords 2019 - Taming the language border in data analytics and scie...
 
Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016Mozilla + Rust at PCU Manila 02 DEC 2016
Mozilla + Rust at PCU Manila 02 DEC 2016
 
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?
 
Polyglot Architecture: A Rational Approach to Software Design
Polyglot Architecture: A Rational Approach to Software DesignPolyglot Architecture: A Rational Approach to Software Design
Polyglot Architecture: A Rational Approach to Software Design
 
Rust 101 (2017 edition)
Rust 101 (2017 edition)Rust 101 (2017 edition)
Rust 101 (2017 edition)
 
Why ruby and rails
Why ruby and railsWhy ruby and rails
Why ruby and rails
 
Introduction to Go
Introduction to GoIntroduction to Go
Introduction to Go
 
How to Write the Fastest JSON Parser/Writer in the World
How to Write the Fastest JSON Parser/Writer in the WorldHow to Write the Fastest JSON Parser/Writer in the World
How to Write the Fastest JSON Parser/Writer in the World
 
Evolution of Programming Languages
Evolution of Programming LanguagesEvolution of Programming Languages
Evolution of Programming Languages
 

Mais de Nick Hodge

Reactive programming
Reactive programmingReactive programming
Reactive programmingNick Hodge
 
Virtual #appfest 18th Dec 2012
Virtual #appfest 18th Dec 2012Virtual #appfest 18th Dec 2012
Virtual #appfest 18th Dec 2012Nick Hodge
 
Victorian principals 17 may2007
Victorian principals 17 may2007Victorian principals 17 may2007
Victorian principals 17 may2007Nick Hodge
 
Telstra ux presentation 14 dec 2012
Telstra ux presentation 14 dec 2012Telstra ux presentation 14 dec 2012
Telstra ux presentation 14 dec 2012Nick Hodge
 
Technology and politics digital marketing v5
Technology and politics digital marketing v5Technology and politics digital marketing v5
Technology and politics digital marketing v5Nick Hodge
 
Technical windows 8 and windows phone 8 apps
Technical windows 8  and windows phone 8 appsTechnical windows 8  and windows phone 8 apps
Technical windows 8 and windows phone 8 appsNick Hodge
 
Tech ed au 2012 dev223
Tech ed au 2012 dev223Tech ed au 2012 dev223
Tech ed au 2012 dev223Nick Hodge
 
Tech ed au 2012 dev212
Tech ed au 2012 dev212Tech ed au 2012 dev212
Tech ed au 2012 dev212Nick Hodge
 
Stealth PHP on IIS :-)
Stealth PHP on IIS :-)Stealth PHP on IIS :-)
Stealth PHP on IIS :-)Nick Hodge
 
Programming language crisis
Programming language crisisProgramming language crisis
Programming language crisisNick Hodge
 
Popfly mashups for the masses
Popfly mashups for the massesPopfly mashups for the masses
Popfly mashups for the massesNick Hodge
 
Php iis microsoft
Php iis microsoftPhp iis microsoft
Php iis microsoftNick Hodge
 
Osdc php preday odata 2011
Osdc php preday odata 2011Osdc php preday odata 2011
Osdc php preday odata 2011Nick Hodge
 
Nsw public sector architects
Nsw public sector architectsNsw public sector architects
Nsw public sector architectsNick Hodge
 
Mobile marketing
Mobile marketingMobile marketing
Mobile marketingNick Hodge
 
Microsoft gcio nsw 30 apr2008
Microsoft gcio nsw 30 apr2008Microsoft gcio nsw 30 apr2008
Microsoft gcio nsw 30 apr2008Nick Hodge
 
Microsoft and opensource ms ps 2011
Microsoft and opensource ms ps 2011Microsoft and opensource ms ps 2011
Microsoft and opensource ms ps 2011Nick Hodge
 
Mah tweets oss wp7
Mah tweets oss wp7Mah tweets oss wp7
Mah tweets oss wp7Nick Hodge
 
Introduction to web 2
Introduction to web 2Introduction to web 2
Introduction to web 2Nick Hodge
 

Mais de Nick Hodge (20)

Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Virtual #appfest 18th Dec 2012
Virtual #appfest 18th Dec 2012Virtual #appfest 18th Dec 2012
Virtual #appfest 18th Dec 2012
 
Victorian principals 17 may2007
Victorian principals 17 may2007Victorian principals 17 may2007
Victorian principals 17 may2007
 
Telstra ux presentation 14 dec 2012
Telstra ux presentation 14 dec 2012Telstra ux presentation 14 dec 2012
Telstra ux presentation 14 dec 2012
 
Technology and politics digital marketing v5
Technology and politics digital marketing v5Technology and politics digital marketing v5
Technology and politics digital marketing v5
 
Technical windows 8 and windows phone 8 apps
Technical windows 8  and windows phone 8 appsTechnical windows 8  and windows phone 8 apps
Technical windows 8 and windows phone 8 apps
 
Tech ed au 2012 dev223
Tech ed au 2012 dev223Tech ed au 2012 dev223
Tech ed au 2012 dev223
 
Tech ed au 2012 dev212
Tech ed au 2012 dev212Tech ed au 2012 dev212
Tech ed au 2012 dev212
 
Stealth PHP on IIS :-)
Stealth PHP on IIS :-)Stealth PHP on IIS :-)
Stealth PHP on IIS :-)
 
Prototyping
PrototypingPrototyping
Prototyping
 
Programming language crisis
Programming language crisisProgramming language crisis
Programming language crisis
 
Popfly mashups for the masses
Popfly mashups for the massesPopfly mashups for the masses
Popfly mashups for the masses
 
Php iis microsoft
Php iis microsoftPhp iis microsoft
Php iis microsoft
 
Osdc php preday odata 2011
Osdc php preday odata 2011Osdc php preday odata 2011
Osdc php preday odata 2011
 
Nsw public sector architects
Nsw public sector architectsNsw public sector architects
Nsw public sector architects
 
Mobile marketing
Mobile marketingMobile marketing
Mobile marketing
 
Microsoft gcio nsw 30 apr2008
Microsoft gcio nsw 30 apr2008Microsoft gcio nsw 30 apr2008
Microsoft gcio nsw 30 apr2008
 
Microsoft and opensource ms ps 2011
Microsoft and opensource ms ps 2011Microsoft and opensource ms ps 2011
Microsoft and opensource ms ps 2011
 
Mah tweets oss wp7
Mah tweets oss wp7Mah tweets oss wp7
Mah tweets oss wp7
 
Introduction to web 2
Introduction to web 2Introduction to web 2
Introduction to web 2
 

Último

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Último (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Jaoo irony

  • 1. IronPython combines the best of Python and .NET. Microsoft: IronRuby, IronPython and the Dynamic Language Runtime Nick Hodge Professional Geek, Microsoft Australia @nickhodge nhodge@microsoft.com
  • 2. HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE
  • 3.
  • 4.
  • 5. Dynamic languages • Love ‘em or Hate ‘em People are Using ‘em • History – Visual Basic; implemented as Classic .asp • Language / Framework tie in – PHP (Wordpress) – Ruby (Rails, Merb) – Javascript (DOM/Browser to jQuery et al)
  • 6. .NET 4.0 .NET 3.5LINQ DLR .NET 2.0 The {C|D}LR .NET 1.0 GC BCL ReflectionJIT Generics In Runtime Expression Trees Extension Methods Statement Trees Call Site Caching Dynamic Dispatch Dynamic Codegen Verifier Sandbox Silverlight Fast Delegates Dynamic Methods JoelPobar
  • 7. Dynamic Language Runtime (DLR) The Stack IronPython IronRuby Boo, et al .NET 2.0 (CLR) CoreCLR Windows Silverlight 2.0 Mac
  • 8.
  • 9. Cats and Dogs Living Together
  • 10. Dynamic Language Runtime (DLR) Open Source = Consequences IronPython IronRuby ECMA 334/335 CLI (eg: Mono) Moonlight2CoreCLR Linux (et al) Moonlight Firefox (et al) MsPL Open Source
  • 12.
  • 13. Inspiration • How could Microsoft have screwed up so badly that the CLR is far worse than the JVM for dynamic languages? – Jython shows that dynamic languages can run well on the JVM • Jim Hugunin decided to write a short pithy paper called, “Why .NET is a terrible platform for dynamic languages” – 2003 • 2007: John Lam (.NET  MRI)
  • 14. Dynamic Language Runtime • Abstracted framework for implementing a dynamic language on .NET/CLR • Back-end compilers • Dynamic operations on Objects • Common Hosting of Languages • Building your own language with DLR + ANTLR3 – http://www.bitwisemag.com/2/DLR-Build-Your-Own-Language – Dermot Hogan. My tiny mind has assploded • Check out: Irony: Script.NET, Lua – http://codeplex.com/irony
  • 15. • IronPython, IronRuby – http://codeplex.com/ironpython – http://ironruby.net/ • Codeplex == TFS “in the cloud”  • Core V1 components – Trees, Sites, Binders – Will ship in .NET Framework 4.0 – Basis for C# 4.0’s dynamic • Future pieces are also available today – Microsoft.Scripting.dll • http://langnetsymposium.com/2009/talks.aspx • (IronRuby is in github) It’s on Codeplex
  • 16. • Ruby – Notorious for no formal specification – RubySpec: now used by MRI, JRuby, IronRuby… • Python – New movement in recent 6 weeks Language Specifications
  • 17. • Groovy (yes, Java scripting!) • Nua (Lua) • IronScheme • Phalanger (PHP on CLR/DLR) • Basic Basic and Basic Javascript (egs) Languages on the DLR
  • 18.
  • 19. IPy 1.0 •Shipped Sept. 2006 •v2.4 language compatibility •27/54 built-in modules IPy 1.1 •Shipped April 2007 •Limited v2.5 language features •More Modules •Top user issues •VS Integration (VSX sample) IPy 2.0 •Current Focus •Fall 2008 •v2.5 language compatibility •Built on DLR •More modules •Top User Issues IPy 2.6 •Alpha Released •H1 2009 •v2.6 language compatibility •Productize VS integration IPy 3.0 •In Planning •H2 2009 ? •Python 3000 language compatibility •Support for next version of VS IronPython Roadmap
  • 20. IronRuby 0.3 • Now IronRuby 1.0 • Targetting mid ’09 • Ruby on Rails IronRuby Roadmap http://ironruby.net/
  • 21. IronPython combines the best of Python and .NET. Microsoft: IronRuby, IronPython and the Dynamic Language Runtime Nick Hodge Professional Geek, Microsoft Australia @nickhodge nhodge@microsoft.com

Notas do Editor

  1. MsPL (similar to a BSD-type license) IronPython code acceptance vs. IronRuby
  2. http://www.flickr.com/photos/john_lam/2232308534/ IronPython was originally created by Jim Hugunin, who also was the original creator of Jython. Jim wanted to write a paper titled “Why .NET is a terrible platform for dynamic languages” Microsoft hired Jim to disprove his own paper Then came IronPython 1.0 Abstracted out DLR IronPython 2.x (and IronRuby, John Lam)