SlideShare una empresa de Scribd logo
1 de 23
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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (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
 

Destacado

Network programming in python..
Network programming in python..Network programming in python..
Network programming in python..
Bharath Kumar
 

Destacado (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 a SyPy IronPython

Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
lennartkats
 
Modified.net overview
Modified.net overviewModified.net overview
Modified.net overview
Faisal Aziz
 
POCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and OverviewPOCO C++ Libraries Intro and Overview
POCO C++ Libraries Intro and Overview
Günter Obiltschnig
 
Dot Net Framework An Overview
Dot Net Framework   An OverviewDot Net Framework   An Overview
Dot Net Framework An Overview
MicrosoftFeed
 
.Net overview
.Net overview.Net overview
.Net overview
madydud
 
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
 

Similar a 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
 

Más de Nick Hodge

Virtual #appfest 18th Dec 2012
Virtual #appfest 18th Dec 2012Virtual #appfest 18th Dec 2012
Virtual #appfest 18th Dec 2012
Nick Hodge
 
Victorian principals 17 may2007
Victorian principals 17 may2007Victorian principals 17 may2007
Victorian principals 17 may2007
Nick Hodge
 
Telstra ux presentation 14 dec 2012
Telstra ux presentation 14 dec 2012Telstra ux presentation 14 dec 2012
Telstra ux presentation 14 dec 2012
Nick Hodge
 

Más 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

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 

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

Notas del editor

  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