it-swarm-eu.dev

Warum ist VB so beliebt?

Visual Basic erscheint mir ungeschickt, hässlich, fehleranfällig und schwer zu lesen. Ich lasse andere erklärenwarum . Obwohl VB.net in Bezug auf die Funktionen eindeutig ein großer Fortschritt für die Sprache war, verstehe ich immer noch nicht, warum sich jemand dafür entscheiden würde, VB über beispielsweise C #) zu codieren.

Ich sehe jedoch immer noch (was zu sein scheint), dass die überwiegende Mehrheit der kommerziellen Web-Apps von "MS-Shops" in VB erstellt wurde. Ich könnte diesbezüglich korrigiert stehen, aber VB scheint immer noch populärer zu sein, als es verdient.

Kann jemand helfen, eine (oder alle) dieser Fragen zu beantworten:

  • Vermisse ich etwas mit VB? Ist es einfacher zu lernen oder "freundlicher" als C #? Gibt es Funktionen, die ich nicht kenne?
  • Warum wird VB/VB.net heute so häufig verwendet, insbesondere in Webprojekten?
28
aaaidan

VB kann verwendet werden, um GUIs (ausgesprochen klebrig) zum Verfolgen von IP-Adressen zu erstellen. Dies wird häufig in Aufklärung von Verbrechen verwendet.

47
Rick J

Ich denke, dass es davon abhängt, woher du kommst. Wenn ich als Programmierer anfange, denke ich, dass VB möglicherweise einfacher zu lesen ist als beispielsweise C #, da es mehr auf Wörtern als auf Symbolen beruht, was es einfacher macht für normale Menschen aufzunehmen.

Ich war viele Jahre lang ein VB Programmierer) und als .NET kam, arbeitete ich in den ersten Jahren immer noch in VB.NET (habe den Punkt mit C # nicht wirklich verstanden). Jetzt habe ich Ein paar Jahre C # hinter mir und manchmal stelle ich fest, dass das "Dekodieren" von VB.NET-Code etwas länger dauert als das von C # -Code. Möglicherweise, weil er bei einigen Konstruktionen mehr auf Wörtern als auf Symbolen beruht ...

42
Fredrik Mörk

Unten habe ich gerade meine Antwort auf einen anderen Thread kopiert :

Ich entwickle mich sowohl in VB als auch in C # regelmäßig, der größte Teil meines Geldverdienens war mit C # verbunden. Ich persönlich bevorzuge VB für die meisten (aber nicht) Alle… Lambdas!) funktionieren. Ich kann keine harten Vorteile nennen, außer den von Jon beschriebenen. Eigentlich hat Herfried einige auf seiner Website (auf Deutsch!) gesammelt, aber sie sind eher technisch.

Das, was mich an allen C-bezogenen Sprachen wirklich nervt, ist die dumme Syntax. Das ist rein kulturell, aber als jemand, der den größten Teil seiner professionellen Arbeit in C++ erledigt und sich darin ziemlich gut auskennt, hasse ich die Syntax immer noch absolut. Und nicht nur C++ 'süße kleine Macken. Nein, das ganze Paket. Warum Zahnspangen? Warum Semikolons (vielleicht die dümmste Entscheidung in der gesamten Programmiergeschichte)? Warum die blöde C-Style-Cast-Syntax? Warum gibt es kein Schlüsselwort für die Variablendeklaration (eigentlich ist dies die dümmste Entscheidung)?

Es gibt einfach so viele Dinge, die mich wirklich traurig und wütend machen. VB ist kein Heiliger, seine Sprache hat große Nachteile. Aber nichts im Vergleich zu dem, was ich oben gesagt habe.

Mir ist klar, dass die meisten dieser Aussagen begründet werden müssen, aber ich behaupte, dass dies nur deshalb geschieht, weil wir uns so an sie gewöhnt haben. Außerdem ist hier nicht der richtige Ort. Es genügt zu sagen, dass die Syntax von C # zwar der Hauptvorteil gegenüber VB ist, aber auch der Hauptnachteil.

Ich bevorzuge nicht VB wegen des Namespace My, ich bevorzuge es nicht wegen XML-Literalen, ich bevorzuge es nicht wegen schwacher Eingabe, ich nicht Ich bevorzuge es nicht wegen optionaler Parameter oder wegen der viel besseren switch Anweisung. Nein, ich bevorzuge es wegen der Syntax.


Trotzdem muss ich zugeben, dass VB immer mehr durch seine Syntax belastet wird. Der neueste Hype scheinen Linq-Abfragen zu sein, die mit Lambda-Funktionen parametrisiert sind, und ich gebe sofort zu, dass dies viele Dinge bewirkt Einfacher. Leider ist die Syntax von VB für Lambdas einfach zu umständlich, um mit C # zu konkurrieren. Überlegen Sie nur, wie aufgebläht ein Aufruf von Parallel.For sieht aus wie in VB - im Vergleich zu C #, wo es natürlich aussieht. IMHO, das VB Designteam ist hier in die falsche Richtung gegangen und hat konservativ bevorzugt Konsistenz über Lesbarkeit.


Um Ihre subjektive Anschuldigung zu beantworten:

Visual Basic erscheint mir ungeschickt, hässlich, fehleranfällig und schwer zu lesen.

Sie haben sicherlich das Recht, dies zu glauben, aber wie Marc weiter unten gesagt hat, fällt es Ihnen schwer, dies objektiv zu argumentieren. Ich kann definitiv eine Anzahl von C-Syntaxelementen zitieren, die objektiv fehleranfälliger sind als alles, was in VB existiert. Tatsächlich wurde die Syntax VB] entwickelt, um solche Situationen explizit zu verhindern.

