Script# brings compile-time and C# niceties to JavaScript development

I'm very excited to finally be able to point to this post of Nikhil's. I've known about this project from the start and am Super-Ultra-Mega-Excited (this expression (c) Andres Sanabria) about it, but until now I had to keep my mouth shut.

JavaScript is in many ways a very powerful language, but it lacks a compile-time (bye bye type checking) and OOP is very unnatural. While some consider it the best language ever, most people who come from C# or Java just go "ugh!" the first time they have to write anything beyond a click event handler with it. Some continue to strongly dislike it even after they've gained expertise with it. I'm not judging, but...

Wouldn't it be nice to keep the power of dynamic scripting languages but with all the niceties of statically typed languages?

Enter Script#, a project Nikhil started on his spare time (how much spare time this guy has has always been a mystery to me).

Watch the screencast:

Read the first blog post:

And tell him what you think.


  • Thanks for the link, Bertrand!

    I should mention that Bertrand actually was a great person to ping and discuss ideas with all along.

    In fact, one of the things Bertrand proposed was a cool way to model foreach C# statements to enumerate dictionaries into for (var .. in) script statements, which is one of a few C# & script constructs I really wanted to support.

  • Mike: I've watched the video and I think this is really cool. But it's very different from what we're trying to achieve for a number of reasons.
    The main one is that you're not really creating a web application but rather running a Windows Forms application in a web environment (which is still pretty cool).
    It seems to be really close to what XAMLON is doing. They have an engine that can run a Windows Forms application in Flash or DHTML (which is exactly what you're doing). I saw it at the PDC in September and it is pretty cool too.
    One thing that's not shown in the video is how you create the web services that you're calling and if they are secured.
    Also, you're only showing labels and textboxes. What about more complex controls? What about control authoring? What about existing third party controls that your customers may assume can be used directly?

Comments have been disabled for this content.