Status

nikhilk edited this page Oct 7, 2012 · 3 revisions

Script# is an active project. This page documents current status, and plans. You're welcome to help and contribute to make the project better.

Script# has been an on-going project for many years, and as such is fairly mature and highly usable. It has been used across a number of large (and some very large) successfully deployed projects within Microsoft and amongst other companies/developers.

The current released version is marked as 0.7.5.

There are few areas that are being addressed in current development. This is mostly happening for now in the "cc" branch:

  • Modernizing generated scripts - the script ecosystem has evolved considerably ... for example, patterns such as AMD (async module definition), improved minimizers. Script# will automatically generated the best script, and promote good practices out-of-the-box, as well as complement other tools in the tool chain such as exiting minimizers, script loaders etc.
  • Support for different scripting environments - javascript truly is ubiquitous. For example, NodeJS brings scripting to the server. Script# will support node-based application development. The Script# runtime will be written to be loadable in any scripting environment.

This work will come together in the next major update, 0.8.

Additionally there are plans for the next set of phases for development to continue to keep Script# an interesting tool.

  • Support for C# Language - the goal is to revamp Script# so it supports the latest language features from C# 3, 4 and 5. While the motivation is to improve the development experience, the constraint will be in finding the right balance between language features and efficient runtime implementation/mapping of those language constructs. The plan is to base this on the foundation provided by NRefactory, or potentially Roslyn (C#'s compiler as a service APIs). This will be the focus as work on 0.8 winds down, and be released as 0.9 later in the year.
  • Improved tooling - improved integration into Visual Studio, as well as other tooling experiences.

Contributing

You can help the project by reporting bugs/issues, sharing suggestions/ideas, creating and evangelizing samples and success stories, as well as with code for specific features.

In terms of code contribution, it would be especially interesting to see the development of import libraries for common libraries, so they are easily usable right out of the box. It would also be interesting to see the development of complementary tools/addins, adding support to other IDEs (esp. MonoDevelop) and other such complementary projects. Or you might be interested in the very core, i.e. the compiler itself.

It would be especially interesting to see full coverage of HTML5 and Node APIs.

All of the sources are available in the repository to build and extend further. Fork away, and create a pull request. I do request you check out the coding guidelines while doing so. For any major piece of functionality you'd like to add, I'd recommend discussing and sharing thoughts before-hand to coordinate better.