Visual Basic oder Visual C#

Also ich programmiere länger schon in Java und habe mir in den letzten Monaten C# und VB.NET angeschaut, und ich muß sagen ich bin begeistert von C#. Im Studium habe ich C++ gelernt.

Keine Diskussion über die Leistungsfähigkeit von C++, aber sie ist deutlich aufwendiger als C#. Obwohl die Sprachsyntaxen sich sehr ähneln ist C# sehr einfach.

Beispiel:

Zeiger (Pointer) und Speicherverwaltung:

Gerade Anfänger und auch noch fortgeschrittene Programmierer können hier viele Fehler machen. Du mußt nämlich Variablen und Objekten in C++ selbst Speicher zuordnen. Hier sind viele Möglichkeiten für Fehler. In C# übernimmt die "Garbage Collection" für Dich.

Nach meiner meiner Meinung ist C# nicht komplizierter als VB.NET. Im Gegenteil, ich finde Sie zum Teil sehr viel übersichtlicher.

Das Argument, das der Compiler schon im Editor bei VB.NET mitkontrolliert, gilt auch für C#.

Wenn Du ein gutes Einsteigerbuch brauchst, empfehle ich Dir das Buch aus dem Addison-Wesley Verlag von Frank Eller:
Anfangen, Anwenden, Verstehen C# lernen

Ein sehr leichtes verständlich geschrieben Buch für Anfänger und Umsteiger, bei dem sich schnell Erfolge einstellen.

Ach ja, das Argument, daß Dotnet eine reine Microsoftsache ist, kann ich nicht stehen lassen. Dotnet Compiler gibt es mittlerweile für verschieden Betriebssysteme (Linux, Bsd usw) durch das Monoprojekt von Novell (www.mono-project.com)

Viel Glück,
beim Programmieren lernen :-)
 
@weto

natürlich gibt es mono. aber zu .net gehört mehr als ein compiler und eine runtime. komplett platformunabhängig ist .net noch lange nicht. auch wenn man plattformunabhängig in c# programmieren kann. da aber vorallem anfänger strikt nach microsofts vorgaben dank ihrer bücher und tutorials programme schreiben ist das noch eher theorie. das sollte man schon beachten.

die platformunabhängigkeit von java ist aufjedenfall noch nicht erreicht.

die vb.net unterstützung von mono ist wohl auch noch deutlich schlechter als die von c#.
 
Wie Arnd vortrefflich geschreiben hat neigen VBler zum Schlampen und nutzen auch in .NET ihre alten befehle aus VB6, weil das ist so einfach. Und nun? Unter Mono kriegste es nicht zum laufen. Arrgh.

Wenn ich eine VB.NET Assembly nutzen soll, die so beknackt programmiert wurde dann brauch ich die VB6-Kompatibilitäts-DLL wieder, obwohl alles im .NET Framework drinne ist. Da tut mir alles weh.

Wenn ihr euch jeglichen Stil versauen wollt, bitte nehmt VB.NET. Aber ich kann nur zu C# raten, ihr werdet es in ein Paar Jahren mit Programmiererfahrung dann auch so sehen.
 
@Sibirian_Husky

Mit dem VB.NET hast Du ja recht. Aber ich habe ja auch C# empfohlen. Und da ist das Mono Project wirklich schon ziemlich weit entwickelt. Unter Linux habe ich da gute Erfahrungen gemacht.

Nach meiner Meinung ist C# nicht komplizierter als VB.NET.
 
nun jede Sprache hat ihre Vor- und Nachteile, und es gibt verschiedene Meinungen mit welcher Mann anfangen soll. Ich denke es kommt einfach darauf an, was du machen willst? Ist es nur Hobby? Wieviel Zeit willst du investieren und wie hartnäckig kannst du sein? Brauchst du schnelle Erfolge oder hast du Ausdauer?

Wenn du voll einsteigen willst und viel ausdauer hat und möglichst noch Plattform unabhängig PRogrammieren willst, spricht nix dagegen mit C++ anzufangen. in diesem Zusammenhang, was spricht dagegen mit C++ anzufangen? (bin gerade dabei und es läuft recht gut!)

