As I said before, I think Microsoft made a mistake regarding this abandonment of IronRuby and possibly other dynamic language technologies. But I've said this before: I don't intend to be a volunteer Microsoft consultant. So why would I make a post like
this? I don't really view it as my style.
Obviously if I b*tch about something Microsoft has done or is doing (which by all means, is not an uncommon thing here). It's usually some kind of ulterior motive. Not really too different from anyone else. The European niners b*tch about Microsoft's support
in Europe. Makes sense when you think about it.
So what is my ulterior motive? I guess you can say my ulterior motive is an unmoving passion for beauty in Computer Science.
And you might say, what is beautiful about IronRuby? It's not so much about Ruby the language (but arguably, that is beautiful in it's own right - but something I am not positioned to appreciate). What I find beautiful is Ruby running on the CLR. Python
on the CLR. L where L is a computer language running on the CLR. Sharing code with other languages.
Multiple languages, speaking the same language.
This I view as beauitful.
I'm very anti-waste in development. I don't like how every language reproduces it's own framework, it's own runtime, it's own libraries. This is unnecessary. They can share a lot of this stuff. And DLR/Iron* was a step in this direction. It was an example
that perhaps - someone else out there "got it". That made it one of the very few projects out of Microsoft I had a personal interest in.
If I was still a professional .NET developer, I'd care a lot more. But am I realising that .NET is really not the answer to every question. In fact, I'm starting to think .NET is the answer to very few questions. Some might go: "Which technology should I
It's not quite at that point yet, and in fact C# is in many ways a really awesome language, the .NET framework is awesome in many areas (not so awesome in others). But if Microsoft continues to make .NET less appealing to me, I'm going to start having to
answer questions that way.
Might not be a big deal, since I'm just one person. But somehow I don't think I'm the only one. Who knows.
I see your point, and instinctively I agree with that, but there are a few considerations worth making.
The hardest part of learning a new language usually consists of getting to know its libraries, so having all sorts of languages on .NET would make that easier. Unfortunately it also works the other way around: if I'm a proficient user of language L,
I wouldn't be compelled to use a .NET implementation of L if that forces me to learn a new set of libraries. No problem, someone may create a wrapper that emulates the L standard libraries for me... but at that point, even assuming that the wrapper is reasonably
complete and performs optimally, I would not be exposed to .NET at all, which kind of defeats the original purpose.
I would add that mixed-language projects are overrated (unfortunately). While I concur that it is a thing of beauty for anybody who loves computer science, it is less valued in the market, from what I've seen, and understandably so: if you allow a
project to be composed of several languages, you are creating a dependency on all of those languages, their respective tools, and this will make your life miserable when it's time to hire new programmers (or, at least, stretching their training ad nauseam).
Exits beauty... most companies I worked with tend to use only a handful of languages, with some getting more love than others and rigorously in non-overlapping domains.
Now, it would be great if Microsoft implemented every language under the sun, but given how everybody is constrained by finite resources, I think they bring more value to the community by trying to create and evolve new innovative languages (and possibly
fail) rather than just porting existing ones.