Progger hat geschrieben:Was ist besser C# oder C/C++?
Falsche Frage. Was willst Du tun?
C# ist eine nette Sprache, recht aufgeräumt, .NET liefert ein nicht ganz so aufgeräumtes Framework mit, was aber durchaus noch einen eher guten Eindruck hinterlässt. Man kann damit effizient programmieren. Bei der Ausführung kann einem der JIT-Compiler und die GarbageCollection in den Weg kommen. Ich halte JIT und GC für Sackgassen, aber die Mehrheit der Entwickler ist anderer Meinung. Ich halte C# für eine schöne Einsteigersprache. Manche Dinge, die C# nicht kann, kann man in einem sogenannten 'unsafe' Modus lösen, dort programmiert man dann im Stil von C++. Der direkte Zugriff auf's System ist in die Sprache integriert. An beiden Problemen scheitert Java kläglich (und für die Java-Freunde: JNI rettet da nichts...)
Du kannst C# Fragen gerne hier im Forum posten, ich programmiere C# beruflich, sollte also auch Fragen beantworten können.
.NET existiert nur auf Windows, aktuelle .NET-Frameworks wie WPF sind unter Windows 2000 und XP nicht verfügbar. Will man also nicht an der Masse der PCs vorbeiprogrammieren, benötigt man für Dialoge die .NET-WinForms, welche im Vergleich zu MUI (Magic User Interface, das gab's auf'm Amiga vor 20 Jahren) ziemlich alt aussehen, so sch... sind WinForms. Aber solange man keine Ansprüche stellt, werden sie nicht enttäuscht und zu Beginn ist so ein statischer Dialog schnell mit VisualStudio schnell zusammengeklickt.
In Details ist C# sauberer als C++ (Semantik beim Überschreiben von Methoden). C# ist nicht so exceptionverrückt wie Java, was man ihm im Vergleich zu Java als Pluspunkt auslegen sollte. Ich würde sagen, dass Exceptionverhalten von C# ist akzeptabel.
C++ bietet trotz des höheren Alters fortgeschrittenere Technikern, die in C# teilweise sehr fehlen (Const-Correctness, Templates, Referenzen) oder absichtlich ausgeklammert wurden (Mehrfachvererbung, was ich sehr bescheiden finde). Dafür fehlen GarbageCollection, der JIT-Compiler ist in C++ vollkommen überflüssiger Ballast, den es deswegen auch nicht gibt. Exceptions (zu Deutsch "Ausnahmen") werden höchstens ausnahmsweise verwendet.
Diese fortgeschritteneren Techniken wirst Du allerdings erst bemerken, wen Du selbst auch Fortgeschrittener bist. C++ lässt Dich direkt am Anfang in mehr Fallen tappen, was bedeutet, dass Du lernst, nicht in Fallen zu tappen. Das ist frustrierender, aber mit guter Unterstützung durch Lehrer, Bekannte oder das Forum hier, effizienter. Du solltest aber auch mit Frust umgehen können, den üblicherweise fällt man in eine Falle, weil man es nicht besser wusste und dann muss man rausfinden, wieso man da jetzt drin sitzt. Damit versteht man aber auch, wie Computer funktionieren (oder wie sie eben nicht funktionieren...)
Du musst mehr lernen, als mit C#, dafür kannst Du mit C++ verhältnismäßig einfach auf C# wechseln, aber umgekehrt sieht die Sache anders aus.
Möchtest Du (irgendwann) auf Linux oder MacOS wechseln, so bist Du bei beiden Systemen mit C++ direkt am Start. Mein Hauptprojekt kompiliere und programmiere ich auf Linux, Mac und Windows in C++. C# ist stark an Windows gebunden. Es gibt eine Portierungen namens Mono, bisher kenne ich aber kaum jemanden, der Mono als Zielplattform wirklich ernst nimmt. Kurz: C# begrenzt Dich auf Windows.
Was besser ist lässt sich nicht so einfach beantworten. Wenn Du mich fragen würdest, würde ich ganz klar C++ sagen. Schon alleine, weil ich durch alle Betriebsystem wandere, fällt für mich C# raus. Aber es geht nicht um mich: es ist eher die Frage, was ist besser für Dich?
Eine Programmiersprache zu lernen ist sehr aufwändig. Um die richtige Entscheidung zu treffen, lohnt es sich vielleicht sich die richtigen Fragen zusammen zu suchen und dafür Antworten zu finden.
Fragen findest Du im Artikel
Wahl der Sprache im Wiki.
Progger hat geschrieben:Und kennt einer ein geiles C# tutorial
Ich kann keins empfehlen, aber auch kein geiles schreiben, da ich C# nicht schlecht finde, aber andere Vorstellungen von geil habe. (auch was Programmiersprachen angeht) ^^