"Unbeholfen, hässlich ... und schwer zu lesen" sind alle Qualifikationsmerkmale, die für fast alle Sprachen verwendet werden können, mit denen Sie nicht vertraut sind. Einfach ausgedrückt: Die Hässlichkeit ist eine direkte Folge Ihrer Unkenntnis der Sprache.

Eine Sprache gut zu kennen bedeutet, Muster im Code zu erkennen. Gut geschriebener Code wird durch Übung elegant erscheinen, während schlechter (langsamer, fehleranfälliger) Code hässlich erscheint. So einfach ist das.


Eine letzte Bemerkung: Die von Ihnen zitierten Artikel enthalten mehrere Ungenauigkeiten und veraltete Informationen. Als einzige Rechtfertigung für eine sehr subjektive und emotionale Diskussion sind sie nicht sehr gut geeignet.

27
Konrad Rudolph

Visual Basic erscheint mir ungeschickt, hässlich, fehleranfällig und schwer zu lesen.

Englisch erscheint mir ungeschickt, hässlich, fehleranfällig und schwer zu lesen, insbesondere von Menschen, die eine schlechte Grammatik, eine schlechte Rechtschreibung, eine rücksichtslose Missachtung der Groß- und Kleinschreibung und Zeichensetzung haben und keine Ahnung haben, wie sie ihre Gedanken räumlich und mental organisieren sollen.

Es ist nicht nur so, dass Visual Basic aufgrund der Syntax der Sprache schwer zu lesen oder ungeschickt ist, sondern es ist normalerweise so, weil der Programmierer nicht wirklich gut darin ist, seine eigenen Gedanken auszudrücken:

If blah = 10 Then If stuff = "foo" Then t = 1 + k: s = 42: dostuff21

Richtig, das ist schrecklich. Aber es ist auch nicht besonders schwierig, schrecklichen Code in anderen Sprachen zu schreiben. Bei korrekter Schreibweise wäre es sehr sinnvoll, selbst wenn der Code in VB geschrieben wäre:

If SelectedType = 10 And UserName = "Foo" Then
    CurrentUsers = CurrentUsers + 1
    UserConnectionID = 42
    PerformUserOperation
End If

Zumindest ist das lesbarer und verständlicher. Es ist immer noch BASIC. Es kommt wirklich auf die Fähigkeit des Programmierers an, seine Absichten klar auszudrücken, indem er Code auf leicht lesbare Weise formatiert, gut benannte Bezeichner verwendet und darauf achtet, verständlichen Code zu schreiben.

Das heißt, ich habe Visual Basic seit den VB3-Tagen nicht viel berührt (daher das Beispiel mit "alter" Syntax), aber nur weil eine Sprache missbraucht werden kann, heißt das nicht, dass sie nicht richtig verwendet werden kann, um ziemlich robusten Code zu schreiben . Sicher, es kann einige Mängel geben, aber Ansätze, um diese Probleme zu umgehen, zeigen auch die Fähigkeiten eines Programmierers gegenüber denen eines anderen.

