usable in any place a human can be used

20091005

why no love for scripting languages

Windows 7 is about to drop 20091022. And the internet is buzzing with comments like this:

Definitely the best OS of all time. - WindowsFTW
Snow Leopard for me please! - Sam
It's sad that people are excited by this level of mediocrity only because XP is archaic and Vista is a disaster. Talk about lowered expectations.

Get your anti-virus, and registry cleaners, and disk defragmenters, and other assorted utilities ready. You'll need them. Modern OS? Not hardly. - Terry

Well putting religion aside, Windows 7 looks to me what Vista should have been. Microsoft is doing a great job with the ad campaign, they have awesome buzz going, and the computing world will probably be better off thanks to Windows 7.

To be fair I use Vista Business at work and Vista Home Premium at home with an Ubuntu partition that I dual boot into. I don't hate Windows or Microsoft, but I do feel that both deliver underpowered products at overblown prices, their greatest strength is that with such a high market share other manufacturers make their products to easily inter-operate. That is really the thing that keeps me from dropping Vista at home, after 4 hours of trying I still couldn't get my PS3 to play nice with my Ubuntu box for media streaming, it worked in 2 minutes with Vista.

So here is my question for Windows 7, why no love for scripting languages?

Apple's new Mac OS X Snow Leopard has built in support for Ruby, PHP, Perl, and Python.

Ubuntu can install almost any hosting environment with the click of a button or by issuing a simple sudo apt-get ruby

Windows is supposed to be the OS for everyone, easy to use, so where as the Ubuntu nerds are more than happy with firing up a terminal and apt-getting some fun, why doesn't Windows have these scripting environments ready to rock out of the box?

Could it be that Windows is philosophically opposed to hosting scripting environments? I don't think so as they build in a J-Script interpreter, try double clicking a .js file.

Could it be that Windows foot print would be gigantic if they included these languages? Ruby has a 23.7MB installer, Python 2.6.3 is 14.2MB, Perl 6's Rakudo source is 314KB, and PHP 5.3.0 has a 23MB installer. So in total we are talking about 60MB of disk space.

So why no love? I'm guessing that it is three fold.

  1. Not invented here syndrome. These aren't Microsoft technologies, so why bundle them in with a Microsoft product. This is somewhat valid, if these environments expose a security hole or need lots of updates, this is overhead for Microsoft that doesn't add any money to their bottom line but costs them in maintenance.
  2. Conflicts with the .Net platform. If these environments are installed by default, then people could make HotCocoa like bindings and create Windows programs outside of the .Net platform. Microsoft wants people to use IronRuby, IronPython, CLR based scripting languages. Really they want you to use C# and Visual Basic.Net so that you will buy the Visual Studio licenses, they are after all a software business.
  3. Unsuitable hosting environment. This one is more conjecture as I'm not an OS Engineer, but it is informed conjecture. Windows lacks the fundamental security model that is at the heart of Unix systems. Windows 7 will more than likely continue with the bolted on solution of User Account Controls, although hopefully less annoying in this latest release. This makes the idea of sandboxing a scripting environment much more difficult in the Microsoft world than in a Unix based OS.

But Windows 7 definitely should include these scripting languages, and others (lua is the first to come to mind), because it will ultimately benefit them. Steve Ballmer once famously shouted on stage "Developers, developers, developers, developers!"



There is a world of Ruby, Python, PHP, Perl, Lua, Ocaml, Erlang, Haskell, etc. developers that have a huge hurdle to jump in getting their programs onto the Windows platform. They can either bundle the interpreter into their program a-la py2exe, they can try to get their program to run on a CLR based implementation of their language (if one exists), or they can try to get the user to install the necessary platform.

If Microsoft made it easier to release to these platforms, a world of new and innovative software could flourish on the PC platform. Rails development wouldn't have to suggest that if you have the misfortune of owning a windows-box to do all your development inside of a virtual linux-box.

If you’re working on Windows, you may find it easier to install Instant Rails. Be aware, though, that Instant Rails releases tend to lag seriously behind the actual Rails version. Also, you will find that Rails development on Windows is overall less pleasant than on other operating systems. If at all possible, we suggest that you install a Linux virtual machine and use that for Rails development, instead of using Windows.

From what I understand it is not currently baked in to Windows 7, but maybe we could throw developers a bone in SP1. If they could standardize the convention of scripting languages installation on the Windows platform, they could become a friendly release environment to a large segment of the open source movement. If Microsoft wants to engage the Open Source community in a meaningful way, this would be a great first step. Anything is better than the sham CodePlex Foundation Microsoft recently tried to pass off as an Open Source haven, but that really warrants its own post.



5 comments:

  1. Matt,

    The only scripting language that Microsoft is concerning themselves with for the release of Windows 7 is PowerShell (http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx). Granted it's not in the ballpark of the scripting languages you are referencing, but it is going to be a language to learn for almost all future Microsoft products and OSes.

    ReplyDelete
  2. MS traditionally wants their developers to program the MS way (VB/C#), but that isn't to say they don't allow open source to live harmoniously on their platforms. MS frequently contributes to open source projects, too (recently Apache) (http://www.microsoft.com/opensource/).

    Is the argument native support right out of the box? Windows Azure has SDKs for Ruby, Python, Java, (http://www.microsoft.com/azure/sdk.mspx), and PHP (http://phpazure.codeplex.com/).

    BTW - What's wrong with Powershell? (http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx)

    ReplyDelete
  3. Dangit - Mr. Jackett stole my PowerShell thunder!!!

    ReplyDelete
  4. The argument is for a wider support of open source scripting languages out of the box.

    ReplyDelete
  5. Ah... Yeah... MS won't stand for that. It goes against the three Laws:

    1. MS may not harm a human being.
    2. MS must obey the orders given it by human beings except where such orders would conflict with the First Law.
    3. No third party or open source technology will be installed naively on the Windows platform.

    ReplyDelete