[lug] Ruby and Python Programmers beware: The Evil Empire is out to seduce you!
siegfried at heintze.com
Tue Aug 12 23:51:52 MDT 2008
As some of you may know, I'm up here near Microsoft headquarters temporarily
(but indefinitely) visiting family. (It is hard to resist cheap rent!)
Occasionally I attend the local Microsoft User's Group meetings and I
thought you Ruby and Python open source enthusiasts might find this
(1) Microsoft supports the languages Iron Python and Iron Ruby which are
open source project (yes -- you can download the source but Microsoft won't
accept your contributions to change it). These are the counterparts to JRuby
and Jyhton in the sense Iron Ruby and Iron Python compile to MSIL (instead
of JVM code).
(2) The project manager (see http://blog.jimmy.schementi.com/)for the
dynamic languages team at Microsoft (which is responsible for the Microsoft
open source languages Iron Python and Iron Ruby) is a young fellow who was
previously an open source Ruby/Rails web programmer and is still quite
enthusiastic about open source and Ruby and Python.
(3) Unlike the typical presentations at the Microsoft user's group meetings,
Jimmy was proud to completely abandon as much Microsoft software as possible
for his talk. This seemed almost heretical! He used firefox (with a special
VIM extension) instead of IE, gVIM instead of visual studio and free command
line tools instead of Microsoft Visual Studio. The purpose of this approach
is to disarm folks like YOU (as much as possible) and other prospective open
source ruby and python programmers who are distrustful of Microsoft.
(4) Iron Ruby runs on Rails and can be deployed to Microsoft's proprietary
web server IIS.
(5) Microsoft is proud to have reinvented Java Applets (called Silverlight)
that are completely browser resident in your choice of browsers (IE, Opera,
Safari, Firefox etc...) on your choice of platforms! Yes even LINUX and MAC!
The Linux implementation of silverlight is called moonlight. Unlike Java
applets, you get your choice of many compiled languages (including, of
you are familiar with Scalar Vector Graphics (SVG) as implemented in Firefox
(for example), you could say silverlight is a programming language neutral
silverlight (and its non-browser-resident counterpart WPF) is XAML
(extensible application markup language) which is a lot like SVG on steroids
(complete with 3D extensions). Unlike XAML, SVG never aspired to be an
application markup language. This means XAML is much more extensive than
SVG. If you are not familiar with SVG, think of SVG as Dynamic
Alternatively, you could think of silverlight as Microsoft's programming
language neutral version of flash on steroids.
With Silverlight and WPF (windows presentation foundation), it is possible
deploy the same source code twice: once as browser resident and again as a
compiled GUI (desktop) application.
(6) The highlight of the evening for me was when Jimmy used about six lines
of Iron Ruby code to deploy a browser resident Ruby interpreter. The left
half of the browser page was a ruby console and the right half was a GUI
canvas where he proceeded to interactively manipulate the XAML DOM to
display various graphics (like a working analog clock). With several more
lines of code entered interactively, he modified the analog clock so he
could drag it around with a mouse. He then did the same demonstration on a
MAC. I presume he could have as easily done it on ubuntu (I wish I had
Jimmy emphasized that Ruby and Python were superior to C# and VB.NET for
silverlight applications because they can run as interpreted languages in
parallel with the JIT compiler/emitter. This means that with browser
resident applications written in Ruby and Python, there is no delay while
the JITter JITS the MSIL into intel code. This is in contrast to C# and
VB.NET which have a noticeable delay for silverlight browser resident
So I hope this is helpful! Let me know if you are seduced over to the dark
More information about the LUG