Die ganzen Sprachen die auf .NET basieren, sind so ziemlich alle samt gleich. Die einzigen Unterschiede besteht letztendlich im Code.Das liegt daran, dass die Sprachen alle auf das .NET Framework zurückgreifen. Also: "Alle nehmen aus der gleichen Bibliothek das gleiche Wissen". Deshalb ist keine Sprache, die auf das .NET basiert, besser oder schlechter. Zum Beispiel:
Mit C# kannst du unter .NET das gleiche machen wie bei VB.net. Java.net das gleiche wie C# oder C++.net. C++.net das gleiche und und und (gibt's ja genug)
In Sachen Betriebssysteme:
Es gilt die Regel: Überral wo das .NET installiert ist, dort werden deine Programme auch funktionieren. Du musst nicht den Code für jedes System umändern. Der Code wird nämlich NICHT in die Maschinensprache kompiliert sondern in eine Zwischensprache von Microsoft! Diese Zwischensprache wird bei jedem Ausführen erst in die Maschinensprache übersetzt. Dauert zwar länger, ist dafür Plattformunabhängig und die Kommunikation zwischen zwei Dateien wird auch vereinfacht.
Letztendlich würde ich sagen:
Schau dir von jeder Sprache mal das Grundwissen an und entscheide dich nach dem "Optischen" und nach dem, was du schneller verstehst. Am Anfang habe ich mit VB.net begonnen. Doch das ganze "Sub" -> "Sub End" blablabla wurde mir auf Dauer zu dämlich und bin deshalb dankend auf C# umgestiegen, mit dieser ich mehr als zufrieden bin. 8)
Hoffe, es ist leicht verständlich.
Mit freundlichen Grüßen
Raptor