Laden...

c# oder VB.Net

Erstellt von flyAway vor 19 Jahren Letzter Beitrag vor 19 Jahren 3.614 Views
F
flyAway Themenstarter:in
269 Beiträge seit 2004
vor 19 Jahren
c# oder VB.Net

Hi,

die Frage, C++ oder C# hat sich mir nie gestellt, da mir c++ einfach zu umständlich ist und mir viele, die c++ programmieren, zu c# geraten haben.
VB wurde ja von vielen belächelt... inzwischen gibt es VB.Net und es gibt einige, die diese Sprache c# vorziehen, weil sie angeblich mächtiger ist.

Habt ihr Erfahrungen mit beiden Sprachen? Was sind die Vor- und Nachteile?

Angelika

N
4.644 Beiträge seit 2004
vor 19 Jahren

Original von flyAway
VB wurde ja von vielen belächelt... inzwischen gibt es VB.Net und es gibt einige, die diese Sprache c# vorziehen, weil sie angeblich mächtiger ist.

Mächtiger ist sie auf keinen Fall, frag mal nach Operatorüberladung in VB.
Es gab einige Sachen die C# realisierbar waren aber in VB nicht.
Ich bin der Meinung, dass VB.NET nur entwickelt wurde damit sich VB'ler schneller entschließen auf den .NET Zug aufzuspringen.

F
flyAway Themenstarter:in
269 Beiträge seit 2004
vor 19 Jahren

Dann habe ich mit c# wohl die richtige Entscheidung getroffen.

Danke 🙂

333 Beiträge seit 2004
vor 19 Jahren

Ich persönlich würde zu C# raten. Die Sprachen sind bis auf die Syntax und ein paar Dingen wie Operatorüberladung, das Nutzen von Pointern, With-Blöcke, usw. identisch. Man kann auch sagen, daß beide Sprachen nahezu den selben MSIL-Code erzeugen. Von daher ist es überwiegend Geschmacksfrage hinsichtlicher der Snytax. Die Dinge die sich Unterscheiden braucht man in der tagtäglichen Programmierung nicht wirklich.

Kurz zur Syntax. Folgendes Beispiel:

' VB.NET
Dim hello As String = "Hallo Welt"
// C#
string hello = "Hallo Welt";

Was fällt daran auf? In VB.NET sind 2 Schlüßelwörter in der Deklaration, die eigentlich überflüssig sind, was man gut im Vergleich zu C# sieht. VB-Syntax sieht immer danach aus also könnte man den Quellcode vorlessen und verstehen. C# beschränkt sich jedoch auf das Wesentliche. An dem Beispiel erkennt man auch, daß die Reihenfolge in VB.NET wenig sinnvoll ist. Definiere ich eine neue Variable, stellt sich zuerst die Frage welchen Typs sie ist und nicht zuerst die Frage nach dem Namen. Der Name hat ja oft auch einen direkten Zusammenhang mit dem Typ.

Was ich damit eigentlich sagen will ist, daß C# einfach leichter von der Hand geht. Vielleicht nicht zu anfang, wenn man sich daran gewöhnen muß, aber später weiß man es zu schätzen. Ich hab früher selbst jahrelang in VB6 programmiert und bin mit C# weiteraus zufriedener.

Edit @flyAway:
Sozusagen 🙂

([bb]|[^b]{2})

C
1.215 Beiträge seit 2004
vor 19 Jahren

jo, ich habe auch lange mit VB u. VBS gecodet - seit 2 jahren allerdings kaum noch...
inzwischen kommt mir die VB-syntax irgendwie grob und ungeschlacht vor (ähnlich wie das verrückte php)
😉

der vorteil einer c'schen syntax liegt klar auf der hand, da sie inzwischen eine ganze sprachen-familie mit sich bringt.

grtz
chief

445 Beiträge seit 2003
vor 19 Jahren

Hi,

