SlideShare a Scribd company logo
IronPython combines the best of
Python and .NET.
IronPython
Nick Hodge
Professional Geek, Microsoft Australia
@nickhodge
nhodge@microsoft.com
General Courtney Hicks Hodges
“Gold” Arromanches,
Normandy, France
Inspiration
“The speed of the current system is so low as to render the current
implementation useless for anything beyond demonstration purposes.” –
ActiveState’s report on Python for .NET
“The CLI is, by design, not friendly to dynamic languages. Prototypes were
built, but ran way too slowly.” – Jon Udell, InfoWorld, Aug. 2003
• 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
• I decided to write a short pithy paper called, “Why .NET is a terrible
platform for dynamic languages”
.NET ?.?DLR2
.NET 4.0
.NET 3.5LINQ
DLR
.NET 2.0
The Common Language Runtime
.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
Script
Hosting
??? ???
Python
Binder
Ruby
Binder
COM
Binder
JavaScript
Binder
Object
Binder
Dynamic Languages on .NET
Dynamic Language Runtime
Statement Trees Dynamic Dispatch Call Site Caching
IronPython IronRuby C# VB.NET Others…
• Today it shares a site with IronPython
– http://codeplex.com/ironpython
• Next month it will move to its own site
• MSPL is a permissive Open Source license
• Core V1 components – Trees, Sites, Binders
– Will ship in .NET Framework 4.0
– Base for C# 4.0’s dynamic
• Future pieces are also available today
– Microsoft.Scripting.dll for now
DLR is under MSPL and on codeplex
When to use IronPython?
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
LINQ?
Standard Pystone Benchmark
higher numbers are better
0K
20K
40K
60K
80K
100K
IronPython
0.1
Python
2.3
IronPython
1.0
IronPython
2.0beta5
Python
2.5
Python
2.1
46K
101
K90K
80K
50K
36K
Two Object Worlds == Pain
Python
Objects
C-Based
Objects
py1 c2
IronPython can interop with code
written in other .NET lanugages.
Extending IronPython in C#
namespace noddy
{
public class Noddy
{
public string first, last;
public Noddy(string first, string last)
{
this.first = first;
this.last = last;
}
}
}
IronPython is embeddable in
.NET applications.
import clr
clr.AddReference("IronPython.dll")
from IronPython.Hosting import PythonEngine
engine = PythonEngine.CurrentEngine
scope = engine.CreateScope()
source =
engine.CreateScriptSourceFromString('6*9')
result = source.Execute(scope)
http://ironpython.codeplex.com/ironpython
(Including SVN access to source)
IronPython combines the best of
Python and .NET.
IronPython
Nick Hodge
Professional Geek, Microsoft Australia
@nickhodge
nhodge@microsoft.com

More Related Content

What's hot

Overview of the new .NET Core and .NET Platform Standard
Overview of the new .NET Core and .NET Platform StandardOverview of the new .NET Core and .NET Platform Standard
Overview of the new .NET Core and .NET Platform Standard
Alex Thissen
 
.NET - The Current Spectrum
.NET -  The Current Spectrum.NET -  The Current Spectrum
.NET - The Current Spectrum
Rasik Bihari Tiwari
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4
aspyker
 
Pulumi iac on gcp
Pulumi iac on gcpPulumi iac on gcp
Pulumi iac on gcp
Vishwas N
 
20140708 - Jeremy Edberg: How Netflix Delivers Software
20140708 - Jeremy Edberg: How Netflix Delivers Software20140708 - Jeremy Edberg: How Netflix Delivers Software
20140708 - Jeremy Edberg: How Netflix Delivers Software
DevOps Chicago
 
Kotlin Multiplatfom In Action
Kotlin Multiplatfom In ActionKotlin Multiplatfom In Action
Kotlin Multiplatfom In Action
Marko Mitic
 
Getting Started Contributing to Docker
Getting Started Contributing to DockerGetting Started Contributing to Docker
Getting Started Contributing to Docker
Docker, Inc.
 
Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++
Ethan Ram
 
