I am a huge linux fan and have been ignoring .net, C#, and visual basic due to their relationship with Microsoft. Am I foredooming them just for their relationship? Is there any advantage to learning them, when you are mainly a linux user?
Should I open up to .net, c# and visual basic?
c#;.net;vb.net
They are fully deployable to Linux environments using the Mono framework which is not controlled by Microsoft. I'd say ignoring them because you like Linux would be a mistake. If you don't like the languages for other reasons like syntax or memory overhead or whatever, then fine but I'd not write them off because they are based on work done at Microsoft and partially supported by Microsoft.As far as advantages to use, they have a rich ecosystem behind them even through Mono so it all just depends on what you want to do. I mean if all you do is web apps then RoR or PoD would probably suit you fine. If you want to dabble with an enterprise level language that lets you use functional programming and let's you combine freely with an even more functional language that integrates fully with it then Mono becomes an interesting alternative to the JVM or doing a C++ hydra. .NET and Mono were designed to use the Common Language Interface which was designed from the beginning with language inter-operation in mind. The JVM might have an edge in terms of running all over the place (even Smart Cards) but it's interoperability has been less designed-in. Mostly it's going to be a matter of taste or enforced use.