logo

 

     
 
Home
Site Map
Search
 
:: Bitwise Courses ::
 
Bitwise Dusty Archives
 
 
 

rss

 
 

ruby in steel

learn aikido in north devon

Learn Aikido in North Devon

 


Section :: Features
- Format For Printing...

Dynamic Languages and .NET

Why is Microsoft so keen on Python and Ruby anyhow...?
Tuesday 1 May 2007.
 

Microsoft has suddenly ‘seen the future’ - and it’s dynamic.

You know, as in ‘dynamic languages’...? “Oh, those!” you might say. What’s so futuristic about those? They’ve been around since Methuselah was just a lad.

Yes, but up to now, they haven’t formed a part of Microsoft’s vision of the future. PHP, Python, Ruby, Tcl and Perl have been around for ages; Smalltalk was developed in the ‘70s and LISP started life way back in the ‘50s! Given this long history, why is ‘dynamic’ suddenly the big programming buzzword here in 2007?

Before going any further. let’s clarify what a dynamic language is. In a recent interview for Bitwise, Jeff Hobbs, of ActiveState Software defined them thus:

Dynamic languages are high-level languages generally characterized by dynamic typing and are generally interpreted. They typically have more built-in data types, automatically do all memory management, and require no compile step.

Most dynamic languages allow a good deal of ‘metaprogramming - that is, they allow a program to take in data (a string, say, entered at a prompt) and then convert it to executable program code (so the string defines an object or a method which can then be run just as though it had formed a part of the original source code). This makes it possible for a program’s structure and behaviour to be changed while it is still running!

Web 2.0 - and all that Jazz...

One of the main reasons why dynamic languages have started to emerge out of the dusty corners of academic research and into mainstream programming is the Internet - specifically the ‘dynamic’ part of the Internet which is sometimes called ‘Web 2.0’: all those Blogs, eCommerce sites, discussion forums and online shops which respond to user input, creating interactive pages ‘on the fly’ in response to text entry, data-searching, button clicks or mouse movements.

The technologies that drive Web 2.0 are many and varied. The PHP programming language has been one of the big successes - most Blogs and forums and many other dynamically generated sites (including the Bitwise site) are powered by PHP. Python and Perl also have some presence on the Web. But the language that has really emerged into the limelight during the past year is Ruby.

Ruby itself is not new - it’s been around for a decade or so - but it has, in recent times, been given a huge boost by the arrival of the Web application framework, Rails. As a result, it is not Ruby itself but the combination of Ruby and Rails - or ‘Ruby On Rails’ as it is usually known - which has been causing such stir.

Ruby On Rails makes it easy to get interactive Web applications up and running; interfacing with databases is greatly simplified and, as it is powered by Ruby, it benefits from a nice, descriptive, terse, thoroughly Object Oriented, non-C-like programming language. What’s more, Ruby is great for metaprogramming - a feature which that Rails really pushes to its limits.

But why is all this of interest to Microsoft?

After all, Microsoft has its own technologies for creating interactive Web-based applications. Using its ASP.NET, you can program your Blogs, eCommerce sites and forums using familiar languages such as C# and VB.NET.

However, you don’t have to browse around the Web too much to notice that ASP.NET doesn’t have it all its own way. While it may power some big corporate sites, most smaller sites - and quite a few big ones too - use PHP.

Today The World, Tomorrow The Web!

Microsoft has made numerous attempts at making the Internet work ‘the Microsoft Way’ but has, thus far, largely failed in that attempt. From ‘portals’ to search engines, Microsoft’s efforts don’t have a track record of making it to the top. And its attempts at programming the Web - from VB Script to ActiveX - have been squibs of varying degrees of dampness.

One ActiveX control has made the big time, though - and it’s not from Microsoft. I’m talking about Adobe’s (formerly Macromedia’s) Flash plugin. Flash powers everything from interactive business sites to those annoying commercials that fly around over Web pages. It even runs the movies on YouTube. Flash has its own programming language, ActionScript and Adobe recently announced that it was releasing much of the programming technology ( ‘Flex’) underlying Flash to open source.

Never a company to take defeat lying down, Microsoft has now decided to take on Flash with its own cross-platform media technology, Silverlight. Just like Flash, this can deliver all kinds of animations to a browser, ranging from vector graphics to movies. Silverlight can be programmed too. And this is where dynamic languages rear their heads again. Microsoft has decided that, by releasing a lightweight version of the .NET runtime for web browsers, it will enable developers to program cross-platform Silverlight applications using languages ranging from JavaScript, VB and C# to Python and Ruby.

It sounds a bold and potentially exciting project. But will Silverlight really be able to compete with a technology that is already as well established as Adobe Flash? Only time will tell.

Microsoft may have seen the future. The question is: will they will able to get it to work...?


Links Of Interest:

- Microsoft Silverlight: http://www.microsoft.com/silverlight/
- Adobe Flash: http://www.adobe.com/products/flash/
- Adobe Flex Open Source: http://labs.adobe.com/wiki/index.php/Flex:Open_Source
- A conversation with Microsoft’s John Lam about the dynamic language runtime, Silverlight, and Ruby (audio): http://channel9.msdn.com/Showpost.aspx?postid=304541


Huw Collingbourne is Technology Director at SapphireSteel Software, developers of the Ruby In Steel Ruby and Rails IDE for Visual Studio 2005.

AddThis Social Bookmark Button


Home