"Der ewige Krieg" - VB.NET oder C#

  • VB.NET
  • .NET (FX) 4.0

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Nikx.

    "Der ewige Krieg" - VB.NET oder C#

    Hallo Leute,

    ich finde natürlich zu VB.NET oder C# mehr als genug Einträge.
    Allerdings wollte ich euch mal zu eurer Meinung hierzu fragen.

    Bitte sachlich an die Sache rangehen ^^


    ---
    Wieso ich VB.NET gewählt habe;
    • Ich mag das ich hier nicht case sensitive arbeiten muss.
    • keine Semikolons am Ende der Zeile ^^
    • Visual Studio reagiert (meiner Meinung nach) schneller mit VB -- korrigiert mich mit euren Erfahrungen! (Vielleicht muss ich ja ein paar Anpassungen an der IDE machen.)

    Ich habe halt immer mehr das Gefühl das ich zu C# wechseln sollte... Aufgrund div. Schnittstellen die angeboten werden...
    Würde mir gerne die Bestätigung von euch holen bei VB.NET zu bleiben.
    Option Strict On!
    C# ist restriktiver als VB.NET, das gefällt mir.
    Große Projekte in C#, Snippets und Testprogramme in VB.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Drahuverar schrieb:

    Ich mag das ich hier nicht case sensitive arbeiten muss
    Wobei ich auch in VB.Net letztendlich keine gemischte Schreibweise produziere, aber das wird von der IDE ja sogar forciert.

    Drahuverar schrieb:

    Aufgrund div. Schnittstellen die angeboten werden
    Das dürfte eigentlich kein Thema sein, die kannst du in beiden Sprachen gleich gut einbinden.
    Allenfalls die Anzahl der im Internet zu findenden Snippets dürfte bei C# höher sein.

    Mein Grund für häufige VB.Net-Entwicklungen liegt an der Tatsache, dass ich viel für Anwender programmiere, die aus der VBA-Welt kommen und deshalb die Syntax besser lesen können.
    Oder zumindest haben sie das Gefühl.

    Wenn ich allerdings größere Projekte im Team abwickle, ist C# die geforderte Basis.

    Letztendlich sind beide Sprachen nicht so weit auseinander.
    Wichtig ist das Verständnis für OOP und die Kenntnis des Frameworks.

    Früher konnte ich zwischen beiden Sprachen ad hoc umschalten.
    Heute tappe ich auf Grund meiner häufig VB-lastigen Projekte doch öfters mal in diverse Syntax-Fallen, wenn ich in C# unterwegs bin.
    Ist ja bei den heutigen IDEs kein Thema, aber momentan bin ich effizienter in VB.Net.

    RodFromGermany schrieb:

    Große Projekte in C#, Snippets und Testprogramme in VB.
    Ja, so kann man es zusammen fassen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    RodFromGermany schrieb:

    C# ist restriktiver als VB.NET, das gefällt mir.
    Jo, nicht nur dir :thumbup:
    Außerdem finde ich persönlich den C#-Quellcode eines Programmes übersichtlicher als den VB-Code und an die Semikola gewöhnt man sich. Am Anfang vergisst man sie vielleicht, aber sie prägen sie mit der Zeit in einen ein, wie der Punkt am Ende eines Satzes.
    Mit C# entfällt es schon mal sich um die sogenannten Deppen-einstellungen kümmern zu müssen. C# hat mangels wirklicher Kenntnisse bei den Entscheidern (Auftraggebern etc.) einfach einen besseren Ruf, alles was nach "Basic" klingt ist halt nach wie vor verpönt, bzw. es wird Deine Qualifikation angezweifelt, obwohls halt Humbug ist.
    Ein echter Fakt für mich: Es gibt viel mehr und bessere Quellen und Beispiele zu C# als zu VB.Net. Bei den VB.Net Beispielen kommt hinzu, dass dort viele Uralt-Codes mit herumgeistern, die man mit Deppeneinstellungen nicht mal bemerkt.
    stimme meinem direkten Vorredner zu.
    Nur hoffe ich, dass du über das Vb-ler-Deppenstadium eh hinaus bist. Ich hab übrigens auch den Eindruck, dass der Background-Compiler von Vb ein bischen besser arbeitet. Deutlich besser ist der ObjectBrowser. von VB.
    Andererseits wiederum hat c#6 wieder ein paar kleine hübsche Features gekriegt, auf die vb wohl noch bischen wird warten müssen - insbesondere die sog. "String-Interpolation" gefällt mir gutt.

    Aber alles nix, um sich ein Bein für auszureissen.

    Dennoch bleibt neuerdings auch bei mir beim Abwägen eine kleine Neigung hin zu c# übrig, weil mittm OB kann man sich behelfen, indem man ein vb-Projekt öffnet, und da den OB benutzt - bisserl umständlicher, aber geht.
    Ansonsten hat vb noch die Xml-Achseneigenschaften als Vorzug, aber das wars dann auch. Alle weiteren Vorzüge liegen bei c# - ist zwar insgesamt nicht wirklich viel, aber weg-reden will ichs auch net.
    Einziger Vorteil von VB mMn ist Handles - das macht das Abonnieren von Events schon übersichtlicher. In C# hingegen hast du gewisse zusätzliche Features (braucht jedoch nicht jeder), eine Syntax, welche ähnlich wie viele andere weit verbreitete Sprachen ist und bist von vornherein dazu gezwungen, "Option Strict On" etc. zu nutzen. Außerdem ist C# viel weiter verbreitet, sodass man mehr & bessere Beispiele findet.
    Ich wuerde sagen die Sprache, mit der du am effektivten arbeitest, ist fuer dich die richtige Wahl. Klar bietet C# ein wenig mehr, wenn du genau diese Dinge benoetigst, kanst du dann auch damit was brauen.

    Mit dem Semikolon zum Zeilenabschluss, selbst da gibt es eine kleine abhilfe, mich stoerte immer nur das "shiften", mit dem richtigen Tastaturlayout geht das wie von allein. Ich nutze eine UK-Qwerty(@ beim ä), auch fein zu nutzen mit eckigen und geschweiften Klammern. Bei Sprachen mit C Syntax laesst sich damit generell echt gut hantieren. Aber auch ein Manko, es sind keineTasten fuer Umlaute da.
    Bilder
    • IMG_20151205_005724.jpg

      1,01 MB, 3.584×2.016, 117 mal angesehen
    And i think to myself... what a wonderfuL World!
    Danke für eure Antworten/Meinungen hierzu. :)

    RodFromGermany schrieb:

    restriktiver

    In wie fern meinst du das- beziehst du das nun auf die Assoziation oder ist C# "eingeschränkt"?

    ichduersie schrieb:

    C#-Quellcode eines Programmes übersichtlicher

    Bei mir ist es genau umgekehrt.. Schaue ich mir einen VB.NET Code an komme ich schneller zurecht als mit einem C# Code, ich denke das wird sich mit bzw. nach der Zeit ändern.

    petaod schrieb:

    Wenn ich allerdings größere Projekte im Team abwickle, ist C# die geforderte Basis.

    Das u.a. ist mir auch schon aufgefallen.. Viele 'große Programme' sind in C# geschrieben.. Bisher hatte ich noch nicht das Vergnügen in einem Team zu entwickeln..

    Dksksm schrieb:

    Es gibt viel mehr und bessere Quellen und Beispiele zu C# als zu VB.Net

    Kann ich auch nur bestätigen. Wenn ich bei der Suche nichts unter VB.NET finde, suche ich mittlerweile nach C# -> konvertiere das zu VB.NET und kann es meist nutzen... Eben weil die Community (anscheinend) größer ist.

    ErfinderDesRades schrieb:

    Vb-ler-Deppenstadium eh hinaus bist.
    Ich hab übrigens auch den Eindruck, dass der Background-Compiler von Vb ein bischen besser arbeitet.

    Als ich die Woche 1-2 Programme in C# schrieben wollte (zu Übungszwecken) ist mir das extremst aufgefallen. Vielleicht bin ich auch einfach zu ungeduldig gewesen, aber als ich die Anwendung kompiliert habe hat es meistens geknallt, eben weil z.B. ein Semikolon gefehlt hat oder weil die Variable falsch niedergeschrieben war. :|

    nafets schrieb:

    eine Syntax, welche ähnlich wie viele

    Ja, darin sehe ich eigentlich momentan die Stärke, auch wenn mich, wie gesagt, die Semikolons ja ärgern. :D
    Unter anderem muss ich mit JavaScript arbeiten (seit neuestem auch C++ <X ) und da gibt es sehr viele Ähnlichkeiten...

    Eddy schrieb:

    effektivten arbeitest, ist fuer dich die richtige Wahl

    Ja, ich komme mittlerweile echt gut zurecht mit VB. Natürlich bin ich immer noch am lernen, gibt ja sehr viel :thumbsup:
    Das mit dem Tastaturlayout ist eigentlich eine ganz witzige Sache :D

    Ich hoffe, dass die ganzen Zitate meinen Post nicht all zu schlimm aussehen lassen :D
    wollte aber auf "alles" eingehen.
    Sich mit C# auseinander zu setzen bleibt wohl nicht aus, auf Dauer, denke ich mal.
    Option Strict On!

    Drahuverar schrieb:

    C#
    Ich muss mich um alles selbst kümmern, weniger Haken in den Projekteigenschaften.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    mox schrieb:

    im Grunde genommen sind beide Sprachen fast identisch.

    Im Grunde genommen sind sie eher komplett verschieden, wenn man das Framework dahinter mal weglässt.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    nö - auch vom Sprachkonzept her gleich: OOP, 1-dimensionale Vererbung, streng typisiert, Variablen, Delegaten, Events, Enumerationen, Referenz-/Wert-Typen, Interfaces, Namespaces, Gültigkeits-Bereiche, Option Infer,...
    Die meisten Schlüsselworte kannste sogar 1:1 in die andere Sprache übersetzen.

    Also die Sprachen sind wirklich fast identisch, und dass sie auch noch auf demselben Framework arbeiten macht das natürlich total zu eine Sosse.

    Um zur Abwechslung 2 andere Sprachen auf demselben Framework zu nennen: Xaml, F#
    Nach der Definition wäre auch Deutsch und Englisch fast das selbe.
    Das Konzept und die Umsetzung hinter der Sprache sind samt Framework identisch, sie haben mit Roslyn auch den identischen Kompiler-Unterbau. Die Sprache ist aber aus meiner Sicht zumindest nicht identisch, ähneln sich auf Grund der Struktur aber sher stark. Ich gehe ja im Grunde mit ERD und mox konform, weil och denke ich weiß wie's gemeint ist.
    Ich habe mit VB, dann VB.Net angefangen und wenn überhaupt dann war für mich C# nur ein paar Tage lang "ungewohnt" als ich damit vor 2 Jahren anfing zu entwickeln.
    Ich nutze dieses Forum gerne, egal ob VB oder C#, die Ideen und Beispiele lassen sich in beiden Sprachen gleich gut und meist ohne Hürden umsetzen.

    Dksksm schrieb:

    Nach der Definition wäre auch Deutsch und Englisch fast das selbe.
    Ja, so ähnlich kann mans auch sagen. Gibt ja iwie sprachwissenschaftliche Untersuchungen, welche Menschensprachen miteinander verwandt sind, und wie.
    Eine stärker verschiedene Sprache wäre etwa Innuit oder Navaho.

    Allerdings weisen Menschensprachen insgesamt nur sehr geringe konzeptionelle Unterschiedlichkeiten auf, verglichen mit dem, was bei Computersprachen an konzeptioneller Vielfalt existiert.
    Also ich benutz vb immer wenn ich was schnell brauch, wo es mir nicht um sauberkeit oder schönheit des codes geht, aber wenn ich wieder mal eine kleine herausforderung brauch und schönen/hüpschen code schreiben will, nehm ich c#, weil der syntax ein (meiner meinung nach) viel schönerer ist :D
    Mfg
    Wer Rechtschreibfehler findet darf sie behalten :)

    RodFromGermany schrieb:

    alles selbst kümmern

    Okay, verstehe. Gerade deswegen hätte ich gedacht ist das bei VB viel besser mit Visual Studio (bis auf die Deppen-Einstellung ^^ ). Aber anscheinend birgt das Gefahren mit sich.

    ---
    Zur Schönheit des Codes;
    Wie definiert ihr das denn, also was ist in euren Augen schöner an einem C# Code?
    Die geschweiften Klammern? :P
    Generell die Klammern? ;)
    Hier 2 Codes die beide das gleiche bewirken anhand des MSDN Beispiels zu der StreamReader-Klasse.

    StreamReader C# Code

    C#-Quellcode

    1. using System;
    2. using System.IO;
    3. class Test
    4. {
    5. public static void Main()
    6. {
    7. try
    8. {
    9. // Create an instance of StreamReader to read from a file.
    10. // The using statement also closes the StreamReader.
    11. using (StreamReader sr = new StreamReader("TestFile.txt"))
    12. {
    13. string line;
    14. // Read and display lines from the file until the end of
    15. // the file is reached.
    16. while ((line = sr.ReadLine()) != null)
    17. {
    18. Console.WriteLine(line);
    19. }
    20. }
    21. }
    22. catch (Exception e)
    23. {
    24. // Let the user know what went wrong.
    25. Console.WriteLine("The file could not be read:");
    26. Console.WriteLine(e.Message);
    27. }
    28. }
    29. }


    StreamReader VB Code

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.IO
    3. Class Test
    4. Public Shared Sub Main()
    5. Try
    6. ' Create an instance of StreamReader to read from a file.
    7. Dim sr As StreamReader = New StreamReader("TestFile.txt")
    8. Dim line As String
    9. ' Read and display the lines from the file until the end
    10. ' of the file is reached.
    11. Do
    12. line = sr.ReadLine()
    13. Console.WriteLine(Line)
    14. Loop Until line Is Nothing
    15. sr.Close()
    16. Catch E As Exception
    17. ' Let the user know what went wrong.
    18. Console.WriteLine("The file could not be read:")
    19. Console.WriteLine(E.Message)
    20. End Try
    21. End Sub
    22. End Class


    An diesem Beispiel fällt mir z.B. auf das bei dem VB Beispiel kein Using genutzt wird.. Was den Code wieder länger aussehen lässt.
    Option Strict On!

    Drahuverar schrieb:

    Klammern
    Das Studio bietet die Möglichkeit, von einer Klammer zur kommunizierenden anderen Klammer zu navigieren: Ctrl + ´, dies funktioniert bei If-End If usw. von VB leider nicht.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Drahuverar: Wie Du selbst schon bemerkt hast, ist das kein identischer Code, den Using-Blöcke kann VB auch und man sollte, wo immer es möglich ist (iDisposable) sie auch verwenden.
    try - catch ist auch ein heisses Eisen und kostet zudem erhebliche Ressourcen, sollte man wo man es sich erlauben kann auch vermeiden. Durch einen zentralen Exception-Handler z.B.

    Hat aber eigentlich nichts mehr mit dem Thema an sich zu tun.

    Man kann auch nicht sagen, das die Programmstruktur in C# immer schöner (strukturiert) aussieht. Select Case ist nur in VB "schön". In C# verwende ich dann doch lieber if, else if, else Konstrukte.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dksksm“ ()