Spieleprogrammierung: Warum sind alle gegen VB.NET?



  • Moin,

    Ich möchte demnächst mal mit einfacher Spieleprogrammierung in VB.NET anfangen (erstmal 2D, dann später vllt 3D). Aber egal wo ich mal um ein paar Tipps und Ratschläge frage, wird mir von VB.NET abgeraten. Ich solle doch lieber C++ oder C# nehmen.

    Warum ist das so?

    Ok, C++ ist wohl mit die schnellste Sprache, aber VB.NET ist doch auch nicht zu langsam für einfache Spiele oder? (Wo würde es denn z.B. bei VB.NET anfangen zu ruckeln!?) Was ich gar nicht verstehen kann, warum mir einige eher zu C# raten. C# ist doch eigentlich genauso schnell wie VB.NET, nur die Syntax ist anders. Und XNA funktioniert ja auch für VB.NET. (Und es gibt ja auch andere Engines für VB.NET wie z.B. Irrlicht)

    Würdet ihr mir auch von VB.NET abraten?



  • Lolomat schrieb:

    aber VB.NET ist doch auch nicht zu langsam für einfache Spiele oder?

    Im Grunde ist VB.Net genauso schnell wie C# (für XNA, WPF, Silverlight & Managed DirectX), da beide auf dem .Net Framework basieren. Denn alle .Net Sprachen (C++/CLI [nicht verwechseln mit dem "orignalen" C oder C++], C#, Visual Basic .Net, J#, F# ...) wird in IL-Compiliert, der erst ausgefürht wird. Somit ist es in .Net (fast) egal in welcher Sprache man scheitert :p

    Lolomat schrieb:

    Was ich gar nicht verstehen kann, warum mir einige eher zu C# raten.

    Um ehrlich zu sein, der Grund ist primär subjektiv: Wir hassen Visual Basic 🕶

    Lolomat schrieb:

    (Und es gibt ja auch andere Engines für VB.NET wie z.B. Irrlicht)

    Nein nur für .Net bzw. alle .Net Sprachen. (siehe oben)

    Lolomat schrieb:

    Würdet ihr mir auch von VB.NET abraten?

    Ja (siehe oben)

    P.S.: Andere Poster (unter mir) werden dann ihren ablehnden subjetiven Eindruck versuchen unter einigen Arugmenten (á la "doofe Syntax" ...) verstecken.



  • Eigentlich ist die sprache egal, ich würde mit C# anfangen. Aber wenn du VB schon kennst kannst du es ja auch mal damit probieren. Ich bin mir halt nur nicht sicher in wie fern XNA VB unterstützt, die Beispiele und so sind glaub ich alle in C#, ich denke mal wenn du in C# programmierst wird man dir dann eher helfen können.



  • Sieh das ganze von ner anderen Seite, vieles was sich mit Spieleprogrammierung befasst wird als Beispiel in C++ gezeigt, etliche Bücher basierend arauf. Dadurch ist es natürlich leichter wenn man C++ nutzt und was sucht auch etwas zu finden, deswegen würde ich dir auch zu C++ raten.



  • C# ist doch eigentlich genauso schnell wie VB.NET, nur die Syntax ist anders

    Genau. Bloss die Syntax von VB .NET ist echt grausam!
    C# mag am Anfang etwas ungewohnt und kompliziert aussehen, aber glaub mir, wenn du ein grösseres Projekt umsetzen willst ist VB .NET lange nicht so gut geeignet wie C#.

    Was C# vs. C++ angeht: du kannst mit beiden gut Spiele machen. Wobei C++ viel viel komplizierter ist. Ich würde dir nicht empfehlen C++ zu nehmen, wenn du halbwegs schnell zu einem Ergebnis kommen willst.

    p.S.: falls das nicht klar genug rübergekommen sein sollte

    Würdet ihr mir auch von VB.NET abraten?

    JA!



  • Also ich finde das Argument, dass VB.NET Syntax grausam ist, zieht nicht so richtig, weil das eine subjektive Meinung ist. Ich finde den VB.NET Code übersichtlicher als den vo C#, weil es een nicht zig {{{{}}}} (und da braucht jetzt auch niemand zu kontern, weil das mein eigenes Empfinden ist)



  • Lolomat schrieb:

    Also ich finde das Argument, dass VB.NET Syntax grausam ist, zieht nicht so richtig, weil das eine subjektive Meinung ist.

    Jenseits des persönlichen Geschmackes gibt es ja genügend syntaktische Inkonsistenzen; einige hat Verity Stob hier aufgelistet, wenngleich noch für VB Classic.



  • vb.net und speicher-adressierung find ich nervig...



  • audacia schrieb:

    wenngleich noch für VB Classic.

    ... was diese Auflistung fast komplett wertlos macht.



  • Lolomat schrieb:

    Also ich finde das Argument, dass VB.NET Syntax grausam ist, zieht nicht so richtig, weil das eine subjektive Meinung ist.

    ich auch nicht. eigentlich sollte es doch egal sein, ob C# oder VB, wenn man unter .NET programmiert. jeder nimmt das, was er lieber mag. aber ich hab' mal gehört, dass XNA nur in zusammenhang mit C# vom m$ supported wird (was immer mit support auch gemeint ist).
    🙂



  • Eigentlich kann man wunderbar C# Beispiele auf VB.NET und umgekehrt übertragen, wenn man eine gewisse Erfahrung in verschiedenen Sprachen gesammelt hat. Für den Anfang bist du aber definitiv mit der Sprache am besten bedient die die größte Nutzergemeinde hat und das wäre bei .NET dann ganz klar C#.



  • Tippgeber schrieb:

    Eigentlich kann man wunderbar C# Beispiele auf VB.NET und umgekehrt übertragen, wenn man eine gewisse Erfahrung in verschiedenen Sprachen gesammelt hat.

    Solange es einfache Beispiele sind, ja.
    Sobald mal "unsafe" und ähnliche C# Konstrukte vorkommen... -> vergiss es.

    @Lolomat:

    Also ich finde das Argument, dass VB.NET Syntax grausam ist, zieht nicht so richtig, weil das eine subjektive Meinung ist. Ich finde den VB.NET Code übersichtlicher als den vo C#, weil es een nicht zig {{{{}}}} (und da braucht jetzt auch niemand zu kontern, weil das mein eigenes Empfinden ist)

    Glaub was du willst. Ich habe bloss die Erfahrung gemacht, dass *keiner* auf Dauer mit VB glücklich wird.
    Ich persönlich finde es schonmal extrem lästig, dass die VB Syntax so "lang" ist. In C# muss man einfach weniger Tippen und vor allem weniger lesen. Auch führt die etwas umständliche Syntax von VB oft dazu, dass man sich gewisse Dinge einfach spart. Wie z.B. Dinge als Properties statt public Variablen zu implementieren.

    Und ein ganz wichtiger Punkt: C# verwendet eine Syntax die sehr ähnlich der von C, C++ und Java ist. Ein Programmierer der C, C++ oder Java kennt, wird sich also relativ schnell zurecht finden. Für private Ein-Mann-Projekte ist das natürlich weniger interessant. Trotzdem würde ich dir dazu raten die Sprache zu verwenden die in der Wirtschaft auch interessant ist, und das ist nunmal C#, und nicht VB .NET.



  • Lolomat schrieb:

    Was ich gar nicht verstehen kann, warum mir einige eher zu C# raten. C# ist doch eigentlich genauso schnell wie VB.NET, nur die Syntax ist anders.

    Das hast du gut erfasst. VB runtime wurde in .NET umbenannt und man hat dem compiler einen c-syntax-parser frontend verpasst.

    es gibt ein paar gruende weshalb man VB nicht mag:
    - image das von BASIC an sich als anfaengersprache gilt
    - werden keine faehigkeiten abverlangt speicher zu managen (oder erlaubt)
    - es gibt massig bibliotheken, aber oft scheitern die leute an den simpelsten dingen sofern die nicht in der bibliothek enthalten sind (z.b. enum->string conversion).

    Der wirkliche unterschied ist zwischen c# und VB image.
    das erste manko hat man bei c# (und java) weg bekommen durch einen c-artigen parser. die beiden letzteren als etwas positives verkauft und ein paar millionen marketing geld hingeblaettert, damit das die leute an der uni eingeimpft bekommen (macht sun auch).

    wenn du also mit VB programmieren willst, programmiere damit. es gibt kein wirklich objektives argument das c# oder VB ueber die andere sprache setzen wuerde. compiler, libs, optimierungen (und somit performance), compatibilitaet etc etc. ist gleich.



  • Ich frag mich woher dieser unterschied kommt:

    http://img44.imageshack.us/i/diffi.png/



  • Zeus schrieb:

    Ich frag mich woher dieser unterschied kommt:

    http://img44.imageshack.us/i/diffi.png/

    Das ist ganz einfach: Das My-Namespace, in jedem Visaul Basic Programm kommt ersteinmal My-Namespace mit einigen schönen Klassen, schau es dir in einem beliebeigen Reflector an.
    Siehe MSDN



  • Bashar schrieb:

    audacia schrieb:

    wenngleich noch für VB Classic.

    ... was diese Auflistung fast komplett wertlos macht.

    Mag sein. Was VB.NET angeht, bin ich nicht im Bilde. Ich kenne niemanden, der es benutzt.
    Und daß es sich bei der Auflistung um reine Polemik handelt, sollte ersichtlich sein 😃



  • Rhombicosidodecahedron schrieb:

    Zeus schrieb:

    Ich frag mich woher dieser unterschied kommt:

    http://img44.imageshack.us/i/diffi.png/

    Das ist ganz einfach: Das My-Namespace, in jedem Visaul Basic Programm kommt ersteinmal My-Namespace mit einigen schönen Klassen, schau es dir in einem beliebeigen Reflector an.
    Siehe MSDN

    Ops da hab ich etwas im IL DASM übersehen, danke für den Hinweis.



  • audacia schrieb:

    Bashar schrieb:

    audacia schrieb:

    wenngleich noch für VB Classic.

    ... was diese Auflistung fast komplett wertlos macht.

    Mag sein. Was VB.NET angeht, bin ich nicht im Bilde. Ich kenne niemanden, der es benutzt.
    Und daß es sich bei der Auflistung um reine Polemik handelt, sollte ersichtlich sein 😃

    Dank Leuten wie dir wir ist auch in Zukunft noch für Fehlinformation gesorgt 👍
    Wenn ihr wissentlich keine Ahnung habt von dem was ihr redet, wieso müsst ihr dann trotzdem auf "Absenden" klicken?



  • Dankender Leser schrieb:

    Wenn ihr wissentlich keine Ahnung habt von dem was ihr redet, wieso müsst ihr dann trotzdem auf "Absenden" klicken?

    audacia schrieb:

    Polemik



  • rapso schrieb:

    Lolomat schrieb:

    Was ich gar nicht verstehen kann, warum mir einige eher zu C# raten. C# ist doch eigentlich genauso schnell wie VB.NET, nur die Syntax ist anders.

    Das hast du gut erfasst. VB runtime wurde in .NET umbenannt und man hat dem compiler einen c-syntax-parser frontend verpasst.

    Das halte ich für ein sehr großes Gerücht - u.a. bezweifel ich das in der ursprünglichen VB-Runtime wichtige Dateioperationen vergessen (bzw. nur umständlich zu schreiben waren; Ich sage hierzu nur .Net 1.0). Aber man kann ja erstmal Gerüchte in die Welt setzen oder verbreiten.

    Davon abgesehen ist es zwar logisch wenn VB.Net von der Geschwindigkeit mit C# identisch wäre, zwangsweise ist dies aber nicht gegeben (Die Codeoptimierung in die IL ist nicht in beiden Sprachen identisch; dies sollte in der Praxis aber eher wenige Unterschiede machen).

    Davon abgesehen gibt es durchaus einige Kompatibilitätsunterschiede zwischen diversen .Net Sprachen (beginnt schon bei den unterstützten Datentypen [unsigned/signed]). Und man sollte sich an eine gewisse Basis halten falls man in einem Projekt Sprachen mischt.

    rapso schrieb:

    das erste manko hat man bei c# (und java) weg bekommen durch einen c-artigen parser.

    Zudem wurde C# als Referenzsprache verwendet, und unterstützt einige Bereiche besser als andere (wobei VB.Net wohl auch einige "Spezialitäten" hat).

    rapso schrieb:

    compiler, libs, optimierungen (und somit performance), compatibilitaet etc etc. ist gleich.

    Das stimmt nicht (So wie beispielsweise WPF nicht von allen .Net Sprachen sinnvoll unterstützt wird, gibt es durchaus auch andere Feature wo die Unterstützung in der einen Sprache besser als in der Anderen ist - oder garnicht unterstützt wird).

    Ich persönlich würde VB vorwiegend wegen der Syntax meiden, aber teilweise noch weil ich grundsätzlich eher zu der Sprache greifen würde die vom Hersteller am meisten Unterstützung erhält (unter .Net ist dies C#, derzeit vermutlich gefolgt von VB.Net).


Anmelden zum Antworten