Sometimes I need to convert a piece of code or an entire project from VB.NET to C# or viceversa. Unfortunately the code conversion sometimes cannot be automatically done because of the intrisic language differences. I am referring for example to keywords like yield available in C# and not in VB.NET or viceversa XML Literals available in VB.NET and not in C#.
My question is then if you ever consider the portability of source code when you write a .NET project or do you take full advantage of the language-specifics?
I would never consider to restrict my use of a language only because someday I could want to port it to another language. It would lessen my productivity and mean an investment in a future that is not very likely.
I would especially not do so for .NET languages, because .NET assemblies are interchangable.
If I know beforehand that I will have to port my code, I would write it directly in the language that I would need to port it to.