.NET Standard - NuGet Analysis
.NET Standard - NuGet Analysis.NET Standard - NuGet Analysis
.NET Standard - NuGet Analysis
Immo Landwerth
 
Netflix: From Zero to Production-Ready in Minutes (QCon 2017)
Netflix: From Zero to Production-Ready in Minutes (QCon 2017)Netflix: From Zero to Production-Ready in Minutes (QCon 2017)
Netflix: From Zero to Production-Ready in Minutes (QCon 2017)
Tim Bozarth
 
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
KURMA - A Containerized Container Platform - KubeCon 2016
KURMA - A Containerized Container Platform - KubeCon 2016KURMA - A Containerized Container Platform - KubeCon 2016
KURMA - A Containerized Container Platform - KubeCon 2016
Apcera
 
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel MitarJavantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Geoscience and Microservices
Geoscience and Microservices Geoscience and Microservices
Geoscience and Microservices
Matthew Gerring
 
Docker: Fire your Sysadmin and use Docker to build, ship and run any app, any...
Docker: Fire your Sysadmin and use Docker to build, ship and run any app, any...Docker: Fire your Sysadmin and use Docker to build, ship and run any app, any...
Docker: Fire your Sysadmin and use Docker to build, ship and run any app, any...
Phil Reither
 
Docker ata glance
Docker ata glanceDocker ata glance
Docker ata glance
Philip Wang
 
Building CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and KubernetesBuilding CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and Kubernetes
Janakiram MSV
 
Uncover the mysteries of infrastructure as code (iac)!
Uncover the mysteries of infrastructure as code (iac)!Uncover the mysteries of infrastructure as code (iac)!
Uncover the mysteries of infrastructure as code (iac)!
Prashant Kalkar
 
Devoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National PoliceDevoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National Police
Bert Jan Schrijver
 

What's hot (20)

Overview of the new .NET Core and .NET Platform Standard
Overview of the new .NET Core and .NET Platform StandardOverview of the new .NET Core and .NET Platform Standard
Overview of the new .NET Core and .NET Platform Standard
 
.NET - The Current Spectrum
.NET -  The Current Spectrum.NET -  The Current Spectrum
.NET - The Current Spectrum
 
Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4Netflix OSS Meetup Season 4 Episode 4
Netflix OSS Meetup Season 4 Episode 4
 
Pulumi iac on gcp
Pulumi iac on gcpPulumi iac on gcp
Pulumi iac on gcp
 
20140708 - Jeremy Edberg: How Netflix Delivers Software
20140708 - Jeremy Edberg: How Netflix Delivers Software20140708 - Jeremy Edberg: How Netflix Delivers Software
20140708 - Jeremy Edberg: How Netflix Delivers Software
 
Kotlin Multiplatfom In Action
Kotlin Multiplatfom In ActionKotlin Multiplatfom In Action
Kotlin Multiplatfom In Action
 
Getting Started Contributing to Docker
Getting Started Contributing to DockerGetting Started Contributing to Docker
Getting Started Contributing to Docker
 
Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++Kiss.ts - The Keep It Simple Software Stack for 2017++
Kiss.ts - The Keep It Simple Software Stack for 2017++
 
.NET Standard - NuGet Analysis
.NET Standard - NuGet Analysis.NET Standard - NuGet Analysis
.NET Standard - NuGet Analysis
 
Netflix: From Zero to Production-Ready in Minutes (QCon 2017)
Netflix: From Zero to Production-Ready in Minutes (QCon 2017)Netflix: From Zero to Production-Ready in Minutes (QCon 2017)
Netflix: From Zero to Production-Ready in Minutes (QCon 2017)
 
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
Javantura v4 - CroDuke Indy and the Kingdom of Java Skills - Branko Mihaljevi...
 
KURMA - A Containerized Container Platform - KubeCon 2016
KURMA - A Containerized Container Platform - KubeCon 2016KURMA - A Containerized Container Platform - KubeCon 2016
KURMA - A Containerized Container Platform - KubeCon 2016
 
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel MitarJavantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
Javantura v4 - Test-driven documentation with Spring REST Docs - Danijel Mitar
 