(Wahlloses Sprühen On Error Resume Next ist ein nicht so guter Weg, um die Mängel des Fehlens von Ausnahmen in VB in den Tagen vor .NET) zu umgehen.)

15
coobird

Der größte Teil Ihrer Argumentation gegen VB gilt nur für VB-Classic (zweiter Link) oder basiert auf schwachen oder veralteten Argumenten

  • Selbst in VBC werden Sie GoSub nicht verwenden ... Return etc.
  • Was ist los mit static? C++ unterstützt dies ebenfalls.
  • VB10 führt die implizite Zeilenfortsetzung ein (Sie benötigen nicht einmal redundante Semikola wie C #).
  • Die verschiedenen Cast-Funktionen sind auch in C++ und C # vorhanden. C # 's (object)(expr) - Cast-Syntax und object as type Sind noch verwirrender und inkonsistenter.
  • Was ist schlecht an with? Sie können verschachtelte Baumstrukturen auf sehr intuitive Weise erstellen, was in C # nicht möglich ist.
  • Ereignisbehandlung in VB ist viel eleganter als in C #. Sie können Ereignisse mit einem einzigen Schlüsselwort (WithEvents) einführen und behandeln, ohne Delegaten, Ereignisbehandlungsprogramme usw. Initialisieren zu müssen Dies macht die GUI-Programmierung in VB viel komfortabler und Sie müssen keinen Ereigniscode durch den Designer generieren. -).
  • Optionale Parameter werden in das neue C # eingeführt - daher scheinen sie gut zu sein.
  • VB.NET hat sowohl strenge als auch Shortcut-Boolesche Operatoren.
  • Sie do prüfen beim Kompilieren auf Syntaxfehler, es sei denn, Sie führen VB wie eine Skriptsprache aus).
  • End If ist hilfreicher als nur }. Bei komplexen syntaktischen Strukturen sind alle geschweiften Klammern nur verwirrend, während ein konkretes End ... Ihnen hilft, festzustellen, welcher Block nicht geschlossen wurde.
  • XML-Literale - Das XML-Skript ist jetzt Teil des Codes und wird von Intellisense vollständig unterstützt.

Insgesamt gibt es neben der Syntax nur wenige objektive Unterschiede zwischen VB.NET und C #. EG: GUI-Design ist in VB aufgrund eines besseren Ereignissystems und eines besseren IDE) viel effizienter, während z. B. Algorithmen in C # besser ausgedrückt werden können, weil die Die Syntax ist prägnanter.

Der Rest ist nur eine Frage Ihres persönlichen Stils. C-Style-Programmierer fühlen sich mit C # wohl, VB (oder vielleicht Pascal?) - Style-Programmierer verwenden VB.

Die wortbasierte, explizitere VB-Syntax ist für Anfänger möglicherweise leichter zu lesen als alle Symbole in C. Vergleiche:

If (a < 15) Xor (b = 2) And Not Condition Then

zu

if ((a < 15) ^ (b == 2) && !Condition())

Dies bedeutet nicht, dass eine Sprache besser ist als eine andere.

Bearbeiten: -----------------------------------------

Zum Argument VB wäre fehleranfällig. Wenn Sie Option Strict On Verwenden, ist es so streng wie C #, erlaubt uns aber nicht, solche Fehler zu machen:

// VB would initialize with zero (C/C++ doesn't)
int countZeros;
// No confusion with loop bounds with For x = 1 To Length
for (int i = 1; i <= length; i++) {
    // Never confusing == with = 
    if (data[i] = 0) 
        countZeros++;
}
13
Dario

In der Vergangenheit war die Entwicklungsumgebung VB) eine schnelle und effektive Methode zum Erstellen bestimmter Arten von Anwendungen (z. B. GUI-Apps). Dies führte dazu, dass sie eine sehr beliebte Wahl war. Ich denke VB war in seiner Blütezeit die am häufigsten verwendete Sprache (z. B. VB6).

Bei dieser Art von installierter Basis ist es nicht verwunderlich, dass noch viel Arbeit darin steckt.

12
dommer

Alles begann bevor C # existierte