Willst du nur für Windows programmieren, kannst du auch mit C# anfangen.

Wichtig ist einfach: das du von Anfang an klar strukturiert und gründlich programmiert und dir keine Schlamperei angewöhnst.
 
MagicAndre1981 schrieb:
Wenn ihr euch jeglichen Stil versauen wollt, bitte nehmt VB.NET. Aber ich kann nur zu C# raten, ihr werdet es in ein Paar Jahren mit Programmiererfahrung dann auch so sehen.

Du hast ja echt ne Menge Ahnung. Zu allererst kann man in VB.NET gar nicht so "schlampig" programmieren wie in VB6. Es gibt zwar ein paar Kompatibilitätsfunktionen, aber die sind auch nichts anderes als normale Funktionen unter anderem Namen.

Außerdem wollte er mit einer Sprache neu anfangen. Warum sollte er also die Kompatibilitätsmethoden nutzen? Mit VB.NET kannst du nicht mehr und nicht weniger rumschlampen, als bei anderen Programmiersprachen auch. Wenn du ein Gegenbeispiel findest, dann nur her damit.

Ne Ne. Keine Ahnung haben, aber hauptache erstmal etwas rumbashen. Hast wahrscheinlich noch keine einzige Zeile Code in VB.NET geschrieben.
 
Zuletzt bearbeitet:
noxon schrieb:
Ne Ne. Keine Ahnung haben, aber hauptache erstmal etwas rumbashen. Hast wahrscheinlich noch keine einzige Zeile Code in VB.NET geschrieben.

Mir reichts wenn dich den Mist lesen muss :lol:

C# und Chrome, das ist alles was ich zum entwickeln brauche.
 
etwas offtopic aber nur etwas:

was spricht dageben mit C++ anzufangen? ausser das man nicht so schnell Ergebnisse sieht ausserhalb der konsole?
 
Viele Sicherheitslücken in Programmen kommen durch die Speicherverwaltung von C/C++. Da kann man schnell durch Overflows Mist bauen. Sowas gibts .NET Sprachen mal nicht, es sei denn man sagt extra ich will auf die Sicherheit verzichten (du deklarierst dann die Methode als unsafe).

.NET und JAVA nehmen dir die Speicherverwaltung zum größten Teil ab. Nur wenn du auf unmanged Code zugreifst kann es sein, dass du IDispoable implementieren musst um den Speicher freizugeben. Im normalen Umgang brauchst du also kein free(C) oder delete (C++).
 
Zuletzt bearbeitet:
hm, macht irgendwie schon sinn :-)

naja, ich werde mir dann wohl ein Buch für C# zulegen. Der Kurs im C't ist ja doch etwas gar knapp...

Kennt wer gerade ein gutes werk?
 
ist es auch für Anfänger zu verstehen?

habe etwas c++ Kentnisse, aber nicht allzuviele?
 
Puh, keine Ahnung. Ich konnte vorher schon C++ und mittelmäßig JAVA, deshalb ging es ganz fix.
 
MagicAndre1981 schrieb:
Viele Sicherheitslücken in Programmen kommen durch die Speicherverwaltung von C/C++. Da kann man schnell durch Overflows Mist bauen. Sowas gibts .NET Sprachen mal nicht, es sei denn man sagt extra ich will auf die Sicherheit verzichten (du deklarierst dann die Methode als unsafe).
wieso erinnern mich leute, die die automatische speicherverwaltung als hauptgrund gegen c/c++ immer an dieses hübsche java-programm, dass mit ein paar cross-links die komplete speicherverwaltung von java ins nirvana schickt und nach kurzer laufzeit mehrere hundert mb an toten objekten im speicher hat?
mal was zu den overflows. das problem betrifft c mehr als c++. in c will man sich schmutzig machen, sonst würde man nicht c als programmiersprache nehmen. c++ bietet, bei einer hinreichenden nutzung der container, nur noch recht wenig zwang mit zeigern rum zu hantieren (vor allem nicht bei dynamischen puffern). das problem von c++ ist, dass viele es wie c mit objekten nutzen. also keine exceptions, kein assert, keine objekt-referenzen übergeben, felder statt vector, char[] statt string. ich weiß, dass spart an manchen stellen ein bisschen rechenzeit. aber ein sicheres programm ist mehr wert als rechenzeit.