I believe in rust
I believe in rustI believe in rust
I believe in rust
 
Geoscience and Microservices
Geoscience and Microservices Geoscience and Microservices
Geoscience and Microservices
 
Docker: Fire your Sysadmin and use Docker to build, ship and run any app, any...
Docker: Fire your Sysadmin and use Docker to build, ship and run any app, any...Docker: Fire your Sysadmin and use Docker to build, ship and run any app, any...
Docker: Fire your Sysadmin and use Docker to build, ship and run any app, any...
 
Docker ata glance
Docker ata glanceDocker ata glance
Docker ata glance
 
Building CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and KubernetesBuilding CI/CD Pipelines with Jenkins and Kubernetes
Building CI/CD Pipelines with Jenkins and Kubernetes
 
Uncover the mysteries of infrastructure as code (iac)!
Uncover the mysteries of infrastructure as code (iac)!Uncover the mysteries of infrastructure as code (iac)!
Uncover the mysteries of infrastructure as code (iac)!
 
Devoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National PoliceDevoxx PL 2018 - Microservices in action at the Dutch National Police
Devoxx PL 2018 - Microservices in action at the Dutch National Police
 

Viewers also liked

Jython
JythonJython
Jython
jbrendel
 
Mixing Python and Java
Mixing Python and JavaMixing Python and Java
Mixing Python and Java
Andreas Schreiber
 
Jython: Integrating Python and Java
Jython: Integrating Python and JavaJython: Integrating Python and Java
Jython: Integrating Python and Java
Charles Anderson
 
What do you mean it needs to be Java based? How jython saved the day.
What do you mean it needs to be Java based? How jython saved the day.What do you mean it needs to be Java based? How jython saved the day.
What do you mean it needs to be Java based? How jython saved the day.
Mark Rees
 
The .NET developer's introduction to IronPython
The .NET developer's introduction to IronPythonThe .NET developer's introduction to IronPython
The .NET developer's introduction to IronPython
Dror Helper
 
Communication between Java and Python
Communication between Java and PythonCommunication between Java and Python
Communication between Java and Python
Andreas Schreiber
 
Network programming in python..
Network programming in python..Network programming in python..
Network programming in python..Bharath Kumar
 
Python Network Programming
Python Network ProgrammingPython Network Programming
Python Network Programming
Tae Young Lee
 
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
Will Huang
 
Mastering Python 3 I/O
Mastering Python 3 I/OMastering Python 3 I/O
Mastering Python 3 I/O
David Beazley (Dabeaz LLC)
 
Jython
JythonJython

Viewers also liked (11)

Jython
JythonJython
Jython
 
Mixing Python and Java
Mixing Python and JavaMixing Python and Java
Mixing Python and Java
 
Jython: Integrating Python and Java
Jython: Integrating Python and JavaJython: Integrating Python and Java
Jython: Integrating Python and Java
 
What do you mean it needs to be Java based? How jython saved the day.
What do you mean it needs to be Java based? How jython saved the day.What do you mean it needs to be Java based? How jython saved the day.
What do you mean it needs to be Java based? How jython saved the day.
 
The .NET developer's introduction to IronPython
The .NET developer's introduction to IronPythonThe .NET developer's introduction to IronPython
The .NET developer's introduction to IronPython
 
Communication between Java and Python
Communication between Java and PythonCommunication between Java and Python
Communication between Java and Python
 
Network programming in python..
Network programming in python..Network programming in python..
Network programming in python..
 
Python Network Programming
Python Network ProgrammingPython Network Programming
Python Network Programming
 
快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架快快樂樂學 Angular 2 開發框架
快快樂樂學 Angular 2 開發框架
 
Mastering Python 3 I/O
Mastering Python 3 I/OMastering Python 3 I/O
Mastering Python 3 I/O
 
Jython
JythonJython
Jython
 

Similar to SyPy IronPython

Jaoo irony
Jaoo ironyJaoo irony
Jaoo irony
Nick Hodge
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 
OSS at Microsoft
OSS at MicrosoftOSS at Microsoft
OSS at Microsoft
weltling
 
