38 comments

[ 3.3 ms ] story [ 78.1 ms ] thread
I think this article is reading way too much into the issue. I'm guessing Microsoft canned IronRuby because there weren't enough people using it to justify the continued development required to keep up with the canonical version.
Completely agree. I also completely disagree with the author that it's in Microsoft's best interests to handcuff its developers to its platform. That strategy might have made sense when Microsoft was still the 800lb gorilla lording over the entire market. Now that they have some real competition they're going to have to compete like everybody else: by making the best products they can that people use by choice.

If anything they've clung to their old monopolies so long that they've seriously jeopardized their future.

I feel C# is one of the best languages out there second only to python. Also Python works extremely well on windows and more than 99% of the packages support windows. dunno may be ruby programmers are apple fanboi's
It isn't like Microsoft made it particularly easy for developers to use IronRuby though. Look at these two popular Connect issues to have IronRuby and IronPython integrated with VS 2010:

https://connect.microsoft.com/VisualStudio/feedback/details/...

http://connect.microsoft.com/VisualStudio/feedback/details/4...

While its sad that it takes IDE integration, the truth is that it really does and that Microsoft knows it. So its hard to say it didn't have the enough people using it, when they never did the 1 thing they really had to do to give it a chance.

Regardless of the importance of IronRuby for Microsoft (next to zero), the author is right in assuming Microsoft wants to make it easy to port your stuff to Windows, but devilishly hard to port anything Windows to anything else.

Having languages that can be used on both sides of the fence breeds a generation of developers that can jump the fence anytime. This is death for them. They will never encourage it.

But they can't be used on both sides - you port your ruby program to windows and then you start using .NET libraries (and there are a ton of them, many of which are good). Initially it might just be a couple to make a simple GUI, then you add more and more and in the end you have to rewrite the program if you want to get away from Microsoft.

So I don't get their problem.

Their reasoning must be either that they find the native and cross-platform Ruby libraries to bee "good enough" or that rubyists that port their work to Windows do it in a way they keep the core cross-platform and the GUI thin and easily portable.

It would be interesting to have a WinGlade/WPFGlade GUI library that used the GUI descriptors Glade generates to build native Windows interfaces on-the-fly. That would make life very easy for porters. It's so interesting I find it unlikely I am the first to have this idea. Got to google it.

Would be even funnier to have a plugin for Visual Studio to "Save As Glade"...

>Ruby almost exclusively runs on Linux (for the server) and Mac (for the desktop)

http://rubyinstaller.org/ would care to disagree. It's just that it's included by default on many Unixes/BSDs (/GNUs/what-have-yous). Windows includes utterly squat for development of any kind on a fresh install; the exact same statement could have been made for any language.

Literally. You can't compile C out of the box either, nor any .Net code. Does that mean nobody programs in C or .Net on Windows?

That's not quite true. You can use Windows Scripting Host from either VBScript or JScript out of the box on every Windows after 95, as well as the batch language in cmd.exe. I'm not saying that these are good options, but they do exist.

http://msdn.microsoft.com/en-us/library/ms950396.aspx

Hah, interesting. The little that is included is stuff I've never heard of anyone willingly using for Windows programming.
I actually used Windows Scripting Host via JScript quite extensively a while back (think 5 years ago). Built a little program that would audit all of the discoverable machines on the corporate network to see if they were incorrectly using the MSDN Windows XP key, and if they were print out their hostname and dell asset tag so we could go find them.
WSH scripting is fairly common for Windows sysadmins I know of.
This used a ton at MS in the test labs where boxes are flattened evey day and new builds are installed. I longed for windows to come with .net preinstalled in the days that I worked in a lab there.

That being said, I concur that they are bad options, ugh.

Modern versions of Windows include C# and VB compilers.
No they don't. At least those versions which come from Microsoft and not from your favorite torrent tracker/IT department. All Windows relesead after 2003 contain the .NET framework Common Language Runtime, but compilers are part of the SDK.
Actually the compiler is part of the framework runtime. This XP netbook I'm typing it on has it installed and is able to compile a C# executable out of the box.

Still, it is a fairly academic argument since notepad + command line is a pretty poor dev environment in any os.

Windows 7 also includes Powershell, which is a pretty capable dynamic language in its own right.
Ruby itself might run fine on Windows, but the fact is that the majority of Ruby developers use Mac or Linux and cares exactly _zero_ about Windows, which means that a lot of libraries etc. doesn't work on Windows. So, while possible, using Ruby on Windows is an uphill battle.
It's not exhaustive, but two years ago I asked "the community" what they thought on Microsoft and Ruby and.. http://www.rubyinside.com/is-windows-a-first-class-platform-...

At Euruko 2008, I chaired the evening panel and brought it up too. A room of 400 people went to silence when I asked if Windows support was considered important to Rubyists.

Compare that to Python. Nearly all libraries work very well on windows. Thats why Python trumps ruby it is developed by much more sane and professional people rather than R -rated Apple Fanbois
This is an aside, but you absolutely can compile .NET out of the box on Vista and Win7, it's just not in $PATH by default. Dig around in %SystemRoot%\Microsoft.NET some time...
Where is this "Microsoft killed IronRuby" thing coming from? Sure, the lead developer quit, but that doesn't mean it's officially been shut down, all support removed, etc... not to mention that it's an open source project. Did I just miss something?
It didn't kill it. It did something worse. It withdrew enough resources and manpower from the project to effectively kill it without saying as much.