Im Jahr 1999 hatten wir Visual Studio 5/6. Wenn Sie ein unabhängiger Softwareanbieter oder ein Unternehmen sind, das Windows verwendet, und eine Anwendung benötigen, die z. Verfolgen Sie die Zeit, die Mitarbeiter für Projekte aufgewendet haben. Sie hatten einige Möglichkeiten:

  1. Formulare in Visual Basic.
  2. MFC, ATL oder Win32 in Visual C++.
  3. Formulare in Access 97/2000.
  4. ASP-Website.
  5. Java-Applet.

Zu der Zeit waren wir kurz vor dem Platzen der Dot-Com-Blase, also ging jeder, der mit (4) oder (5) gut war, los, um Aktienoptionen bei jeder erstaunlichen Dot-Com auszuhandeln, von der er angezogen wurde.

(3) hatte Probleme mit dem Sperren und der allgemeinen Skalierbarkeit, aber ich sah viele Access-gesteuerte Lösungen, die Shell-out-Funktionen zum Ausführen von Supportfunktionen nach Bedarf bereitstellen würden.

So bleibt uns VB und VC++:

Der Formulareditor in VB war zu dieser Zeit hervorragend für die Produktivität geeignet. Sie konnten Ihre Komponenten per Drag & Drop verschieben - nicht nur Schaltflächen, Beschriftungen und Textfelder, sondern die vollständige Toolbox für wiederverwendbare OLE-Steuerelemente Komponenten wie clevere Grids, Excel-Tabellen oder IE Instanzen. Die Verkabelung erfolgte hinter den Kulissen - alles war objektähnlich und Sie haben nur auf Dinge doppelklickt, um Ereignishandler hinzuzufügen. Das war sehr In Visual C++ viel schwieriger. Als Mitglied des Visual Studio-Entwickler-Supportteams zu dieser Zeit kann ich mich daran erinnern, wie es bei Visual Basic-Supportaufrufen hauptsächlich darum ging, welche Komponente am besten zu verwenden war oder wie ihre Anwendung auf bestimmte Weise optimiert werden konnte Niemals 'Wie erstelle ich eine Anwendung mit Funktionen der X-, Y- und Z-Benutzeroberfläche?'.

Das Erstellen einer umfangreichen Benutzeroberfläche in Visual C++ war eine andere Herausforderung. Obwohl Dialogeditor und SDI/MDI-Formulare von Visual Editor unterstützt wurden, war dies ziemlich begrenzt. Die Unterstützung für das Einbetten von OLE Controls (ActiveX) in MFC oder Win32) war eine schwarze Kunst, obwohl sie in ATL etwas einfacher war. Das Verkabeln einfacher Dinge wie Größenänderungsereignisse oder Eigentümerzeichnung war ziemlich schmerzhaft allein die Verbindungspunkte, die für benutzerdefinierte Ereignisse in Komponenten erforderlich sind.

Ja, VC++ verfügte über Ausführungsgeschwindigkeit, Debug-Fähigkeit und flexible Frameworks/Bibliotheken/UI-Optionen, aber die Unterstützung von IDE konnte nicht all diesen Bereich abdecken, sodass die häufigsten Vorgänge mit Dingen wie Assistenten behandelt wurden , umfassende MFC-Klassenhierarchien und Supportlinien für 90 Tage/2 freie Vorfälle.

IIRC, der mit VB] gelieferte Anwendungspaketierer, könnte Ihre App, die VB Laufzeit- und die neuesten allgemeinen Steuerelement-DLLs) verpacken und Ihnen ein eigenständiges EXE-Installationsprogramm zur Verfügung stellen, das Sie verwenden könnte eine CD einlegen und zu Kunden gelangen. Nichts davon "Welche msvcrtXX.dll und mfcxx.dll haben Sie installiert?", was die MFC-Entwickler plagte.

Aus Gründen der Markteinführungszeit und der umfangreichen Benutzeroberfläche hat VB eine sehr große Anhängerschaft.

Als Visual J ++ und Visual Interdev in VS6 eintrafen, war klar, dass Visual Basic IDE] einen Kampf um Visual C++ gewonnen hatte, was meiner Meinung nach fair war. Es war überhaupt keine Überraschung, dass Visual Studio .NET hatte einen VB-ähnlichen Formulareditor für die neue [~ # ~] coole [~ # ~] C # -Sprache.

Die neue Java/C/C++ - ähnliche Sprache in Verbindung mit dem UI-Designer, den VB Leute für all diese Zeit genossen haben), gab den C++ - Leuten, die jetzt mit MFC/ATL/fertig waren, einen neuen Migrationspfad. Win32. Für die VB 3/4/5/6 Leute, die den Mangel an 100% Abwärtskompatibilität in VB.net nicht mochten, bot dies die Möglichkeit, eine neue Sprache in a zu lernen vertraute Umgebung.


Die Gründe, warum VB ein so umfassendes Produkt war, haben wahrscheinlich etwas mit den Ursprüngen von Microsoft zu tun, wobei Basic ihr Flaggschiff unter den Entwicklern ist, aber ich weiß nicht ' Derzeit gibt es keine Zitate.

7
JBRWilkinson

Wie hässlich eine bestimmte Sprache auch sein mag, die Gründe für das Festhalten an ihr sind in der Regel: Es ist sehr teuer, eine riesige Codebasis zu verschrotten, und die Tatsache, dass die Entwickler die Sprache bereits kennen, macht die Verwendung billiger als andere Sprachen.

6
Brian Rasmussen

VB.NET ist leichter zu lernen, Sie haben Recht, und meiner Meinung nach ist es insgesamt einfacher als C #. Es ist der erste Punkt, warum VB so beliebt ist. Ein weiterer und der größte Punkt, denke ich, ist, dass es eine große Anzahl von Entwicklern gibt, die mit VB 6 und älteren Versionen dieser Sprache gearbeitet haben, und dass es für sie einfacher ist, Anwendungen mit VB.net zu entwickeln als eine neue Sprache lernen.

6
iburlakov

Wie andere bereits gesagt haben, hängt Ihre ästhetische Beurteilung der Sprachsyntax stark von dem ab, was Sie zuvor wussten. Seit mehr als einem Jahrzehnt scheint es sich um einen C-ähnlichen Wettbewerb zu handeln, mit geschweiften Klammern für "Blöcke", "->" für Indirektion (Perl, PHP), Klammern für Funktionsaufrufargumente, // für Kommentare und ein Semikolon an jedem Zeilenende. Einige Leute dachten sogar, dass man dank dieser einzigartigen Pensée, wenn man eine Sprache kennt, sie alle kennt, was in der Tat lächerlich ist. Dies brachte jedoch die Idee unter C++/Java-Leuten hervor, dass dies die einzig richtige Syntaxästhetik ist und alles andere versucht, COBOL zu klonen.

Vor ein paar Jahren wechselte ich zu Ruby und jetzt zu Python, und ich kann keine hässlichen Semikolons, geschweiften Klammern und andere bedeutungslose Zeichen mehr ausstehen. Der Quellcode soll von Menschen gelesen werden. Als ich Visual Studio ausprobierte, entschied ich mich für VB über C #. Ich vermute, dass einige Programmierer C # gewählt haben, um mit seiner Java-ähnlichen Syntax "ernst" auszusehen, aber komm schon Die gleichen Funktionen gibt es ... gönnen Sie Ihren Augen eine Pause.

6
vincent

Wenn Sie über .NET sprechen, gibt es eine wirklich einfache, die mir einfällt:

Der VB.NET-Editor in Visual Studio kann Syntaxfehler viel besser erkennen als der von C #.

Während der Editor von C # in VS2008 SP1 eine enorme Verbesserung erfahren hat, gibt es immer noch einige Syntaxfehler, die der Editor erst erkennt, wenn Sie versuchen, das Programm zu kompilieren.

4
Powerlord

Ein Großteil der Popularität von VB] entstand in einer Zeit, in der die Werkzeuge von VB viel benutzerfreundlicher waren als andere verfügbare Sprachen. Der "Klassiker" VB bot eine einfache Möglichkeit, Windows zu erstellen Anwendungen, ohne die Eingeweide der Win32-API kennen zu müssen oder sich um die manuelle Speicherverwaltung zu kümmern. Die Eintrittsbarriere für Programmieranfänger war mit VB als C++) viel geringer, daher haben sich viele Leute die Zähne geschnitten mit VB.

Heutzutage denke ich, dass VB ein Vorteil gegenüber C # die Vertrautheit für diejenigen ist, die im Laufe der Jahre mit VB] gearbeitet haben. Ein weiterer Vorteil ist, dass VB Code ist leicht zu lesen, da die Tendenz besteht, Schlüsselwörter anstelle von Interpunktionssymbolen zu verwenden. Als jemand, der in VB, Java, C, C # und Python arbeitet, finde ich VB = ist die einfachste Sprache, in die man zurückspringen kann, wenn man Code überprüft, den ich vor Jahren geschrieben habe. Die Syntax ist ausführlicher, was das Lesen von Code oft erleichtert, und Visual Studio hat die Formatierung immer hervorragend durchgeführt VB Code zum Bereinigen der Formatierung während der Eingabe, sodass der Code konsistent formatiert wird (unabhängig von der Schlamperei des Autors).

Als Randnotiz finde ich, dass Python aus ähnlichen Gründen extrem einfach zu lesen und zu überprüfen ist. In Python wird die Formatierung des Codes vom Interpreter und nicht von der IDE erzwungen, sondern vom Endergebnis ist das gleiche. Python bevorzugt auch Schlüsselwörter für die Interpunktion, wenn auch wohl weniger als VB.

4
gbc

Um ein paar zu nennen:

  • benutzerfreundlichkeit
  • bekannter Name (Basic war eine der ersten populären Computerprogrammiersprachen)
  • unterschätzen Sie nicht das Microsoft-Marketing
3
Toon Krijthe

Es ist schwer zu argumentieren, dass es mehr oder weniger "fehleranfällig" ist als jede andere Sprache. Ich bezweifle auch den Punkt bezüglich der "überwiegenden Mehrheit des kommerziellen MS-Webs"; Nach allem, was ich gesehen habe, übernimmt C # bei weitem die Führung für die .NET-Entwicklung (wobei .NET das Flaggschiff im MS-Stack für Dinge ist, die keine Gerätetreiber usw. sind).

3
Marc Gravell

VB ist sehr ausführlich und leicht zu gewöhnen im Vergleich zu C #, bei dem zwischen Groß- und Kleinschreibung unterschieden wird. Für einen unerfahrenen Programmierer ist dies der beste Ausgangspunkt.

3
chugh97

Ein Vorteil von VB.NET gegenüber C # (der mit C # 4 verschwindet) sind Standard- und benannte Parameter, was bei der Verwendung von VSTO sehr hilfreich ist.

3

VB/VB.NET gehört zur Kategorie RAD (Rapid Application Development)). Sie können Anwendungen mit nur Drag-Drop-Steuerelementen aus der Toolbox und weniger Code entwickeln.

3
NinethSense

Nun, ich denke, Sie müssen zwischen klassischem VB und VB.NET) unterscheiden.

Ich denke, dass VB.NET nicht sehr beliebt ist, aber Visual Basic "Classic" ist immer noch1. Der Grund dafür ist, dass es SEHR einfach ist, eine Windows-App zu erstellen. Vergleichen Sie dies mit einer Windows-App in C++/Mfc, die zu diesem Zeitpunkt fast die einzige Alternative war.

Aus dem gleichen Grund war Delphi einst sehr beliebt.

3
PhpFlashGuy

Ich denke, ein Teil des Grundes ist, dass alte Asp-Programmierer, die wie ich in .NET gehen, mit VB bereits sehr vertraut sind, weil VB Skript die Sprache ASP ist. Klassiker zum größten Teil verwendet. Ich fand es weniger zeitaufwändig, in VB in .NET zu schreiben, weil ich bereits wusste, wie man VB spricht. VB ist auch weniger ein Heulsuse als C #. Ich kann in beiden lesen/schreiben, aber ich bevorzuge VB, weil es einfach ist, Freunde zu finden, wenn Sie ein neuer Programmierer sind.

3
Eric

Ich arbeite in einer Umgebung, in der wir beide verwenden. Wir haben zugunsten von classic ASP und VB) auf C # umgestellt. Meiner Meinung nach gibt es keine Deal Breaker zwischen den Sprachen. Bei den meisten Projekten können Sie mit beiden Sprachen die gleiche Arbeit leisten. Jetzt mache ich das Teilen Sie Ihre Meinung zu fehleranfällig und ich finde auch VB unübersichtlich (ohne Grund).

Wie andere bereits erwähnt haben, ist VB sehr einfach und historisch gesehen konnte man Projekte sehr schnell erstellen. Dies lebte in der Webentwicklung (die schnell entwickelt wird) weiter, aber ich denke, wenn die Leute erkennen, dass C # gerecht ist VB wird ausgeblendet. Ein weiterer Grund, warum es ausgeblendet wird, ist, dass alles andere, was Sie beim Erstellen von Webanwendungen codieren (CSS, JavaScript), eher wie C # als wie VB aussieht Es ist sinnvoll, C # auch für Anfänger zu verwenden.

2
miccet

Ich persönlich mag die Art und Weise, wie Ereignisse in vb.net mit dem Schlüsselwort 'handle' angehängt werden ... Das IDE/Visual Studio/reagiert auch schneller auf VB und behandelt automatisch die meisten End-ifs und dergleichen ... C # ist natürlich viel konsistenter und sauberer (IMHO, ich habe ziemlich viel mit beiden gearbeitet)

2
Petar Kabashki

Ab dem 4.0-Framework gibt es nur eine kleine Handvoll Dinge VB fehlt im Vergleich zu C #, und das Gegenteil ist auch der Fall. Nämlich:

  1. Das Bemerkenswerteste ist, dass VB.NET nicht das Schlüsselwort Yield hat, aber es wird bald mit dem neuen asynchronen Framework zu VB.NET kommen.
  2. Es gibt kein unsafe Schlüsselwort. Ich habe es nie für notwendig gehalten, aber es gibt sicherlich einige Leute, die es haben.
  3. Es gibt keine mehrzeiligen Zeichenfolgen. Mehrzeilige Zeichenfolgen werden mithilfe von + (oder den älteren &) Operatoren über Zeilen hinweg ausgeführt. Sie können auch mithilfe der XML-Literal-Syntax ausgeführt werden: Dim s = <s>My string... multiple lines...</s>.Value. Es ist nicht schön, aber wenn Sie nicht wählerisch sind und wirklich mehrzeilige Zeichenfolgen möchten, funktioniert es. Und Sie können damit eine String-Interpolation mit der Syntax <%= myVar %> Durchführen, die Nizza ist.
  4. Es gibt kein Äquivalent mit variablem Gültigkeitsbereich von dynamic. Dynamische Variablen gibt es in VB schon lange mit Option Compare Off), Aber das hat einen Dateibereich, daher ist es nicht so gut wie dynamic, weil dynamic beschränkt den Gültigkeitsbereich nur auf die so deklarierte Variable.
  5. VB fehlt eine knappe Lambda-Syntax. Lambdas sind da, aber Sie müssen Function(x) oder Sub(x) verwenden.

Einige Funktionen von VB.NET, die C # nicht bietet:

  1. XML-Literale, die für alle möglichen Dinge nützlich sind, nicht nur für XML.
  2. Groß- und Kleinschreibung in einer Sprache ist das Miau der Katze. Nicht viele andere Sprachen erlauben dies, aber was für einen Unterschied es in der Geschwindigkeit der Codierung macht, wenn Sie beim Tippen niemals die Umschalttaste drücken müssen und Ihr Code nur automatisch so formatiert wird, wie Sie es möchten.
  3. Die häufig unnötige Select -Klausel kann in Linq-Abfragen weggelassen werden.
  4. Das Schlüsselwort Nothing ist viel nützlicher als null, da alles (auch Werttypen) auf Nothing gesetzt werden kann und Sie die Standardeinstellung erhalten. Das Schlüsselwort default ist nicht erforderlich.
  5. VB.NET wird ständig in Visual Studio kompiliert, sodass Sie sofort Fehler sehen. Kein Drücken von STRG-UMSCHALT-B den ganzen Tag wie in C #.

Mein Shop macht MVC3 mit Razor unter Verwendung von VB.NET und sobald Sie die (meist unbegründeten) Vorurteile überwunden haben, ist es tatsächlich eine sehr nette Sprache. Es ist nicht wirklich ausführlicher als C #, wie viele behaupten (außer im Fall von Lambdas), und es ist ziemlich praktisch Feature-für-Feature parallel zu C #. Ich habe festgestellt, dass die meisten Leute, die Hasser sind, im modernen VB.NET für längere Zeit nicht wirklich codiert haben.

2
mattmc3