mit VS 05 kommt auch Operatorenüberladung für VB.net. Ich würde dir aber zu C# raten, weil es einfach "schlaker" ist. Unter VB hat man zwei Seiten voll Schlüsselwörtern, unter C# nur eine halbe. Außerdem trägt VB einige Altlasten aus früherer Zeit. Ein weiterer Grund ist, dass VB nicht zwischen Groß- und Kleinschreibung unterscheidet. Deshalb können Verwirrungen entstehen.

Viele Grüße
www.mycsharp.de

Bitte vor dem Fragen immer in die FAQ schauen und die Suche benutzen. Danke.

F
529 Beiträge seit 2003
vor 19 Jahren

Kann ich eigentlich C# zu IL kompillieren und dann zu VB.net dekompillieren????

VB.net sollte man meiden, meiner geringen Meinung nach ist das für die Tonne!

--
mfg
Franksntein

Besuchen sie das VisualC++ - Forum

U
107 Beiträge seit 2004
vor 19 Jahren

Gibt es eigentlich Geschwindigkeitsunterschiede zwischen C# & VB.NET ?
Meine Meinung nach ist es wirklich Geschmacksache welche Sprache einem mehr liegt.

:::

333 Beiträge seit 2004
vor 19 Jahren

Original von Franknstein
Kann ich eigentlich C# zu IL kompillieren und dann zu VB.net dekompillieren????

Ja, geht, kannst es auch zu Delphi oder was auch immer dekompilieren.

Original von UserNeo
Gibt es eigentlich Geschwindigkeitsunterschiede zwischen C# & VB.NET ?

Nein, und falls doch kann man die geringen Unterschiede vernachlässigen. Von der Theorie her dürften sie sich nichts nehmen.

([bb]|[^b]{2})

F
529 Beiträge seit 2003
vor 19 Jahren

C# ist auf alle Fälle die beste Sprache für das DotNetFx, da die nur für .net Desingt wurde und daher alle Vorteile ausnutzt, was man von anderen Sprachen nicht sagen kann

--
mfg
Franknstein

Besuchen sie das VisualC++ - Forum

C
1.215 Beiträge seit 2004
vor 19 Jahren

jo!
und die syntax von c# ist auch der der msil am ähnlichsten...
ich mutmasse hier mal, dass beide miteinander entwickelt wurden.

grtz
chief

M
16 Beiträge seit 2004
vor 19 Jahren

Original von zeus
Hi,

mit VS 05 kommt auch Operatorenüberladung für VB.net. Ich würde dir aber zu C# raten, weil es einfach "schlaker" ist. Unter VB hat man zwei Seiten voll Schlüsselwörtern, unter C# nur eine halbe. Außerdem trägt VB einige Altlasten aus früherer Zeit. Ein weiterer Grund ist, dass VB nicht zwischen Groß- und Kleinschreibung unterscheidet. Deshalb können Verwirrungen entstehen.

Hihi, ich habe die letzen 2,5 Jahre Vb programmiert und seit 2003 halt auch Vb.Net. Und das was du sagst ist zwar völlig korrekt, nur sind das aus meiner sicht nihct zwingend Nachteile. es kommt schon drauf an von welcher "Seite" man kommt. am Besten wäre es eigentlich, einen zu fragen, der vorher weder C# noch Vb.Net kannte und beide Varianten erlernen musste.

Die Module die es in VB gibt, empfinde ich als Umsteiger nach C# schon manchmal als 'Verlust'.
Aber ich denke, daß derartiges einfach größtenteils Philosophie des einzelnen ist, oder halt Gewohnheitsempfinden, das nun ein wenig belastet wird. 😉

333 Beiträge seit 2004
vor 19 Jahren

Original von Mister_A
Die Module die es in VB gibt, empfinde ich als Umsteiger nach C# schon manchmal als 'Verlust'.
Aber ich denke, daß derartiges einfach größtenteils Philosophie des einzelnen ist, oder halt Gewohnheitsempfinden, das nun ein wenig belastet wird. 😉

Genau, entweder man programmiert objektorientiert oder man lässt es eben bleiben 😉