Evalution about programming language part 1
Evalution about programming language part 1Evalution about programming language part 1
Evalution about programming language part 1
Synapseindiappsdevelopment
 
Net framework
Net frameworkNet framework
Net framework
Mahfuz1061
 
.Net Core 3.0. What’s inside? Павло Голубович
.Net Core 3.0. What’s inside? Павло Голубович.Net Core 3.0. What’s inside? Павло Голубович
.Net Core 3.0. What’s inside? Павло Голубович
Sigma Software
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
Rodolfo Finochietti
 
Future of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows PlatformsFuture of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows Platforms
Aniruddha Chakrabarti
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overviewFaisal Aziz
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saber
Danilo Bordini
 
what is .net
what is .netwhat is .net
what is .net
Sireesh K
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewGünter Obiltschnig
 
Dot Net Framework An Overview
Dot Net Framework   An OverviewDot Net Framework   An Overview
Dot Net Framework An OverviewMicrosoftFeed
 
.Net overview
.Net overview.Net overview
.Net overviewmadydud
 
Best DotNet Training in Delhi
Best   DotNet Training  in DelhiBest   DotNet Training  in Delhi
Best DotNet Training in Delhi
Information Technology
 
Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!
All Things Open
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
Małgorzata Borzęcka
 

Similar to SyPy IronPython (20)

Jaoo irony
Jaoo ironyJaoo irony
Jaoo irony
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
OSS at Microsoft
OSS at MicrosoftOSS at Microsoft
OSS at Microsoft
 
Evalution about programming language part 1
Evalution about programming language part 1Evalution about programming language part 1
Evalution about programming language part 1
 
Net framework
Net frameworkNet framework
Net framework
 
.Net Core 3.0. What’s inside? Павло Голубович
.Net Core 3.0. What’s inside? Павло Голубович.Net Core 3.0. What’s inside? Павло Голубович
.Net Core 3.0. What’s inside? Павло Голубович
 
C#: Past, Present and Future
C#: Past, Present and FutureC#: Past, Present and Future
C#: Past, Present and Future
 
Future of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows PlatformsFuture of .NET - .NET on Non Windows Platforms
Future of .NET - .NET on Non Windows Platforms
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
 
O futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saberO futuro do .NET : O que eu preciso saber
O futuro do .NET : O que eu preciso saber
 
Cv fayaz
Cv fayazCv fayaz
Cv fayaz
 
what is .net
what is .netwhat is .net
what is .net
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
 
Dot Net Framework An Overview
Dot Net Framework   An OverviewDot Net Framework   An Overview
Dot Net Framework An Overview
 
.Net overview
.Net overview.Net overview
.Net overview
 
Net overview
Net overviewNet overview
Net overview
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 
Best DotNet Training in Delhi
Best   DotNet Training  in DelhiBest   DotNet Training  in Delhi
Best DotNet Training in Delhi
 
Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!Linux Distribution Collaboration …on a Mainframe!
Linux Distribution Collaboration …on a Mainframe!
 
Introduction to .NET Framework
Introduction to .NET FrameworkIntroduction to .NET Framework
Introduction to .NET Framework
 

More from Nick Hodge

Reactive programming
Reactive programmingReactive programming
Reactive programming
Nick 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 v5
Nick 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 apps
Nick Hodge
 
Tech ed au 2012 dev223
Tech ed au 2012 dev223Tech ed au 2012 dev223
Tech ed au 2012 dev223
Nick Hodge
 
Tech ed au 2012 dev212
Tech ed au 2012 dev212Tech ed au 2012 dev212
Tech ed au 2012 dev212
Nick Hodge
 
Stealth PHP on IIS :-)
Stealth PHP on IIS :-)Stealth PHP on IIS :-)
Stealth PHP on IIS :-)
Nick Hodge
 
Prototyping
PrototypingPrototyping
Prototyping
Nick Hodge
 
Programming language crisis
Programming language crisisProgramming language crisis
Programming language crisis
Nick Hodge
 
Popfly mashups for the masses
Popfly mashups for the massesPopfly mashups for the masses
Popfly mashups for the masses
Nick Hodge
 
