Sollte ac # dev zu VB.net wechseln, wenn die Team-Sprachbasis gemischt ist?

14

Ich bin kürzlich einem neuen Entwicklungsteam beigetreten, in dem die Spracheinstellungen auf der .net-Plattform gemischt sind.

  • Dev 1: Kennt VB.net, weiß nicht, c #

  • Dev 2: Kennt VB.net, weiß nicht, c #

  • Entwickler 3: Kennt C # und VB.net, bevorzugt C #

  • Entwickler 4: Kennt C # und VB6 (VB.net sollte ziemlich einfach zu erlernen sein), bevorzugt C #

Es scheint mir, dass die Vordenker im .net-Raum fast universell sind. Ich dachte auch, dass einige Tools von Drittanbietern VB.net nicht unterstützen, aber als ich mich damit befasste, fand ich keine guten Beispiele.

Ich würde es vorziehen, das gesamte Team auf c # zu bekommen, aber wenn es keinen guten Grund gibt, das Problem außer den Vorlieben zu erzwingen, dann halte ich das nicht für die richtige Wahl.

Gibt es Gründe, warum ich Leute von VB.net wegführen sollte?

Wilman
quelle
5
Die Ausführlichkeit innerhalb von VB allein sollte Sie zu C # führen ...
Aaron McIver
13
Klingt für mich so, als würde Ihrem Entwicklungsteam eine ernsthafte Führung fehlen. Warum hat sich Ihr Manager nicht mit diesem Problem befasst?
2
Warum driften Sie in Richtung VB .Net? Aus dem obigen Diagramm können die beiden Entwickler mit beliebiger Fähigkeit C # erkennen und die anderen kennen überhaupt kein .Net. Sicherlich ist es am besten, diejenigen, die beide Sprachen nicht beherrschen, mit C # auf den neuesten Stand zu bringen, da die beiden anderen Entwickler bereits über C # -Kenntnisse verfügen, auf denen sie aufbauen können.
15
Unter der Haube mögen sie gleich sein, aber die VB-Syntax ist die hässliche, von Warzen befallene Schwester, die neben ihrer heißeren, gut gebadeten C # -Schwester steht. Die Syntax sollte nur als Bezugspunkt für das Blut in Erinnerung bleiben, das vielen Entwicklern in den Augen vergossen wurde, als sie auf ihre eigene Version der Hölle blickten. VB sollte kastriert, getötet und in der warmen Sommerhitze am Straßenrand verrottet werden. Umfassen Sie die schönere Syntax und meiden Sie das, was Mutter Natur vergessen hat. Mit Bedacht wählen.
Moo-Juice
2
Wenn ich mich nicht irre, steht On Error Resume Next für Legacy-Unterstützung. Try Catch-Blöcke existieren in VB.Net ... da es sich um .Net handelt.
Tony Abrams

Antworten:

2

Es gibt keinen wirklich zwingenden Grund, jemanden zum Wechseln der Sprache zu zwingen, es sei denn, eine Funktion wird für Ihr (e) Projekt (e) besonders nützlich oder zeitsparend sein. Sie werden beide bis zu IL kompiliert und führen eine gleichwertige Leistung aus (vorausgesetzt, dies Option Strictist in VB.NET aktiviert ... andernfalls können Sie Strafen für die späte Bindung erheben). Alles andere ist wirklich bevorzugt (das überhaupt nicht abzulehnen, aber es ist keine objektive Metrik).

Ich würde vorschlagen, sich Stellenangebote in Ihrer Nähe anzusehen und herauszufinden, welche Sprache sowohl im Arbeitsangebot als auch im Arbeitskräftepool für beide Sprachen am häufigsten vorkommt. Zu sehen, welcher Ihnen einen größeren oder besseren Arbeitskräftepool bietet, wird wahrscheinlich Ihre überzeugendste Messgröße sein.

Adam Robinson
quelle
Ich stimme dem zu, was Sie zu lokalen Stellenangeboten gesagt haben. Ich denke, eine Sache, die leicht zu übersehen ist, ist der potenzielle Talentpool, und die Auswirkung der Auswahl einer Sprache gegenüber der anderen kann sich auf Ihre zukünftigen Einstellungsbemühungen auswirken.
jjr2527
7

