Introducing Sho

Today we are proud to release Sho publicly to the world at large. What is Sho, you may ask?  It's an interactive environment for data analysis and scientific computing.  Aren't there a lot of those, you may ask? Well, there are, but what's special about Sho is that lets you seamlessly connect scripts (in IronPython) with compiled code (in .NET). Sho also comes with powerful and efficient libraries for linear algebra as well as data visualization that can be used from any .NET language (C#, F#, managed C++, etc.), as well as a feature-rich interactive shell for rapid development.

 

That's our value proposition: seamless connectivity and powerful libraries for scientific computing.   You can create Python objects and script with them (they're secretly .NET objects underneath).  You can load in .NET libraries, instantiate objects, subclass from them, hand them Python callbacks, no sweat. There's no wrapping or decorating your compiled code, no special shadow objects to construct, none of that. If someone hands you a random .NET library, you can load it in and start using its objects. All that power comes from IronPython; what we add to the mix is a powerful set of libraries to let you do linear algebra, statistics, optimization, and much more, as well as a friendly console with fancy tab completion, inline images, and more for manipulating all of that good stuff.

 

Why might all this be important to you? If you love analyzing data and developing algorithms and prototypes in a script language (Python, etc.) but find yourself  writing some parts of your code in a compiled language, Sho may be perfect for you.  Likewise, if  you find yourself  trying to connect to compiled code from other people, Sho can make your life easier. On the other side of the spectrum, if you do most of your programming in compiled languages but occasionally want to use script to hook these components together, Sho can be a great tool. Finally, if you do all your programming in compiled .NET languages but just want a great numeric library (for linear algebra, statistics, etc.) as well as plotting capabilities, Sho can be very helpful for you as well.

 

Of course, the best way to find out whether Sho is for you is to try it out for yourself! To see some screenshots/demo videos, read some documentation (including the Book of Sho), or get the latest installer, check out https://research.microsoft.com/sho