Bij mijn weten heeft MSFT nog helemaal niet bevestigd dat Generics exclusief voor C# zal zijn. Er zijn wel geruchten dat MSFT de verschillende talen wat meer eigen identiteit wil geven, als dat waar is zal VB.NET waarschijnlijk meer de gebruiksvriendelijke kant in gaan en bijvoorbeeld features als 'edit and continue' (dat voormalige VB ontwikkelaars erg missen) ondersteunen, terwijl C# dan meer de 'hard-core' kant op zal gaan en dus inderdaad zaken als Generics zal ondersteunen.
Hoe dan ook, momenteel zijn de twee talen zo goed als identiek te noemen, de voornaamste rede voor meerdere talen is m.i. dat Microsoft in heeft gezien dat het niet mogelijk is 1 taal te ontwikkelen die zowel de bestaande VB ontwikkelaars als de Java ontwikkelaars kon aanspreken. De keus was dus: vervreemden we een van deze partijen, of bouwen we een platform dat met allebei overweg kan. De eerste optie was niet erg aantrekkelijk gezien het gigantische aantal mensen dat VB kende en het alsmaar groeiende aantal mensen dat Java beheerste. Omdat het implementeren van een multi-taal feature op een VM-achtig platform helemaal niet moeilijk is (het kan op het Java platform al jaren, alleen Sun heeft gekozen daar heel erg weinig aandacht aan te besteden) en het ook leuk was voor de marketing mensen (een soort write anywhere, run once ipv write once, run anywhere

) was de keuze snel gemaakt.
Probleem is nu natuurlijk wel dat het voor ErikRo weer keuzes en dus vragen oproept. Naar welke van de twee kun je het beste overstappen? Je zegt zelf je eerst te willen verdiepen in VB. Dat lijkt me nou niet bepaald de beste keus, het is immers een door MSFT 'afgeschreven' platform/taal. Natuurlijk zal er nog jaren verderontwikkeld worden op de aanwezige legacy code, maar uiteindelijk is het een dead end, niet echt een nuttige investering dus. Zeker niet als je je realiseert dat heel veel VB mensen koppijn hebben gekregen van de VB-VB.NET overstap, dat is echt een grote stap, waarbij je veel van wat je weet overboord moet zetten en opnieuw moet aanleren omdat veel dingen gewoon echt anders in elkaar zitten.
Je bent bekend met VB, dus als je nu overstapt naar VB.NET is de overstap in ieder geval qua syntax niet al te groot, maar met zaken als echt OO ontwikkelen zul je een hele tijd zoet zijn. Het gaat je dus zowiezo veel tijd kosten, ik zou dan zeggen: stop die tijd in het leren van C# of Java. Nieuwe syntax dus extra moeilijk, maar als je kijkt naar de toekomst zullen de grootste kansen in een van die twee talen liggen. Daar komt bij dat C# en Java qua syntax vreselijk op elkaar lijken, dus als je een van de twee kent is, qua syntax, de overstap naar de andere niet zo groot. De 'safe choice' is dan Java omdat dat gewoon een heel sterk platform is waar (relatief) veel vraag naar is op de arbeidsmarkt, persoonlijk ben ik echter ieder dag weer blij dat ik met C# mag werken en zou ik voor geen geld meer terugwillen naar Java of, erger nog, naar VB.