Zum Glück ist die Antwort einfach: Es gibt keine "beste" Sprache. Alle .NET-Sprachen verwenden im Stammverzeichnis Funktionen aus den von .NET Framework bereitgestellten Klassen. Daher können Sie alles, was Sie in VB.NET tun können, in C # tun und umgekehrt. Der einzige Unterschied zwischen den Sprachen ist lediglich ein syntaktischer.

C ++ -, Java- und J ++ - Programmierer bevorzugen die unsinnige, knappe Syntax von C #. Visual Basic (VB) -Programmierer halten sich möglicherweise lieber an den Teufel, den sie kennen - Visual Basic .NETs case-insensitiver, pseudo-natürlicher Sprachansatz. Wenn Sie VB-Programmierer haben und diese echte Programmierer sind (siehe Option Strict ON), erhalten Sie die gleichen Ergebnisse. VB ist ausführlicher .... C # ist ein Ballbuster mit Groß- und Kleinschreibung.

Anna Karin
quelle
Es stimmt, beide können 98% der Leistung erbringen, die der andere erbringen kann, ABER es gibt so viel Seil, mit dem Sie sich in VB aufhängen können. On Error Resume NextAllein würde mich in Richtung C # laufen lassen. Das ModuleKonzept ist auch sehr gefährlich. Es ist ähnlich wie static classin C #, aber ... alles darin ist global zugänglich, ohne Bezug auf die übergeordnete Klasse und automatisch statisch ohne jede andere Angabe ... außer dass die übergeordnete Klasse ein Modul ist ...!
Paul Sasik
6
Tut mir leid, aber das stimmt einfach nicht. Wie würden Sie beispielsweise einen Ausnahmefilter in C # schreiben? blogs.msdn.com/b/clrteam/archive/2009/08/25/…
@LukeH Um Ausnahmefilter zu C # hinzuzufügen, können wir eine Funktion in VB oder IL erstellen und sie dann in C # aufrufen: D
4
@Anna: Damit widerlegen Sie Ihre Aussage, dass "alles , was Sie in VB.NET tun können, Sie in C # tun können" .
2
Es gibt einige Dinge, die Sie in VB.Net einfach nicht tun können - siehe auch: stackoverflow.com/q/2362381/50447
Rowland Shaw
5

Ehrlich gesagt sollte ein Team von Entwicklern dieselbe Sprache sprechen oder zumindest dieselben Sprachen beherrschen.

Dies hilft beim Cross-Training und beim Support für verschiedene Anwendungen, die ein Entwicklerteam erstellt.

Am Ende ist VB vs C # alles ein Kampf der Vorlieben, aber das Team sollte auf der gleichen Seite sein, welche sie verwenden oder unterstützen werden.

Tony Abrams
quelle
5

Sollte ac # dev zu VB.net wechseln, wenn die Team-Sprachbasis gemischt ist?

Der Entwickler sollte die .NET-Sprache verwenden, die der Standard für das Team ist. IMO sollte es eine Sprache geben, die verwendet wird (es sei denn, es kann ein äußerst überzeugender Fall gemacht werden).

Gibt es Gründe, warum ich Leute von VB.net wegführen sollte?

Ich denke, die meisten Leute hier bevorzugen C #, aber dies ist weniger eine technische Frage als eine politische oder geschäftliche Entscheidung. Entscheiden Sie, welche .NET-Sprache verwendet werden soll, und verwenden Sie sie dann. Nun gibt es offensichtlich eine Reihe von Faktoren zu berücksichtigen:

  • Gibt es eine vorhandene Codebasis? In welcher Sprache ist der Großteil geschrieben?
  • Können die VB.NET-Entwickler C # leicht erlernen? Wollen sie
  • Ist es finanziell sinnvoll, in C # -Schulungen zu investieren?
  • Wie würde sich ein Sprachwechsel auf die vorhandenen Ergebnisse auswirken?
