Question: I've been programming a lot in standard C for about a two years now. I do not regard myself as an experienced programmer but I can work my way around the basic stuff. Since earlier this year I also started programming in C# to try and expand my programming knowledge but I came to a dilemma. 

I plan to do a lot of programming through my life, and object oriented languages definitely have major benefits so its critical that I choose one to begin. Thing is, although I regard C# as very easy to develop, I feel as though as I am sponsoring a mindset I don't agree with. In terms of programming languages, frameworks or libraries, do you ever feel like you should go with something more free and portable?

I strongly believe in open source, free distributing of content and a basically an internet where freedom exists so I am really curious about what your opinions are on the matter.

Basically, should I learn something "more open" instead?

Answer: 
What about [Mono](http://www.mono-project.com/)? Open source .NET. Everyone's a winner!
I think the language you use does not forbid you to developing some free library or so on. The systems are not (all) free for this technology, but it doesn't mean that you can't do open source products with it.

If you develop C#, you are somehow "sponsoring" Microsoft, which doesn't really like open software, which you may find a problem.

I am a C# developer and have no problems with that, because every code I wrote in my work was a proprietary code, so somehow I am also a proprietary-code-developer, I can't run away from that.

And I don't see any problem on proprietary code :)