IronSprog - Community Day 2010
-
Upload
kristian-kristensen -
Category
Technology
-
view
653 -
download
0
Transcript of IronSprog - Community Day 2010
![Page 2: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/2.jpg)
Dynamic Languages
Dynamic Language Runtime
Demo!
45 min 30 min
Agenda
![Page 3: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/3.jpg)
Why Dynamic Languages
Fashion
Fame
Weight LossInterest
Fortune
![Page 4: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/4.jpg)
What makes a language “dynamic”?
![Page 5: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/5.jpg)
Click icon to add picture
![Page 6: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/6.jpg)
Click icon to add picture
http://www.flickr.com/photos/35064820@N00/3950391591/
![Page 7: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/7.jpg)
Click icon to add picture
![Page 8: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/8.jpg)
Click icon to add picture
http://www.flickr.com/photos/janineberben/3219556705/
![Page 9: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/9.jpg)
Why Dynamic Languages
Simplicity
ExpressivePerspective
![Page 10: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/10.jpg)
http://www.flickr.com/photos/parksy/828680991/sizes/o/
![Page 11: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/11.jpg)
http://www.flickr.com/photos/jamesdale10/2151196493/
http://www.flickr.com/photos/pandiyan/1339056452/
![Page 12: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/13.jpg)
Dynamic Language Runtime
![Page 14: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/14.jpg)
Dynamic Languages on .NET
IronPython IronRuby
C# VB.NET
Common Language Runtime
Iron?
![Page 15: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/17.jpg)
![Page 18: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/18.jpg)
Iron languages arefirst class .NET citizens
![Page 19: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/20.jpg)
![Page 21: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/21.jpg)
Languages on DLR
• Pictures
![Page 22: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/22.jpg)
Why Iron* Languages?
Easy to extend
Easy to embed
.NET Interop
![Page 23: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/23.jpg)
” Talk is cheap. Show me the code.”- Linus Torvalds
http://en.wikiquote.org/wiki/Linus_Torvalds
![Page 24: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/24.jpg)
Ruby Test Framework
![Page 25: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/25.jpg)
[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](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/26.jpg)
IronPython in Visual Studio
http://ironpython.net/tools
![Page 27: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/27.jpg)
Easy to embed aka BadPaint
![Page 28: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/28.jpg)
The road ahead (picture)
![Page 29: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/29.jpg)
![Page 30: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/30.jpg)
http://ironpython.codeplex.com
http://ironruby.net
http://dlr.codeplex.com
![Page 31: IronSprog - Community Day 2010](https://reader036.fdocuments.net/reader036/viewer/2022070315/5552dd9bb4c90532498b4cd4/html5/thumbnails/31.jpg)
The end.