ironsprog - community day 2010

32
IronSprog //kristiankristensen.dk twitter.com/kkristensen kristian.kristensen@micro soft.com

Upload: kristian-kristensen

Post on 13-May-2015

647 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: IronSprog - Community Day 2010

IronSprog

//kristiankristensen.dktwitter.com/kkristensen

[email protected]

Page 2: IronSprog - Community Day 2010

Dynamic Languages

Dynamic Language Runtime

Demo!

45 min 30 min

Agenda

Page 3: IronSprog - Community Day 2010

Why Dynamic Languages

Fashion

Fame

Weight LossInterest

Fortune

Page 4: IronSprog - Community Day 2010

What makes a language “dynamic”?

Page 5: IronSprog - Community Day 2010

Click icon to add picture

Page 6: IronSprog - Community Day 2010

Click icon to add picture

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

Page 7: IronSprog - Community Day 2010

Click icon to add picture

Page 8: IronSprog - Community Day 2010

Click icon to add picture

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

Page 9: IronSprog - Community Day 2010

Why Dynamic Languages

Simplicity

ExpressivePerspective

Page 10: IronSprog - Community Day 2010

http://www.flickr.com/photos/parksy/828680991/sizes/o/

Page 11: IronSprog - Community Day 2010

http://www.flickr.com/photos/jamesdale10/2151196493/

http://www.flickr.com/photos/pandiyan/1339056452/

Page 12: IronSprog - Community Day 2010

The traditional view of the world

DynamicLanguages

Simple and succinct

Implicitly typed

Meta-programming

No compilation

StaticLanguages

Robust

Performance

Intelligent tools

Better scaling

Page 13: IronSprog - Community Day 2010

Dynamic Language Runtime

Page 14: IronSprog - Community Day 2010

Dynamic Languages on .NET

IronPython IronRuby

C# VB.NET

Common Language Runtime

Iron?

Page 15: IronSprog - Community Day 2010

Multiple Language Dynamic Dispatch

ObjectBinder

PythonBinder

RubyBinder

COMBinder

Dynamic Language RuntimeGetMember

Name=“Foo”, IgnoreCase=false

IronPythonx.Foo

IronRubyx.Foo

C#x.Foo

VB.NETx.Foo

Page 16: IronSprog - Community Day 2010

Common Language = CLR + DLR

Today’s view of the world

DynamicLanguages

Simple and succinct

Implicitly typed

Meta-programming

No compilation

StaticLanguages

Robust

Performance

Intelligent tools

Better scaling

Page 17: IronSprog - Community Day 2010
Page 18: IronSprog - Community Day 2010

Iron languages arefirst class .NET citizens

Page 19: IronSprog - Community Day 2010

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

Page 20: IronSprog - Community Day 2010
Page 21: IronSprog - Community Day 2010

Languages on DLR

• Pictures

Page 22: IronSprog - Community Day 2010

Why Iron* Languages?

Easy to extend

Easy to embed

.NET Interop

Page 23: IronSprog - Community Day 2010

” Talk is cheap. Show me the code.”- Linus Torvalds

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

Page 24: IronSprog - Community Day 2010

Ruby Test Framework

Page 25: IronSprog - Community Day 2010

[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); } }

Page 26: IronSprog - Community Day 2010

IronPython in Visual Studio

http://ironpython.net/tools

Page 27: IronSprog - Community Day 2010

Easy to embed aka BadPaint

Page 28: IronSprog - Community Day 2010

The road ahead (picture)

Page 29: IronSprog - Community Day 2010
Page 30: IronSprog - Community Day 2010

http://ironpython.codeplex.com

http://ironruby.net

http://dlr.codeplex.com

Page 31: IronSprog - Community Day 2010

The end.

Page 32: IronSprog - Community Day 2010

//kristiankristensen.dk//twitter.com/kkristensen

[email protected]