I'm probably going to take some heat for this question. But I'd like to know how to address this problem. So here goes.
I program (to different levels of competence - admittedly) in various languages. I have dabbled with C#, and it seems quite a nice language (reminds me A LOT of Java and C++). The problem is that I have what can only be described as a pathological distrust of all things from the Redmond company - as a result of experiences too many to enumerate here.
I am a great believer in open source software (GPLd or otherwise) - and am an avid consumer and contributer to many Open Source projects.
My questions are the following:
.Net can ostensibly be run on Linux using mono - but is anyone actually using such a setup in production?
It seems to me that almost every (half year?) or so, a new version of the language is pushed out - (I don't know whether the new versions are backward compatable). In any event, if you take other languages e.g. C/C++, Python etc, the 'versioning' is far and few between - therefore it provides a more 'stable' environment for the developer. It seems (in my mind at least) that learning/using C# is going to be a never ending learning curve every six months - I am not sure if I have the wherewithal to commit so much to any one particular language.
To summarize, I am trying to balance the pros and cons of learning/using .Net (and C# in particular, which looks like a beautiful language), but if I do, I want to deploy on Apache/Linux (with either mySQL or PostgreSQL backend) - as opposed to IIS/Windows/SQLServer.
Is this a pipe dream (running .Net/C# on Linux), or is someone out there actually using it in production?