You can keep using .NET languages if you use Mono. This is a multi-platform version of CLR, the multiplatform .NET. See
http://en.wikipedia.org/wiki/Mono_(software)[
^],
http://www.mono-project.com/[
^].
The level of compatibility is amazing. .NET libraries standardized under ECMA and ISO are all supported, but some of non-standard libraries, too, such as Forms.
I run my .NET applications on Linux without recompilation, even Forms applications.
I would recommend using C# and/or C++/CLI.
—SA