([bb]|[^b]{2})

U
107 Beiträge seit 2004
vor 19 Jahren

Genau, entweder man programmiert objektorientiert oder man lässt es eben bleiben 😉

Ich denke das Vb.NET genauso Objektorientiert ist wie C#. Jedoch sollte man keine Module mehr in VB.NET nutzen, obwohl es möglich ist.

:::

M
16 Beiträge seit 2004
vor 19 Jahren

Ach kommt schon.. Pauschalaussage. Um mal eben schnell ein paar global gültige Bezeichner oder Funktionen zu definieren war das in gewissen Umfang ganz nett. Und natürlich ist VB.Net nun im Gegensatz zu VB 6vor allem wirklich objektorientiert.
Vererbung, Polymorphie.. das funktioniert alles sehr schön.

Man merkt aber halt daß diesebeiden Sprachen einen anderen Urspung bzw ene andere Entwicklung hinter sich haben. Die Gemeinsamkeit die sie jetzt haben ist, daß sie auf dieselben Bibliotheken zugreifen. Trotzdem sind Vergleiche im Sinne von "besser" oder "schlechter" schwierig, da beide irgendwie schon ein wenig in den eigenen Strukturen "gefangen" (irgendwie das falsche Wort, aber mir fällt grad nix anderes ein) sind.

Ich bin jedenfalls froh, daß ich irgendwann beides einigermassen beherrsche. 🙂

C
65 Beiträge seit 2004
vor 19 Jahren

Ich denke, die Frage lässt sich am leichtesten dadurch beantworten, dass man sich

if (foo) {
   for (int i = 0; i < 10; i++) {
      ...
   }
}
else {
   ...
}

anschaut und im Vergleich dazu

If foo Then
   Dim i As Integer
   For i = 0 To 9
      ...
   Next i
Else
   ...
Endif

Ich persönlich mag Kleinschreibung und geschweifte Klammern. Ich finde "next", "endif" und Co. hässlich. Das ist der einzige Grund, weswegen ich nach VB6 mit Freuden zu C# statt zu VB.NET gewechselt bin: (zu) viel PHP und C++ und JScript in der Zwischenzeit, sodass meine Augen einfach an geschweifte Klammern und die "luftigere" Optik von C-ähnlicher Syntax gewöhnt sind.

Fazit: bis auf ein paar wenige Prozent mehr Performance für C# (die mit .NET 2.0 vermutlich behoben sein werden) ist das eine reine Geschmacksfrage.

/// <summary>
/// Signatur
/// </summary>

U
107 Beiträge seit 2004
vor 19 Jahren

@CarstenP

Denke ich mal auch, hauptsache das Programm läuft am Ende 😁

:::

333 Beiträge seit 2004
vor 19 Jahren

Original von CarstenP

if (foo) {  
   for (int i = 0; i < 10; i++) {  
      ...  
   }  
}  
else {  
   ...  
}  

Ihh, das is ja Klammerung aus C/C++. Das sieht auch schrecklich aus, find ich 😉

([bb]|[^b]{2})

C
65 Beiträge seit 2004
vor 19 Jahren

@NoOne: Auch Geschmacksache 😉 Ich würde mir wünschen, man könnte dem VS-Editor beibringen, die öffnende { in der vorigen Zeile zu lassen, ohne dass es dann bei der Formatierung durcheinander kommt. Ich lasse dem Ding also seinen Willen und nehme die einzelne { in einer extra Zeile in Kauf. Mir persönlich wird Code dann teilweise ZU luftig, zumal ich auch Einzeiler nach "if"s einklammere, statt mich dieser Unsitte hinzugeben, Einzeiler oder Folge-"if"s direkt an die Zeile davor zu kleben. Es soll sogar in alten Linux-Kerneln aus diesem Grund zu Abschmierern gekommen sein, weil der Programmierer anders "dachte" als der Compiler 😉

/// <summary>
/// Signatur
/// </summary>