Iron* - An Introduction to Getting Dynamic on .NET

1,680 views

Published on

In recent years dynamically typed languages have received more and more attention on the .NET platform. Initially, an implementation of Python showed up. Later, the Dynamic Language Runtime (DLR) appeared which made it much easier to implement dynamically typed languages on .NET. This session explores how dynamically typed languages fit in the ecosystem of .NET. We’ll see why dynamic languages are interesting and contrast them to their static brethren (C#, Java). Then we will touch on how IronPython and IronRuby are implemented on .NET via the Dynamic Language Runtime (DLR). Finally, we’ll look at some code examples of how you can utilize these languages on .NET today.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,680
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Iron* - An Introduction to Getting Dynamic on .NET

  1. 1. Iron* - An Introduction to Getting Dynamic on .NET //kristiankristensen.dk twitter.com/kkristensen mail@kristiankristensen.dk
  2. 2. Question
  3. 3. Agenda Dynamic Languages Dynamic Demo! Language Runtime 45 min 15 min
  4. 4. Why Dynamic Languages Fashion Fortune Fame Weight Interest Loss
  5. 5. What makes a language “dynamic”?
  6. 6. http://www.flickr.com/photos/35064820@N00/3950391591/
  7. 7. http://www.flickr.com/photos/janineberben/321955670
  8. 8. Why Dynamic Languages Simplicity Perspective Expressive
  9. 9. The traditional view of the world Dynamic Static Languages Languages Simple and succinct Robust Implicitly typed Performance Meta-programming Intelligent tools No compilation Better scaling
  10. 10. Dynamic Language Runtime
  11. 11. Dynamic Languages on .NET IronPython IronRuby Iron? C# VB.NET Common Language Runtime
  12. 12. Multiple Language Dynamic Dispatch IronPython IronRuby C# VB.NET x.Foo x.Foo x.Foo x.Foo Dynamic Language Runtime GetMember Name=“Foo”, IgnoreCase=false Object COM Python Ruby Binder Binder Binder Binder
  13. 13. Today’s view of the world Common Language = CLR + DLR Dynamic Static Languages Languages Simple and succinct Robust Implicitly typed Performance Meta-programming Intelligent tools No compilation Better scaling
  14. 14. Iron languages are first class .NET citizens
  15. 15. 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
  16. 16. Languages on DLR • Pictures
  17. 17. Why Iron* Languages? Easy to extend Easy to embed .NET Interop
  18. 18. ” Talk is cheap. Show me the code.” - Linus Torvalds http://en.wikiquote.org/wiki/Linus_Torvalds
  19. 19. Ruby Test Framework
  20. 20. [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); } }
  21. 21. IronPython in Visual Studio http://ironpython.net/tools
  22. 22. Easy to embed aka BadPaint
  23. 23. The road ahead (picture)
  24. 24. http://ironpython.net http://ironruby.net http://dlr.codeplex.com
  25. 25. The end.
  26. 26. //kristiankristensen.dk //twitter.com/kkristensen mail@kristiankristensen.dk

×