OdeToCode IC Logo

Is Microsoft Taking Dynamic Languages Seriously?

Monday, November 23, 2009

Specifically IronPython and IronRuby.

Consider this …

  • IronPython got underway in July of 2004. Five years later it appears IronPython is still not a candidate to be a first class language in the .NET framework and tools. You can vote on this issue.
  • Microsoft first released IronRuby at Mix in 2007. Nearly three years later it appears IronRuby is still not a candidate to be a first class language in the .NET framework and tools. You can vote on this issue.

A first class language is deployed when the full .NET framework is installed. It’s as easy to find as csc.exe. It’s not a language you have to ask the IT department to install separately. It’s not a language that requires you to jump out of Visual Studio to edit or run.

Most of all, a first class language doesn’t require justification to higher powers. A first class language is pre-certified and stamped with a seal of approval. It’s as easy to use in the locked-down big corporate setting as the company paper shredder.


The DLR and the PDC

I was depressed when I read the session list from Microsoft’s recent Professional Developers Conference. If you browse the session list you’ll find hundreds of sessions covering cloud computing, Sharepoint, Silverlight, SQL Server, and modeling. There are a handful of sessions covering concurrency, and a few dedicated to C++.

There is exactly one session featuring the Dynamic Language Runtime in a significant fashion. The title is Using Dynamic Languages to Build Scriptable Applications. You can learn how to augment an existing application after you’ve done all the real work in a first class language.

Perhaps Microsoft is just hedging their bets, but it’s clear that that dynamic languages aren’t high on the priority list. Maybe they’ll be first class citizens one day, but many developers are tired of waiting.

P.S. Is Managed JScript dead?

Gravatar Michael Stum Monday, November 23, 2009
I don't know what to think about the Iron* languages at all. I ask myself: If I want Ruby or Python - why not use the real thing? I have no hard evidence, but I always feel like I'm using the language that has to constantly catch up and always lags behind.

I don't think that the .net language needs a port of an existing dynamic language as this seems lose-lose to me.

I'd rather see a language specifically tailored to the .net Framework. Of course, inspired by many other dynamic language - pretty much like C# and F# which are new languages, but with clear inspirations. It also allows the language designers to be independent.

When I think about .net dynamic languages I don't think about Iron* or Phalanger (that PHP port), but for some reason I think of Boo first (possibly because of Ayende).

I have exactly 0 experience with it (never had the need), but it seems independent and built for .net, which automatically ranks it higher in my book.

Of course, the Killer argument is always "But you can bring in Ruby/Python programmers without expensive transition periods!", but I don't think that holds up: They have to learn the .net Framework anyway. I feel that it would be easier to learn a new language (as there will be similarities that should make it easy) than to learn how the current dialect of a language is different than what all other people use.
Misha Bergal Tuesday, November 24, 2009
1. I'd like VS to have goof editing and debugging capabilities for IP and IR. I don't care so much about Intellisense at this point, but hopefully they can get it to the point where pydev is in short period of time.

2. I'd rather have IronPython an out-of-band product (frequent updates, no need to wait for .NET xxx etc.), with Visual Studio integration included.

P.S. +100 for Managed JScript.
Gravatar Jonathan Allen Tuesday, November 24, 2009
They rewrote C# and VB specifically so that it could communicate with languages such as IronPython. That says a lot.

But you would have to be stupid to think that they are going to give it even a fraction of attention that Azure is getting. Their entire business model is now based on Azure being a success. Not just servers and cloud computing, they are betting everything down to the smallest mobile device on this grand unified vision.

Part of that vision is running all the dynamic languages on the Azure platform. That means the real versions of Ruby, Python, and PHP.

That said, Microsoft has to take the Iron-languages seriously. Important product lines like Microsoft Dynamics are taking dependencies on IronPython. But that means getting the runtime right, not the nice-to-haves like an IDE.
Gravatar Francois Vanderseypen Tuesday, November 24, 2009
What about our (free) S# framework?


Gravatar Eduardo Tuesday, November 24, 2009
Maybe we don't need another language and you are pushing your personal agenda?
Gravatar Scott Allen Tuesday, November 24, 2009

I didn't think we needed C# 8 years ago. I thought C++ gave us everything we needed.
Gravatar Matt Briggs Tuesday, November 24, 2009
I am pretty sure the story for the DLR to microsoft is for easy application scripting more then anything else. They have also been in a pissing contest with the JVM for ages, and both JRuby and JPython are very mature platforms at this point.

Also, the biggest advantage of something like IPython or IRuby is as a migration strategy away from the microsoft stack. The zero cost interop with existing code and infrastructure is probably the number 1 reason to use one of these languages on either the CLR or the JVM, but if you are working with IronRuby on Rails, that probably means you aren't using Windows Authentication or ActiveDirectory, and it really isn't that much of a jump to hop over to mono on linux. While DevDiv is definately filled with people who are passionate about technology, they still need to justify the things they work on as business decisions.
dk Tuesday, November 24, 2009
I was surprised by the lack of DLR related content at PDC too.

I'm hoping it's not a lack of commitment but rather a lack of new info to be shared with the masses.
Misha Bergal Wednesday, November 25, 2009
@Michael Stum

For one I want Iron Python/Ruby to be able to use whole .NET stack (BCL+). Good luck trying to find decent SOAP client for Python.

Gravatar David Robbins Wednesday, November 25, 2009
It seems strange to me that an embedded script platform would ignore the language has been used for scripting for years - VB. If you were to expose configuration of your app to a customer base I would think VB would be the least intimidating choice.

In a way embedded scripting represents a threat to the many MS consulting partners in that if I have something that is configurable I less need to keep a full team of consultants around to implement changes. I have to have someone use Studio to compile and re-deploy.
Gravatar Mike Leach Saturday, November 28, 2009
I added support for IronPython to the Passage Portal open source framework for it's dynamic, interpretive support. But I still prefer C# for compiled framework development.

I've taken to using Notepad++ for IronPython development. A traditional IDE, such as Visual Studio, may be overkill for most dynamic languages. But I agree with you that MS should fully embrace the DLR languages and make VS.NET the primary development environment for these languages.
Comments are closed.