Randy Levy
quelle
+1 für das Nachdenken über das Team, anstatt individuelle Vorlieben
MarkJ
4

Tatsächlich verfügt VB.NET über einige Funktionen, die C # derzeit nicht bietet: XML-Literale und Abfragesyntax für die Verwendung der Aggregatmethode in LINQ.

John Saunders
quelle
1
VB.NET hat auch keine Iteratoren (dh Yield-Schlüsselwort in C #).
Atconway
2

Ich war 2003 in einer sehr ähnlichen Situation, in der Sie sich gerade befinden. Ich leitete ein Team, das von ASP Classic zu ASP.NET wechselte. Der Großteil unseres Teams hatte Erfahrung mit VBScript als Defacto-Sprache für ASP, aber etwa die Hälfte des Teams favorisierte C # trotz eines etwas komplexeren Migrationspfads von ASP / VBScript. Letztendlich habe ich mich für VB.NET entschieden, aber im Nachhinein wünschte ich mir wirklich, ich wäre die C # -Route gegangen.

Am 5-jährigen Jubiläum dieser Entscheidung schrieb ich einen Blog-Artikel über meine Entscheidungsgründe und versuchte, anderen Entwicklungsmanagern, die versuchten, den gleichen Anruf zu tätigen, meine Rücksicht zu gewähren. Hier ist ein Link zum Artikel:

"Eine Manager-Retrospektive zur Entscheidung zwischen C # und VB.NET"

Kurz gesagt, für diejenigen, die nicht den ganzen Artikel lesen möchten: Ich glaube nicht, dass das Projekt bei der Auswahl von VB.NET gegenüber C # schlechter gelaufen ist, und es hat uns auf kurze Sicht wahrscheinlich viel Zeit gespart. Das größte Problem war wirklich die Rekrutierung. Ich würde gerne einen C # - oder VB.NET-Programmierer einstellen, der in beiden Sprachen arbeitet. Sie sind wirklich nicht so wesentlich anders. Unabhängig davon, ob verdient oder nicht, hat VB.NET ein Stigma, das eine große Anzahl von Entwicklern veranlasst, Jobs zu meiden, bei denen sie wissen, dass sie damit als Primärsprache arbeiten werden.

JohnFx
quelle
Als C # -Programmierer habe ich an Projekten mit VB.NET gearbeitet. Aber meistens wussten die VB.NET-Programmierer nicht, was sie taten, besaßen keine Comp-Sci-Abschlüsse und schrieben Methoden mit Hunderten von Codezeilen. Aus diesem Grund habe ich mich bemüht, Stellenanzeigen, die nach VB.NET fragten, zu ignorieren.
Ian
1

Ich würde mich eher an C # orientieren, weil es weniger ausführlich ist und meiner Erfahrung nach im Internet weit verbreitet ist. Ich würde auch argumentieren, dass C # oder VB.NET einfach und schnell zu erlernen sind, bis zu einem Punkt, an dem es vernachlässigbar und unbedeutend ist. Das .NET Framework hingegen ist riesig und eine sich ständig weiterentwickelnde Kreatur. Das Beherrschen von .NET dauert viele Jahre, das Beherrschen von C # oder VB.NET kann jedoch einige Monate oder weniger dauern.

Nelson Rothermel
quelle
0

Ich denke, @Anna Karin hat einen guten Punkt, also sollten Sie sich keine Sorgen um Bibliotheken machen müssen. Zumindest kann ich mich an niemanden erinnern, der nur mit c # und nicht mit vb.net funktioniert.

Ein weiterer wichtiger Punkt ist, dass Code-Checks zwischen Mitgliedern desselben Teams schwieriger werden, wenn sie mit verschiedenen Sprachen arbeiten. Ich denke, es ist die beste Idee, eine gewöhnliche Sprache zu verwenden, um die Reibung in der Kommunikation zu verringern.

Tiago Deliberali Santos
quelle
0

Obwohl ich der vorherigen Antwort zustimme, dass .NET in Bezug auf die Funktionen identisch sein sollte, ist dies nicht immer der Fall, aber nahe genug, dass es keine Rolle spielen sollte, wenn Sie ein einfaches Projekt haben.

Der Hauptgrund für den Wechsel zu C # im gesamten Team ist, dass dies die Sprache ist, in der sich die meisten Beispiele befinden und die meisten Open-Source-Projekte Quellcode in C # veröffentlichen. Wenn Ihr Team nicht in der Lage ist, eine solche Ressource zu nutzen, können Sie sich unnötig einschränken.

jjrdk
quelle
0

C # und VB.NET basieren auf der .NET-Plattform. Für Entwickler, die in .NET arbeiten, ist es wichtig, .NET, Prinzipien, Techniken und Muster zu kennen. In diesem Fall ist das Wechseln zwischen Sprachen kein Problem - es geht hauptsächlich um die Syntax. In einem gemischten Team sollten vielleicht alle versuchen, beide Sprachen zu lernen (das ist keine große Sache), aber es kann für die zukünftige Zusammenarbeit zwischen Mitgliedern des Teams wichtig sein.

Vladimir
quelle
0

Ich würde sagen, der einzige Vorteil, dass jeder dieselbe Sprache verwendet, ist, dass jeder Entwickler an jedem Teil des Codes arbeiten kann.

Darüber hinaus unterscheiden sich VB.NET und C # nur durch die Syntax unter .NET. Und Code, der in beiden Sprachen geschrieben wurde, kann problemlos im selben Projekt koexistieren.

Jonathan Wood
quelle
0

Ich würde mit C # gehen, weil:

  • Es ist näher an Java und C ++ (Sprachen, die sehr oft in CS-Kursen unterrichtet werden).
  • Es gibt viele Ressourcen im Internet in C # als in VB (nach dem, was ich da draußen gesehen habe).
  • Die Chancen sind höher, andere Entwickler zu finden / einzustellen, die C # besser kennen als VB (von dem, was ich in meinem Unternehmen gesehen habe), um das Projekt aufrechtzuerhalten.
Andrei Pana
quelle
0

Meiner Meinung nach sollte die vertragsbasierte Entwicklung mit der Schnittstelle möglich sein, und der Entwickler sollte in der Lage sein, eine Klasse in jeder gewünschten Sprache zu codieren und wahrscheinlich Klassen auf niedriger / hoher Ebene in verschiedenen Assemblys zu trennen. Solange die Klassen die angeforderte Schnittstelle respektieren und die Anforderung implementieren, sollte es kein Problem geben.

dvhh
quelle
0

Ich stimme vielen anderen Antworten hier zu. Ich war Teil von zwei Teams, die diese Entscheidung treffen mussten. Bei beiden entschieden sie sich zunächst dafür, dass die Entwickler wählen könnten, da die beiden Sprachen zusammenarbeiten. Innerhalb des ersten Jahres wünschten sie sich jedoch beide, sie hätten sich gerade für C # entschieden und stellten eine neue Anforderung, dass alle neuen Projekte in C # sein sollten.

Beth Whitezel
quelle
0

Gründe für die Verwendung von C #:

  • Bisher haben sich zwei Ihrer Entwickler darüber gefreut, und die anderen beiden könnten es vielleicht vergessen, wenn sie es erst einmal gelernt haben.
  • Sie planen, irgendwann mehr Entwickler einzustellen, und möchten die Menschenmenge "20 Jahre VB-Erfahrung" meiden.
  • Sie lieben geschweifte Klammern.
  • Du liebst das Leben.

Gründe für die Verwendung von VB.NET:

  • Die beiden Entwickler, die C # nicht kennen, lehnen es unbedingt ab, es zu lernen.
  • "Den Weg des geringsten Widerstands beschreiten" lautet die Devise Ihres Unternehmens.
  • Es gibt eine riesige vorhandene VB-Codebasis, die nicht aktualisiert werden kann.
  • Sie sind auf einem HP Lovecraft Kick und beklagen das Fehlen von "eldritch horrors" in Ihrem täglichen Leben.
Shog9
quelle