Isis2 for people who don't want to use C#
During 2014 we did a lot to help you use Isis2
from other languages. One big category of options is to use any of the other non-C#
languages supported by .NET
. As you will see, not only does .NET itself support all sorts of languages (including C++ with some extensions, C, Python with some extensions, etc) but there is also
a link at the bottom of that page to a platform called
which at least purports to let you take standard Java code and cross compile it to link against .NET libraries on Mono. Thus you could take Isis2, compile it for Mono (not hard), then use this package to compile your Java program and in principle,
Java would then talk to the full Isis2 API. If you try this keep us posted (we can help if you get stuck) via the discussions tab, where we have a thread for such things.
So far, we have one such contribution: On the downloads page is a link to some recommendations on using the system from IronRuby and F#, with clear instructions and small demo programs for each. This was done by Keshav Varma, a Cornell student in our Cloud
But we've also made a serious push to make Isis2 more and more useful without ever programming against the Isis2
API. You'll find that I recently posted
written by one of our students, Kaveri Chaudry, that offers a small server in which she runs Isis2
(e.g. the server is a kind of stand-alone version of the library). You run one copy on each node in your cluster or HPC system. Then you
can access the Isis2
OOB interface from programs on the same machines where you have copies of the server. Thus if you had 100 machines using Hadoop, you could put this server in the background and now it becomes possible to use the Isis2 in-memory
replication API to share mapped files between your applications. Weijia Song took this over late in 2014 and is now maintaining the solution. It is quite robust and surprisingly fast. The API supported also including file locking.
There are two ways to talk to Kaveri's server: via a command-line program she wrote, or from a very thin library for C++ or C users, who would work purely in native C++ or C, without the .NET CLI extensions.
Last, Ken is in the middle of a port of Isis2 to run as a standard C++ library on Linux. This would interoperate with the C# .NET library (same wire formats and protocols) but on Linux would link against native C++ and C programs or other applications that
compile to the native Linux format. This activity is slow (moving from a fully managed environment to a non-managed one is a bit of a pain, and then there are other changes involving the threads model and the way polymorphic upcalls will work) but the whole
thing is feasible. We expect to be done in mid 2015.
Drop an email to Ken (email@example.com) if you have a good application for any of these features and would be willing to be a beta user. Later in the spring we'll do a user manual aimed just at this community, and it won't have a line of C# in it,
or even mention that Isis2 is a library written in a strong programming language known only to an elite few...