Iron* - An Introduction to Getting Dynamic on .NET - - PowerPoint PPT Presentation

iron an introduction to getting dynamic on net
SMART_READER_LITE
LIVE PREVIEW

Iron* - An Introduction to Getting Dynamic on .NET - - PowerPoint PPT Presentation

Iron* - An Introduction to Getting Dynamic on .NET //kristiankristensen.dk twitter.com/kkristensen mail@kristiankristensen.dk Question Agenda Dynamic Languages Dynamic Demo! Language Runtime 45 min 15 min Why Dynamic Languages


slide-1
SLIDE 1

Iron* - An Introduction to Getting Dynamic on .NET

//kristiankristensen.dk twitter.com/kkristensen mail@kristiankristensen.dk

slide-2
SLIDE 2

Question

slide-3
SLIDE 3

Dynamic Languages Dynamic Language Runtime Demo!

45 min 15 min

Agenda

slide-4
SLIDE 4

Why Dynamic Languages

Fashion Fame Weight Loss Interest Fortune

slide-5
SLIDE 5

What makes a language “dynamic”?

slide-6
SLIDE 6
slide-7
SLIDE 7

http://www.flickr.com/photos/35064820@N00/3950391591/

slide-8
SLIDE 8
slide-9
SLIDE 9

http://www.flickr.com/photos/janineberben/3219556705

slide-10
SLIDE 10

Why Dynamic Languages

Simplicity Expressive Perspective

slide-11
SLIDE 11
slide-12
SLIDE 12
slide-13
SLIDE 13

The traditional view of the world

Dynamic Languages

Simple and succinct Implicitly typed Meta-programming No compilation

Static Languages

Robust Performance Intelligent tools Better scaling

slide-14
SLIDE 14

Dynamic Language Runtime

slide-15
SLIDE 15

Dynamic Languages on .NET

IronPython IronRuby C# VB.NET

Common Language Runtime

Iron?

slide-16
SLIDE 16

Multiple Language Dynamic Dispatch

Object Binder Python Binder Ruby Binder COM Binder

Dynamic Language Runtime

GetMember Name=“Foo”, IgnoreCase=false IronPython x.Foo IronRuby x.Foo C# x.Foo VB.NET x.Foo

slide-17
SLIDE 17

Common Language = CLR + DLR

Today’s view of the world

Dynamic Languages

Simple and succinct Implicitly typed Meta-programming No compilation

Static Languages

Robust Performance Intelligent tools Better scaling

slide-18
SLIDE 18
slide-19
SLIDE 19

Iron languages are first class .NET citizens

slide-20
SLIDE 20

IronWhat?

  • True language implementation

– True to the language – True to the community – True to the experience – Excellent performance

  • Great integration with .NET

– Easy to use .NET libraries – Easy to use other .NET languages – Easy to use in .NET hosts – Easy to use with .NET tools

  • Implementation Running On .NET
slide-21
SLIDE 21
slide-22
SLIDE 22

Languages on DLR

  • Pictures
slide-23
SLIDE 23

Why Iron* Languages?

Easy to extend Easy to embed .NET Interop

slide-24
SLIDE 24

” Talk is cheap. Show me the code.”

  • Linus Torvalds

http://en.wikiquote.org/wiki/Linus_Torvalds

slide-25
SLIDE 25

Ruby Test Framework

slide-26
SLIDE 26

[TestClass] public class StackTest { [TestMethod] public void NewStackHasZeroElements() { var s = new Stack<string>(); Assert.AreEqual<int>(0, s.Count); } [TestMethod] public void StackPeekTopElement() { var s = new Stack<string>(); s.Push("bob"); Assert.AreEqual<int>(1, s.Count); Assert.AreEqual<string>("bob", s.Peek()); } [TestMethod] public void StackPopTopElement() { var s = new Stack<string>(); s.Push("bob"); Assert.AreEqual<string>("bob", s.Pop()); Assert.AreEqual<int>(0, s.Count); } }

slide-27
SLIDE 27

IronPython in Visual Studio

http://ironpython.net/tools

slide-28
SLIDE 28

Easy to embed aka BadPaint

slide-29
SLIDE 29

The road ahead (picture)

slide-30
SLIDE 30
slide-31
SLIDE 31

http://ironpython.net http://ironruby.net

http://dlr.codeplex.com

slide-32
SLIDE 32

The end.

slide-33
SLIDE 33

//kristiankristensen.dk //twitter.com/kkristensen mail@kristiankristensen.dk