Irony and Ambiguity The Best Stories Irony Ambiguity Practice Feature Menu.
Jaoo irony
-
Upload
nick-hodge -
Category
Technology
-
view
81 -
download
0
description
Transcript of Jaoo irony
![Page 1: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/1.jpg)
IronPython combines the best of Python and .NET.
Microsoft: IronRuby, IronPython and the Dynamic Language Runtime
Nick HodgeProfessional Geek, Microsoft Australia@[email protected]
![Page 2: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/2.jpg)
HAI CAN HAS STDIO? VISIBLE "HAI WORLD!" KTHXBYE
![Page 3: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/3.jpg)
![Page 4: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/4.jpg)
![Page 5: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/5.jpg)
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)
![Page 6: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/6.jpg)
.NET 4.0
.NET 3.5LINQ
DLR
.NET 2.0
The {C|D}LR
.NET 1.0GC
BCL
ReflectionJIT
GenericsIn Runtime
ExpressionTrees
ExtensionMethods
StatementTrees
Call Site Caching
DynamicDispatch
DynamicCodegen
VerifierSandbox
Silverlight
FastDelegates
DynamicMethods
Joel
Pobar
![Page 7: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/7.jpg)
Dynamic Language Runtime (DLR)
The Stack
IronPython IronRuby Boo, et al
.NET 2.0 (CLR)CoreCLR
Windows
Silverlight 2.0
Mac
![Page 8: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/8.jpg)
![Page 9: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/9.jpg)
Cats and Dogs Living Together
![Page 10: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/10.jpg)
Dynamic Language Runtime (DLR)
Open Source = Consequences
IronPython IronRuby
ECMA 334/335 CLI (eg: Mono)
Moonlight2CoreCLR
Linux (et al)
Moonlight
Firefox (et al)
MsPL
OpenSource
![Page 11: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/11.jpg)
Why Iron*?
![Page 12: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/12.jpg)
![Page 13: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/13.jpg)
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)
![Page 14: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/14.jpg)
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
![Page 15: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/15.jpg)
• 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
![Page 16: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/16.jpg)
• Ruby– Notorious for no formal specification– RubySpec: now used by MRI, JRuby,
IronRuby…
• Python– New movement in recent 6 weeks
Language Specifications
![Page 17: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/17.jpg)
• Groovy (yes, Java scripting!)• Nua (Lua)• IronScheme• Phalanger (PHP on CLR/DLR)• Basic Basic and Basic Javascript (egs)
Languages on the DLR
![Page 18: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/18.jpg)
![Page 19: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/19.jpg)
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
![Page 20: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/20.jpg)
IronRuby 0.3• Now
IronRuby 1.0• Targetting
mid ’09• Ruby on Rails
IronRuby Roadmap
http://ironruby.net/
![Page 21: Jaoo irony](https://reader038.fdocuments.in/reader038/viewer/2022102618/554d34ddb4c90537678b476d/html5/thumbnails/21.jpg)
IronPython combines the best of Python and .NET.
Microsoft: IronRuby, IronPython and the Dynamic Language Runtime
Nick HodgeProfessional Geek, Microsoft Australia@[email protected]