While researching another product I came across this 2009 tweet from Microsoft’s Nikhil Kothari:
Office 2010 web apps – perhaps one of the most ambitious script# projects!
Script# is loosely equivalent to the Google Web Toolkit, but whereas GWT compiles Java to JavaScript, Script# compiles C# to JavaScript. According to the site:
Script# is used extensively by developers within Microsoft building Ajax experiences in Windows Live, Office to name just a couple, as well as by a external developers and companies including Facebook.
I had come across the project before, but was waiting to see if would evolve beyond what looks like a personal project for Kothari. It is hosted on http://projects.nikhilk.net rather than on an official Microsoft domain, and the latest release is 0.6.2. In other words, it does not have the look of a project that you would recommend for production work, interesting though it is. Nor is there much public activity around Script# that I can see, though there is a CodePlex site dedicated to improving its JQuery support.
Seeing Kothari’s tweet though raises several questions.
- Did Microsoft really use it for Office Web Apps, a high profile project which is a key part of Microsoft’s cloud computing strategy?
- Is there another, more up-to-date version of Script# that is used internally and which may one day burst into the public arena?
- How might it impact the Silverlight vs HTML5 debate, if Microsoft comes up with a C# to JavaScript compiler in Visual Studio that lets developers code in .NET but deploy to cross-platform JavaScript?
I am sure there are readers of this blog who know more than I do, so by all means let me know.
The ASP.NET MVC 2 AJAX and validation JS scripts use Script#. Check the MVC source and futures source code.
Script# is a rather old project. It predates Silverlight.
There was a Codeplex project for it with issue tracking and discussions. Nikhil was going to open-source it at summer’08. And even published code of some client-side libraries. But shortly after that the project page was closed (maybe due to Codeplex policies that requre projects to contain some actual source code) and development went to hiatus. Nikhil started to be heavily involved in Silverlight. Script# retrieved MS Engineering Excelence award (http://www.nikhilk.net/Entry.aspx?id=196).
Ceasing development was well aligned with raise of Silverlight and the whole MS strategy for web development back then. Or it was just caused by Nikhil’s personal reasons. But we could only speculate about that, as long there are no any words from Nikhil.
Not long time ago there was come activity on twitter (http://twitter.com/scriptsharp/) and several releases, primarily with jQuery integration and bugfixes. Also Nikhil was (or still is) planning to host a session at Mix’11 about Script#.
Nevertheless, dropping and popping again without any publicity about the project leaves very negative feeling about that whole story. I was involved in a project that was rather successful due to Script# and ExtJS (pre-SL 2 and pre-Chrome/JS preformance wars time), but due to such instability I’ll never not touch this again. And current state of either browser technology and tooling support for JS or Silverlight maturity there are no such high demand for that any more.
Although there are some more compelling alternatives like JSC (uses IL decompilation), SharpKit, WebSharper (based on F#), maybe some others, some folks like Anders Hejlsberg don’t think that this is an “end of the road”-solution for the problem (http://channel9.msdn.com/blogs/adebruyn/techdays-2010-developer-keynote-by-anders-hejlsberg). And I tend to agree with him.
Oh, and how can I forget about Volta .
(And one more thing – http://www.zdnet.com/blog/microsoft/html5-silverlight-sessions-face-off-at-microsoft-mix-11-conference/8524 – Jacob Sanford spells ‘SilverLight’ with capital ‘L’. I think that tells much about relationships between these two MS divisions).