Αν το έργο επείγει, θα πρέπει να χρησιμοποιήσεις τη γλώσσα στην οποία νοιώθεις άνετα. Από εκεί και πέρα όμως, θα πρέπει να έχεις υπόψη ότι η μεγαλύτερη διαφορά μεταξύ των δύο γλωσσών είναι στο "οικοσύστημα" που τις περιτρυγιρίζει. Η VB.NET έχει στόχο τον γρήγορο και εύκολο προγραμματισμό. Κάνει ευκολότερα αρκετές επαναλαμβανόμενες εργασίες. Κατά συνέπεια τα εργαλεία και τα βιβλία που αφορούν την VB.NET τείνουν να είναι περιορισμένα σε αυτό τον τομέα.
Αντιθέτως, η C# είναι φτιαγμένη για σοβαρό προγραμματισμό σε όλα τα επίπεδα. Τα καλύτερα βιβλία είτε αφορούν patterns, είτε μεθοδολογία βγαίνουν σε C#, ενώ πολλές φορές βιβλία που αφορούν το ίδιο θέμα (π.χ. generics) έχουν πολύ καλύτερη κάλυψη για C# παρά για VB.NET. Το ίδιο συμβαίνει και με τα εργαλεία. Τα καλύτερα εργαλεία γράφονται σε C#, ενώ ελάχιστα open source εργαλεία θα βρεις γραμμένα σε VB.NET. Προσωπικά δεν έχω κανένα υπόψη. Για παράδειγμα, το NHibernate, ένα από τα καλύτερα ORM (και ίσως το καλύτερο Open Source) είναι γραμμένο σε C#. Ακόμα και η Microsoft βγάζει πρώτα τα διάφορα Frameworks και βιβλιοθήκες σε C# και με μεγάλη καθυστέριση σε Visual Basic - αν τα βγάλει.
Τα παραπάνω οφείλονται σε μεγάλο βαθμό και στην κληρονομιά της VB6, η οποία δεν ήταν ποτέ η πρώτη επιλογή όσον αφορά τη σωστή σχεδίαση και τον προγραμματισμό με Objects. Σαν αποτέλεσμα τα βιβλία που αφορούν σχεδίαση και OO προγραμματισμό έβγαιναν παλαιότερα για C++ και Java, ενώ τώρα για Java και C#. Επίσης, μεγάλο μέρος αυτών που χρησιμοποιούν σήμερα VB.NET είναι προγραμματιστές VB6 οι οποίοι απλά αλλάξαν περιβάλλον. Οι πρακτικές της VB6 όμως έιναι συχνά αντιπαραγωγικές, ενώ πολλές φορές είναι απλά κακές πρακτικές σήμερα (π.χ. η τάση να μπαίνει όλος ο κώδικας μίας εφαρμογής στο Button_Click event.)
Διαφορά θα βρεις ακόμα και στις θέσεις εργασίας. Μία θέση που ζητάει VB.NET συχνά κρύβει από πίσω ένα project το οποίο έχει μείνει σε VB6 ή μεταφέρθηκε από VB6 και μπορεί να έχει χαμηλότερες προδιαγραφές (σε απαιτήσεις αλλά και αμοιβές) από μία θέση C#. Από την άλλη, ένας προγραμματιστής που ξέρει C# μπορεί εύκολα να δουλέψει σε ομάδα VB.NET, το αντίστροφο όμως μπορεί να είναι δύσκολο αν ο προγραμματιστής VB.NET δεν ξέρει object oriented προγραμματισμό. Εκτός Ελλάδος, η C# πληρώνεται περισσότερο από τη VB.NET (στην Ελλάδα, με τους τεχνητά συμπιεσμένους μισθούς παίρνεις τα ίδια ακόμα και αν γράφεις σε VB6).
Τελικά, παρότι φαίνεται ότι δεν υπάρχουν μεγάλες τεχνικές διαφορές, υπάρχει τεράστια διαφορά στο περιβάλλον της κάθε γλώσσας. Στα βιβλία, τις βιβλιοθήκες, τον open source κώδικα, τους προγραμματιστές, ακόμα και τις ομάδες που χρησιμοποιούν τη μία ή την άλλη θέση. Συνεπώς, ακόμα και αν δεν χρησιμοποιήσεις C# σε ένα έργο σήμερα, θα πρέπει οπωσδήποτε να μάθεις τη γλώσσα γιατί θα τη συναντήσεις (αν δεν την έχεις ήδη συναντήσει) σίγουρα στο μέλλον. Έτσι κι αλλιώς, για να γίνεις καλός προγραμματιστής πρέπει οπωσδήποτε να μάθεις να δουλεύεις με διάφορες γλώσσες, κυρίως με γλώσσες διαφορετικής φιλοσοφίας όπως είναι η C# και η VB.NET.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos