IronPython combines the best of Python and .NET. Python and .NET. - - PowerPoint PPT Presentation

ironpython combines the best of python and net python and
SMART_READER_LITE
LIVE PREVIEW

IronPython combines the best of Python and .NET. Python and .NET. - - PowerPoint PPT Presentation

Microsoft: IronRuby, IronPython and the Dynamic Language Runtime IronPython combines the best of Python and .NET. Python and .NET. Nick Hodge Professional Geek, Microsoft Australia @nickhodge nhodge@microsoft.com HAI HAI CAN HAS STDIO?


slide-1
SLIDE 1

IronPython combines the best of Python and .NET.

Microsoft: IronRuby, IronPython and the Dynamic Language Runtime

Python and .NET.

Nick Hodge Professional Geek, Microsoft Australia @nickhodge nhodge@microsoft.com

slide-2
SLIDE 2

HAI HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE

slide-3
SLIDE 3
slide-4
SLIDE 4
slide-5
SLIDE 5

Dynamic languages

  • Love ‘em or Hate ‘em People are Using ‘em
  • History

– Visual Basic; implemented as Classic .asp

  • Language / Framework tie in
  • Language / Framework tie in

– PHP (Wordpress) – Ruby (Rails, Merb) – Javascript (DOM/Browser to jQuery et al)

slide-6
SLIDE 6

.NET 4.0 .NET 3.5 LINQ DLR .NET 2.0

The {C|D}LR

Generics Generics Expression Trees Expression Trees Extension Methods Extension Methods Statement Trees Statement Trees Call Site Caching Call Site Caching Dynamic Dispatch Dynamic Dispatch Silverlight Fast Fast Delegates Dynamic Dynamic

Joel

.NET 2.0 .NET 1.0

GC BCL Reflection JIT In Runtime Dynamic Dynamic Codegen Verifier Verifier Sandbox Delegates Delegates Methods

Pobar

slide-7
SLIDE 7

Dynamic Language Runtime (DLR)

The Stack

IronPython IronRuby Boo, et al .NET 2.0 (CLR) CoreCLR Windows Silverlight 2.0 Mac

slide-8
SLIDE 8
slide-9
SLIDE 9

Cats and Dogs Living Together

slide-10
SLIDE 10

Dynamic Language Runtime (DLR)

Open Source = Consequences

IronPython IronRuby

Moonlight2CoreCLR

MsPL

ECMA 334/335 CLI (eg: Mono)

Moonlight2CoreCLR

Linux (et al) Moonlight Firefox (et al)

Open Source

slide-11
SLIDE 11

Why Iron*?

slide-12
SLIDE 12
slide-13
SLIDE 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)
slide-14
SLIDE 14

Dynamic Language Runtime

  • Abstracted framework for implementing a dynamic language
  • n .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

slide-15
SLIDE 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

It’s on Codeplex

  • 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)
slide-16
SLIDE 16
  • Ruby

– Notorious for no formal specification – RubySpec: now used by MRI, JRuby, IronRuby…

  • Python

Language Specifications

  • Python

– New movement in recent 6 weeks

slide-17
SLIDE 17
  • Groovy (yes, Java scripting!)
  • Nua (Lua)
  • IronScheme
  • Phalanger (PHP on CLR/DLR)
  • Basic Basic and Basic Javascript (egs)

Languages on the DLR

slide-18
SLIDE 18
slide-19
SLIDE 19

IPy 1.0

  • Shipped
  • Sept. 2006
  • v2.4 language

compatibility

IPy 1.1

  • Shipped

April 2007

  • Limited v2.5

language features

IPy 2.0

  • Current Focus
  • Fall 2008
  • v2.5 language

compatibility

IPy 2.6

  • Alpha Released
  • H1 2009
  • v2.6 language

compatibility

IPy 3.0

  • In Planning
  • H2 2009 ?
  • Python 3000

language

IronPython Roadmap

  • 27/54 built-in

modules features

  • More Modules
  • Top user issues
  • VS Integration

(VSX sample) compatibility

  • Built on DLR
  • More modules
  • Top User Issues

compatibility

  • Productize VS

integration language compatibility

  • Support for next

version of VS

slide-20
SLIDE 20

IronRuby 0.3

  • Now

IronRuby 1.0

  • Targetting

IronRuby Roadmap

  • Now
  • Targetting

mid ’09

  • Ruby on Rails

http://ironruby.net/

slide-21
SLIDE 21

IronPython combines the best of Python and .NET.

Microsoft: IronRuby, IronPython and the Dynamic Language Runtime

Python and .NET.

Nick Hodge Professional Geek, Microsoft Australia @nickhodge nhodge@microsoft.com