was die schönheit des codes in vb.net angeht. dank der vielen abkürzungen, die immer noch drinne sind, ist die sprach für anfänger völlig ungeeignet. ein anfänger muss gezwungen werden sich im klaren zu seien, wann eine konvertierung stattfindet. vb.net hat bis heute keine starke struktur des quellcodes. um programmieren zu lernen würde ich heute immernoch pascal empfehlen. ich würde heute kein großes projekt in pascal anfangen (und das nicht erst seit delphi in eine ungewisse zukunft geht.) aber für anfänger ist es die beste sprache.
die starke-struktur ist ein hindernis beim programmieren, wenn man es kann und weiß was man tut. solange man noch lernt, ist die struktur eine hilfe. sie zwingt zum nachdenken.
ich bin nicht gegen vb.net, es ist um welten besser als vb. nur würde ich anfängern auch eine reihe anderer sprachen nicht empfehlen, wie etwa ruby, c oder perl.
 
ghorst schrieb:
wieso erinnern mich leute, die die automatische speicherverwaltung als hauptgrund gegen c/c++ immer an dieses hübsche java-programm, dass mit ein paar cross-links die komplete speicherverwaltung von java ins nirvana schickt und nach kurzer laufzeit mehrere hundert mb an toten objekten im speicher hat?

Wenn man Pooling verwendet hat ,man das nicht. Da kommt es nicht zum totalen Chaos mit dem GC.
 
hm, ich denke viel wichtiger als die Sprache ist, dass man eine gute und solide einführung erhält oder? Man kann eigentlich ja mit jeder Sprache anfangen, solange die Einführung nur solide ist, odeR?

Zum Pascal: damit habe ich vor Jahren mal programmiert, damals noch unter dos, geht das noch unter XP komfortabel?
 
meinst du das sammeln von toten objekten, bis ein neuer sie haben will?

nein, das meinte ich nicht. ich meinte nicht den fall, dass der gc mit dem aufräumen nicht hinterher kommt, sondern den fall, wo der gc nicht mehr erkennt, was alt und tot ist und was nicht. wenn man ein bisschen im ring + ein paar ästen objekte miteinander verlinkt, kriegt der gc nicht mehr mit, auf welches objekt noch referenzen existieren und auf welches nur welche von anderen toten stammen. wenn man einmal in so ein loch gefallen ist, mag man keine automatische speicherverwaltung mehr.
 
Meriana schrieb:
hm, ich denke viel wichtiger als die Sprache ist, dass man eine gute und solide einführung erhält oder? Man kann eigentlich ja mit jeder Sprache anfangen, solange die Einführung nur solide ist, odeR?
meine erfahrung sag dazu: nein. man kann nicht mit z.b. ruby anfangen. warum? weil man das ohne eine idee schnell was erzeugen kann und genau das machen dann anfänger. man braucht die struktur, sonst bekommt man nie einen lesbaren stil in die programmierung.
Meriana schrieb:
Zum Pascal: damit habe ich vor Jahren mal programmiert, damals noch unter dos, geht das noch unter XP komfortabel?
delphi. auch wenn delphi leider auch nichts für anfänger ist, da es eine reines rad-tool ist.
programmieren muss man von unten lernen, anders geht es nicht. ein rad-tool ist etwas für leute, die wissen was sie tuen und vor allem wissen, was da im groben hinter den kulissen abläuft.
 
mit einer soliden einführung dachte ich auch an, dass man lernt nen lesbaren quellentext zu schreiben und sein programm zu strukturieren. (keine goto befehle zu verwenden, sondern schleifen z. B.)

habe auch schon Konsolenprogramme mit C++ geschrieben, aber möchte jetzt wieder neu einsteigen.

also was ratet ihr mir zu tun? mit C++ weiter zu machen?

also ein RAD-tools habe ich kein intresse, weil da versteh ich noch nicht genug.
 
Zurück
Oben