Search code examples
ironpythonironrubydynamic-language-runtimedynamic-languages

Making the Case for IronRuby and IronPython


I guess everyone has already heard the news about some key developers leaving the Dynamic Languages team due to what they perceive as waning support for Dynamic Languages at Microsoft.

I'm quite fond of Python and try to use it often. So, by extension, I care about IronPython and would like to see it continue to evolve. I'm sure many people feel the same for IronRuby. But the thing that I still can't quite figure out is why should .NET developers care about IronRuby and IronPython?

If you were to write a letter to Microsoft asking them to continue supporting and developing the DLR and the Iron languages, what arguments would you use?

If you were to convince your employer to commit developers' time to contributing to the yet-to-be-made community-supported versions of IronPython or IronRuby, how would you rationalize it in terms of business value?

Here are the few interesting use cases that I could come up with, but if I where a manager pondering the question above, I probably wouldn't find them that compelling:

  1. Embedded scripting languages in bigger applications: A valid use case, but it seems like a niche scenario for most developers.
  2. Testing and test automation: Ruby in particular has a rich selection of fine testing tools and libraries, and it would be nice to have them usable in .NET through IronRuby. But it seems that equivalent .NET libraries are filling that gap, such as SpecFlow and Selenium's WebDriver.
  3. Running existing frameworks on the Microsoft Stack: If IronRuby would enable Ruby on Rails to run on Windows with IIS and MS SQL, this could encourage shops that have standardized on the Microsoft stack to adopt RoR.

Can anyone think of something better?


Solution

  • What you wrote there is right and I'll add some more bullets:

    • Using the interactive console for quick browsing/testing of methods.
    • Since developing in IronRuby/IronPython is faster, you can use it to write POCs and later implement the real application in C# or whatever you're using.
    • Implement DSLs in IronRuby and use them from static languages.
    • Adding dynamic capabilities (REPL consoles, for example) to static language applications.
    • Gestalt.
    • For Rubyists: writing WPF and Silverlight (WP7 apps too, potentially) in IronRuby.