Iron* - An Introduction to Getting Dynamic on .NET
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Iron* - An Introduction to Getting Dynamic on .NET

on

  • 1,824 views

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) ...

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.

Statistics

Views

Total Views
1,824
Views on SlideShare
1,819
Embed Views
5

Actions

Likes
0
Downloads
14
Comments
0

2 Embeds 5

https://www.linkedin.com 3
http://www.linkedin.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 1. Iron* - An Introduction to Getting Dynamic on .NET //kristiankristensen.dk twitter.com/kkristensen mail@kristiankristensen.dk
  • 2. Question
  • 3. Agenda Dynamic Languages Dynamic Demo! Language Runtime 45 min 15 min
  • 4. Why Dynamic Languages Fashion Fortune Fame Weight Interest Loss
  • 5. What makes a language “dynamic”?
  • 6. http://www.flickr.com/photos/35064820@N00/3950391591/
  • 7. http://www.flickr.com/photos/janineberben/321955670
  • 8. Why Dynamic Languages Simplicity Perspective Expressive
  • 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. Dynamic Language Runtime
  • 11. Dynamic Languages on .NET IronPython IronRuby Iron? C# VB.NET Common Language Runtime
  • 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. 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. Iron languages are first class .NET citizens
  • 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. Languages on DLR • Pictures
  • 17. Why Iron* Languages? Easy to extend Easy to embed .NET Interop
  • 18. ” Talk is cheap. Show me the code.” - Linus Torvalds http://en.wikiquote.org/wiki/Linus_Torvalds
  • 19. Ruby Test Framework
  • 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. IronPython in Visual Studio http://ironpython.net/tools
  • 22. Easy to embed aka BadPaint
  • 23. The road ahead (picture)
  • 24. http://ironpython.net http://ironruby.net http://dlr.codeplex.com
  • 25. The end.
  • 26. //kristiankristensen.dk //twitter.com/kkristensen mail@kristiankristensen.dk