Silverlight: One Language for Client and Server

Microsoft has released an alpha version of their new JScript for .NET. The new “Managed JScript” and is currently being developed for use with a browser plug-in. More interesting than that is that C# works in the browser too, along with Python. They have plans to release a version of Ruby and Visual Basic as well. The release comes as a part of Microsoft’s new technology called Silverlight.This plug-in technology is currently working in Safari, Firefox, and Internet Explorer; and on both Windows and the Mac.

The new plug-in augments the browser by giving it a subset(and a superish-set) of Microsoft’s latest Windows technology. This 4 – 5 meg download includes powerful vector graphics, web service connections, stream handling, animation support, server callback support, and HD video/ WMA/MP3.

One of the underlying possibilities that that enables is the ability for developers to write in a single, consistent language on the client and the server for the web. This is really a new concept for dynamic languages on the web and Microsoft is doing it in a big way. With Silverlight you would be able to program in Ruby on the server and on the client, or C# on both as well; that is, when Silverlight 1.1 is released. Right now, only Python and JScript are available in an “alpha” release which cannot be used in a production environment.

Microsoft has said they plan to release Silverlight 1.0 this summer, but have not made any statement about when Silverlight 1.1 is expected. It’s the 1.1 version that has the new language elements. The 1.0 version can only be programmed with browser-based JavaScript. This is still a good thing for JavaScript developers.

Even with the release of Silverlight 1.1, it won’t be enough for JavaScript developers. JavaScript developers on the Microsoft server platform must wait for the server side to upgraded with the new technology so that the Managed JScript version to work there. It appears that this technology might be right around the corner, in a technology called “ASP .NET Futures”. Although the older JScript .NET version is available, it is not as dynamic as the new Managed JScript is now. What is needed is that the same language be available for both the client and the server. Microsoft appears to be committed to do this.

The new language capability is connected to Microsoft’s commitment to supporting a broad set of programming languages. This time, dynamic languages are coming to play in the new Dynamic Language Runtime extension, or the “DLR”. This will, no doubt, be a big deal to Microsoft’s Visual Basic 6 hold-outs who never did give up their “variants”. It appears that they were right to wait. I think they are going to like the new “VBx”.

The DLR, as an extension to the .NET framework, makes the dynamic set of languages available on the server-side as well as the client-side.

With all of these languages, what does it mean for JavaScript? Well, I don’t know, but it sounds good to me. In fact I kind-of expected this to happen. I believe that this will really expose the excellence of JavaScript as it stands side-by-side with C#. As far as the other dynamic languages are concerned… JavaScript is one of the only dynamic languages to sport a standard, and a mature, open one at that. It has elements that other languages still yearn for and even it will soon get a face lift as the new standard is eventually released. It really is great that a new multi-language dynamic will be introduced into the browser and I am eager to see what developers will do with JavaScript in .NET once it really becomes possible on the server-side.

I have posted a new unit testing framework called JSXUnit. This framework is actually a port of JSNUnit 2.7. To be honest, it only took me about 20 minutes to port because Managed JScript is really the same one as we find on the browser. It is tricky to figure out how to program sometimes because the documentation for the library hasn’t been produced yet, but it is just an alpha, and a promising one at that.