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  

Comments (8)
  1. Manas says:

    The " " Link  doesn't work above .

  2. Sho Team says:

    Thanks for the catch, Manas, just fixed the link!

  3. Bootvis says:

    How does it integrate with MS Office (Excel)?

  4. Peter says:

    Very cool, I've been looking for a good interactive stats program on the CLR or JVM. Does this have any lineage to Vedea…/vedea

  5. Sho Team says:

    Sho does not have an explicit interface to Excel. There is an Excel Primary Interop Assembly (described at…/ ) that you can play with from inside Sho, if you're interested. Let us know how it goes!

  6. Jesper says:

    Is there any interest in adding support for decimal-representation floating point? I realize that every decimal representation and library designed before the most recent revision of IEEE 754 is basically ad-hoc and that you'd need to bridge them back and forth to the support library, but those of us that occasionally need to use decimal are more concerned with accuracy than with speed. John Platt mentioned using Sho instead of MATLAB in the Channel 9 video, and if you type a large or small number in (or even just 0.2), you'll want to not accrue an error.

  7. Hansraj says:

    Superb stuff. Had heard that Ms Research is into some awesome work, but this one takes the cake.

  8. G says:

    "sho".. sounds and spells like "show".. impossible to use google or bing on.

    e.g. try google : sho , polynomal regression

    did you ever think of that?

    Please rename it and think of programmers that look for solutions on it on the internet..I really should not have to tell somebody from microsoft how to make things searchable on the internet now..

Comments are closed.

Skip to main content