Php iis microsoft
Php iis microsoftPhp iis microsoft
Php iis microsoft
Nick Hodge
 
Osdc php preday odata 2011
Osdc php preday odata 2011Osdc php preday odata 2011
Osdc php preday odata 2011
Nick Hodge
 
Nsw public sector architects
Nsw public sector architectsNsw public sector architects
Nsw public sector architects
Nick Hodge
 
Mobile marketing
Mobile marketingMobile marketing
Mobile marketing
Nick Hodge
 
Microsoft gcio nsw 30 apr2008
Microsoft gcio nsw 30 apr2008Microsoft gcio nsw 30 apr2008
Microsoft gcio nsw 30 apr2008
Nick Hodge
 
Microsoft and opensource ms ps 2011
Microsoft and opensource ms ps 2011Microsoft and opensource ms ps 2011
Microsoft and opensource ms ps 2011
Nick Hodge
 
Mah tweets oss wp7
Mah tweets oss wp7Mah tweets oss wp7
Mah tweets oss wp7
Nick Hodge
 
Introduction to web 2
Introduction to web 2Introduction to web 2
Introduction to web 2
Nick Hodge
 

More from 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
 

Recently uploaded

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 

Recently uploaded (20)

The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 

SyPy IronPython

  • 1. IronPython combines the best of Python and .NET. IronPython Nick Hodge Professional Geek, Microsoft Australia @nickhodge nhodge@microsoft.com
  • 2.
  • 3.
  • 6. Inspiration “The speed of the current system is so low as to render the current implementation useless for anything beyond demonstration purposes.” – ActiveState’s report on Python for .NET “The CLI is, by design, not friendly to dynamic languages. Prototypes were built, but ran way too slowly.” – Jon Udell, InfoWorld, Aug. 2003 • 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 • I decided to write a short pithy paper called, “Why .NET is a terrible platform for dynamic languages”
  • 7.
  • 8. .NET ?.?DLR2 .NET 4.0 .NET 3.5LINQ DLR .NET 2.0 The Common Language Runtime .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 Script Hosting ??? ???
  • 9. Python Binder Ruby Binder COM Binder JavaScript Binder Object Binder Dynamic Languages on .NET Dynamic Language Runtime Statement Trees Dynamic Dispatch Call Site Caching IronPython IronRuby C# VB.NET Others…
  • 10.
  • 11.
  • 12. • Today it shares a site with IronPython – http://codeplex.com/ironpython • Next month it will move to its own site • MSPL is a permissive Open Source license • Core V1 components – Trees, Sites, Binders – Will ship in .NET Framework 4.0 – Base for C# 4.0’s dynamic • Future pieces are also available today – Microsoft.Scripting.dll for now DLR is under MSPL and on codeplex
  • 13.
  • 14. When to use IronPython?
  • 15. 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 LINQ?
  • 16. Standard Pystone Benchmark higher numbers are better 0K 20K 40K 60K 80K 100K IronPython 0.1 Python 2.3 IronPython 1.0 IronPython 2.0beta5 Python 2.5 Python 2.1 46K 101 K90K 80K 50K 36K
  • 17. Two Object Worlds == Pain Python Objects C-Based Objects py1 c2
  • 18. IronPython can interop with code written in other .NET lanugages.
  • 19. Extending IronPython in C# namespace noddy { public class Noddy { public string first, last; public Noddy(string first, string last) { this.first = first; this.last = last; } } }
  • 20. IronPython is embeddable in .NET applications.
  • 21. import clr clr.AddReference("IronPython.dll") from IronPython.Hosting import PythonEngine engine = PythonEngine.CurrentEngine scope = engine.CreateScope() source = engine.CreateScriptSourceFromString('6*9') result = source.Execute(scope)
  • 23. IronPython combines the best of Python and .NET. IronPython Nick Hodge Professional Geek, Microsoft Australia @nickhodge nhodge@microsoft.com

Editor's Notes

  1. 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)
  2. MsPL (similar to a BSD-type license) IronPython code acceptance vs. IronRuby
  3. Talk about DLR