Now it's obvious why IronRuby was relicensed under the Apache License just a few weeks back.. no-one would have bothered picking up the reins if they hadn't.

I agree with some points in this article, but there are dangerous points here as well.

Its dubious to say that in the face of Windows and Office, Ruby is not worth investing in - in the face of windows and Office, NOTHING is worth investing in.

This is a common business trap - why spend money on insignificant businesses when you already have giant product lines - that many companies fall into. Microsoft has already done it with Windows Mobile and IE, and is trying to avoid the same fate with its ZuneOS and Cloud Computing offerings.

Microsoft's situation is indeed a common business trap but it's more than a conceptual trap. It's a strategic trap. MS has reached a local maximum in it's profit potential. Any change in course would impact it's "golden reputation for solid profits".

A company caught in a local maximum might really be unable to escape the situation, in that the purse holders are simply unwilling to open the purse for investments on a scale necessary to get into a different position. And they have a point.

"You want to take these golden goose eggs and invest in diamond mining? No, we keep the goose eggs, that's what they are there for!"

IE, companies don't exist a priori to grow and grow. A company exists to grow, become profitable and return the profits to the owners hot little hands.

"in the face of windows and Office, NOTHING is worth investing in." - that might indeed be true. And it might the case that the only thing MS really is throw enough money at different project to keep from seeming like the abusive rent-extractor that its market position makes it.

Such nonsense. Bill Gates' Microsoft would've put hundreds of developers on IronRuby and ensured it was the fastest and the most feature rich implementation there is. Just like they did with C++, Java and JavaScript.

BTW Windows is completely useless for any serious Ruby development/hosting. There are a ton of bugs in networking, threading, GC.

It took Microsoft a long time to get a C++ compiler out that was worthy of the name. Templates were so unusable that they were the laughingstock of comp.lang.c++ for much of the 90s. J++ was merely a trap for the unwary, lacking several important interoperability features (JNI and RMI come to mind) and promptly abandoned when a judge prevented them from poisoning the Java ecosystem. Think twice before you rely on them to faithfully implement a standard.
err they created few best languages out there C# and F# and Python / Java run like kinfe through butter. Ruby Programmers are incompetent apple fanboi's.
I seem to remember Visual Studio having a better C++ compiler than gcc for quite a while -- at least through the whole egcs fork. Some of the templating stuff didn't work in VS6, but I think that was pretty universally true for all compilers through 2003 or so. Or am I misremembering?
The way I remember it, Microsoft Visual C++ 6.0 in 1998 was their first compiler that handled just about everything I could do with Borland C++ 3.0 back in 1991. Each of these was disappointing, but Microsoft's earlier releases were just about useless. I didn't do much with GCC until later.
Wasn't this the same argument made when Apple acted like a douche and banned certain tools for iphone app development? It didn't make sense then and it doesn't make sense now. How is providing better tools for development on any platform dilute that platform? This is honestly a stupid argument and people should stop putting it forward.
Any argument that builds on protecting the cash cows for Microsoft is not helpful, either to Microsoft or to the community.

For big companies to survive long term, the main thing is to have the flexibility to do that. The most relevant example here is IBM, which almost didn't survive the 80s until they emphasized more system integration.

As humanity progresses, demands will change. Microsoft has enough power, both in terms of number of employees and in cash, to pursue more than one option. Hence, many of the innovation coming from Microsoft Research can be very useful in the future. Moreover, one of the main advantages for Microsoft in the 80s and 90s was that they are friendly to developers. Of course there will eventually be a tie-in. You start using IronRuby, then you find ready .Net solutions to your programming, then you commit to using their database, and maybe visualisation via Excel, and you find yourself and your customers tied to the Windows/Office platform. Just like many companies are tied to IE6 despite what Microsoft wants and despite common sense.

Give developers no incentives at all, and they wander around. At some point, the clear division in tools makes people either commit to Microsoft or to everything else, and when Windows come short (and it will, nothing is forever) people will move in droves. But give them a semblance of cross compatibility, and they will stick to Windows/Office while convincing themselves that there is always a way out. In reality, they will be locked by the economics of rewriting all the use of .Net technologies.

Bad for the community, because splitting the community into Microsoft and others camps will lessen competition in both sides. Cross pollination will C# and Ruby will not exist when there is no shared community. And no improvements will be needed in either camp because of new features in the other.

huh! Ruby is a lame language, no one in corporate world wants it. They prefer python. Twitter had a bad experience with it.

It just another crying session by ruby hippies. I cant wait for the day their language is dead.

Python runs so nicely on windows that no one would even care if iron python was scrapped. It just shows that Ruby is being developed by unprofessional people who have no practical plan and cant even port their language to the most used platform in the world.

Weren't you recently complaining about the MVP selection process? If non ms platforms are so superior, why do you spend so much time flaming MSFT? Seems like it's time to move on
Not exactly recently; and for the record, that post made the MVP program more transparent than its ever been (thanks to some detailed in-the-know commenters).

The world you would live in is full of sycophants. The only people you'd have talk about XYZ would be people who love XYZ. You would dismiss anyone who thinks better alternatives exist.

Q: "Hey, isn't this antenna problem awesome?" A: "It ROCKS!!!! Its like a super cool game!"

Q: "Dude, don't you love how this page doesn't render well in IE?" A: "Oh Man, we get to play with HTML and CSS for the next hour!"