Why would anyone choose C# for scientific computing?

Actually, it's a very nicely designed language. Compared to Java it supports custom arithmetic operators, properties, and language support for numerical value-types to handled more naturally; all important if you're doing scientific computing. Compared to Python, which for some reason happen to be very popular in the scientific computing community, it provides static typing for much easier understanding of data flows, efficient machine code generation for fast execution, and the powerful development environment MonoDevelop. And compared to C++: well, we aren't designing operating systems, so why not avoid all the complications of manual memory management.

Isn't C# just a monopolistic company's propiarary language? No, it's actually EMCA standardized and the emergence of the Mono implementation has even made Microsoft embrace open source licenses (the large project ASP.NET MVC has recently been released under liberal the Apache License). Also remember that C was also created by a monopolistic company (AT&T) many decades ago. And finally nobody is trying to sneak in the Ask Toolbar like Sun's Java!

Mono provides a full open source implementation; probably more mature and optimized than any open source Java implementation. On Debian it's as easy as aptitude install mono-complete monodevelop to install Mono and MonoDevelop. It's also very easy to install and run from the home directory on a Linux cluster without admin rights like any other program.

Last edited Sep 25, 2013 at 10:23 PM by bakkedal, version 2