Also möchte ich nicht, dass dies in einen Flammenkrieg zwischen C # - und VB.NET-Entwicklern gerät. Dies ist rein vom Standpunkt einer Entwicklungsabteilung aus gesehen. Wir sind seit Jahren ein VB.NET-Unternehmen, aber das lag hauptsächlich daran, wen wir eingestellt haben. Diese Anforderung hat sich in letzter Zeit verschoben, da wir zwei auf C # spezialisierte Leute eingezogen haben. Ich war ein C ++ / C # Typ, bevor ich für diese Firma in VB.NET umwandelte.
Also, für alle, die sich damit auseinandersetzen müssen, sei es auf der Basis von Einstellungen oder auf der Grundlage von Wartbarkeit: Wie gehen Sie mit der Standardisierung von Wahlsprachen um? Ich bin geneigt, einen Push für C # zu machen, denn das macht 3 solide C # -Entwickler hier. Aber nur neugierig, was alle darüber denken.
Wenn Sie viel Code haben, der bereits in einer bestimmten Sprache geschrieben ist, bevorzugen Sie diese Sprache.
Andernfalls, wenn Sie mehr Entwickler haben, die in einer Sprache versiert sind, bevorzugen Sie diese Sprache.
Andernfalls bevorzugen Sie C # (es ist im Allgemeinen beliebter und funktional sind sie nicht verschieden genug, um eine sinnvolle Auswahl nur für Funktionen zu treffen).
Als jemand, der in einem gemischten Laden arbeitet, ist es nicht schwer, beides zu nutzen. Aber es hilft, einen Standard zu haben, der es einfacher macht, Code hin und her zu verschieben. Hier sind einige Ideen für Ihren Standard:
Für die VB-Entwickler:
Convert.To___()
-Funktion wo möglich für die einfache Umwandlung in und aus C #. Option Strict
und Option Explicit
. Du gibst etwas dynamische Tipp-Coolness auf, indem du es zu einer Voraussetzung gegenüber einem starken Vorschlag machst, aber es ist es wert, die Code-Parität mit C # zu halten. AndAlso
und OrElse
über And
und Or
Für die C # Entwickler:
SomeType sometype = ...
). Sagen Sie ihnen, dass sie stattdessen ein _ Präfix verwenden sollen (und nicht "m_"). Das solltest du sowieso machen, aber es ist besonders wichtig in einem gemischten Shop, weil es schwieriger wird, mit diesem Code in VB zu arbeiten. Für beide:
Wenn Sie das tun, wird es nur wenige echte Unterschiede zwischen dem Code für die beiden Gruppen geben, und Sie haben den ersten Schritt getan, den VB-Entwicklern beizubringen, wie C # -Entwickler zu denken.
Bei einem früheren Kunden, der seine missionskritischen Anwendungen in VB geschrieben hatte, fiel es ihnen schwerer, VB-Programmierer im Gegensatz zu C # zu finden.
Also haben sie beschlossen, ihre Apps auf C # umzustellen.
Wie bei den meisten IT / Dev-Fragen hängt die Antwort davon ab. Wenn Sie mehr Leute in Ihrer Abteilung haben, die mit VB großartig sind, dann gehen Sie mit VB. Ich glaube nicht, dass einer so viel besser ist als der andere.
Die Frage, die Sie stellen, ist tatsächlich sehr wichtig, und zu viele Leute werden Ihnen sagen, dass die Sprachwahl nur eine persönliche Präferenz ist. Aber Sie wissen bereits, dass dies vom Standpunkt einer Organisation aus nicht wahr ist. Die Auswahl eines Standardsets von Frameworks, Sprachen, Tools usw. ist eine wichtige geschäftliche Entscheidung.
Ihre Programmierer sollten in der Lage sein, beide Sprachen mit ein wenig Zeit, Ermutigung und vielleicht ein wenig Training zu benutzen. C # und VB sind eng, und es gibt keine nennenswerten technischen Gründe, sich für einen zu entscheiden ...
Ich rate Ihnen daher, die Sprache Ihrer Organisation aus geschäftlichen Gründen auszuwählen. Wenn es einfacher ist, C # -Teams einzustellen, oder wenn Sie feststellen, dass sie bessere Fähigkeiten für die Art von Arbeit haben, die Sie tun, dann erhalten Sie eine für C #. Wenn Sie Code für Kunden schreiben und diese Kunden C # -Verkäufe bevorzugen, erhalten Sie eine weitere Bewertung für C #. Wenn Sie in VB bereits Code haben, erhalten Sie einen Wert für VB.
Es sollte eine ziemlich einfache Panne sein ... ignorieren Sie einfach technische Gründe und konzentrieren Sie sich darauf, wie sich die Sprachwahl auf Ihr Unternehmen auswirkt, in Bezug auf Einstellung, Training, Lieferfähigkeit für den Kunden usw.
Wenn es einen einzigen Grund gibt, C # für Ihr Unternehmen zu übernehmen, ist dies der Lambda-Operator. Ohne die volle Unterstützung des Lambda-Operators in VB.NET werden einige der besten Tools entweder verkrüppelt oder DOA. Zum Beispiel: fließende NHibernate, StructureMap etc.
Auf einer reinen Fähigkeitsbasis sind sie ungefähr so nah wie zwei Sprachen. VB.NET neigt dazu, mehr COM-Interaktivität zu erhalten und hat literales XML - aber C # bekommt bald davon.
Es ist wirklich nur eine persönliche Vorliebe und in welcher Sprache das Team am produktivsten sein kann.
Es klingt, als ob Sie schon einen Standard haben - VB.NET. Und vielleicht sind Sie versucht oder interessiert, stattdessen in C # einzusteigen.
Es macht wenig Sinn, die Hälfte Ihrer Systeme in VB und die andere Hälfte in C # zu schreiben - obwohl dies je nach Art Ihrer Organisation nicht zutrifft. Aber im Allgemeinen sollte die Organisation diese Veränderungen nicht leichtfertig vornehmen.
Wenn ich Sie wäre (und Sie wären daran interessiert, für sich selbst zu C # zu wechseln), würde ich auf C # setzen, aber wenn ich das Geschäft wäre, dann würde ich einen sehr guten Grund brauchen, diese neue Komplexität einzuführen. Management-Problem.
Wir hatten kürzlich das gleiche Problem. Wir programmieren beide einfach ein, abhängig davon, wo das ursprüngliche Projekt gestartet wurde. Es ist überraschend einfach, vor allem mit Visual Studio hin und her zu wechseln (es erinnert mich immer, wenn ich anfange "bool myvar ..." zu tippen, dass ich mache etwas falsch, wenn ich in einer .vb Datei bin.)
Unsere Priorität lautet so:
Es sollte ein guter Grund sein, mit einem Standard gegenüber einem anderen zu gehen. Benutze diese: