C# oder C++?

Nur_Momo

Newbie
Dabei seit
Dez. 2018
Beiträge
7
Hallo,

ich weiß es gibt viele Posts dieser Art, aber ich bin mir immer noch unschlüssig. Ich habe früher sehr viel mit der Skriptsprache PAWN gearbeitet. Vor einigen Wochen habe ich mir auch JavaScript angeschaut da ich mir einen Discord Bot erstellen wollte. Ich möchte aber eine Programmiersprache erlernen, nur kann ich mich nicht zwischen C# und Cpp entscheiden.

Bei C# habe ich mir ein wenig angeschaut und das war bis jetzt alles Positiv. Mit C# könnte ich mich auch daran wagen an einem GTA V Server zu arbeiten, an Discord oder Steam Bots und anderen Möglichkeiten. Ich bin allerdings auch sehr an der Spieleentwicklung interessiert und habe gelesen das in der Spieleentwicklung C++ verbreiteter ist. Aber ich habe auch gelesen das der Umstieg von C# auf C++ sich schwierig gestaltet. Hättet Ihr da ein paar Tipps und wohlmöglich ein paar gute Bücher?

Und für eine andere Frage wo ich vielleicht die Antwort schon kenne: Würdet Ihr mir eher abraten C#(oder C++) UND JavaScript gleichzeitig zu lernen?

Danke schon einmal für ernstgemeinte Antworten.
 
Hallo,
C# ist zwischenzeitlich eine sehr mächtige Sprache und wird auch direkt z.B. in Unity im Spielebereich unterstüzt.

Natürlich hast du mit C++ mehr Möglichkeiten, kompaktere und etwas performantere Programme und auch weniger Abhängigkeiten z.B. zu einer Runtime. Dies erkaufst du dir aber durch eine deutlich komplexere und mit viel Fallstricken geprägte Programmiersprache.

Ich würde mit C# beginnen und falls nötig, C++ noch draufpacken. Die Sprachkonzepte beider Sprachen sind größtenteils gleich. Unter der Motorhaube gibt es aber unterschiede. Kompiliert vs Laufzeitkompiliert, manuelle vs. automatischer Speicherbereinigung etc.

JavaScript findet seine Einsatzgebiet primär in der Webentwicklung und hat mit Spielen (die nicht im Browser laufen!) erstmal wenig zu tun.


greetz
hroessler
 
  • Gefällt mir
Reaktionen: Ebrithil, Nur_Momo und psYcho-edgE
JS würde ich im nachinein lernen. So schwer ist das nicht, wenn man bereits eine Sprache kann/kennt.

Edit: Für den Rest schließe mich @hroessler an.
 
  • Gefällt mir
Reaktionen: Nur_Momo
Zitat von _Reaper:
JS würde ich im nachinein lernen. So schwer ist das nicht, wenn man bereits eine Sprache kann/kennt.

Edit: Für den Rest schließe mich @hroessler an.
Ich sehe das eher andersrum. Die Konzepte mit der einfacheren Sprache (C#) lernen und dann die zusätzlichen Konzepte die C++ alleine hat mit drauf packen.

@_Reaper C# untypisiert? Wo?

greetz
hroessler
 
  • Gefällt mir
Reaktionen: Nur_Momo und _Reaper
Zuletzt bearbeitet:
Wow, vielen dank für die ganzen Antworten. Dann werde ich mich wohl an C# setzen. :) Würdet Ihr für den anfang die Seite Sololearn.com für den Einstieg empfehlen und danach auf ein gutes Buch umzusteigen?
 
@hroessler Es bewegt sich hart in diese Richtung. "var" findet immer mehr gebrauch und auch von Seiten MS wird das ganze gepusht. Siehe z.B.:

Auch bei unseren größeren Kunden, die eigene Code-Conventions haben, heißt es immer öfter, alles durch var ersetzen. Das ganze macht die Sprache nicht untypisiert, es läuft aber in der Nutzung immer mehr darauf hinaus. Das meinte ich.
Ich persönlich halte das für Schwachsinn und eher nervig als hilfreich.
 
  • Gefällt mir
Reaktionen: Nur_Momo, Kalsarikännit und TopperHarley87
Zitat von _Reaper:
Es bewegt sich hart in diese Richtung. "var" findet immer mehr gebrauch und auch von Seiten MS wird das ganze gepusht.
Und wo ist das jetzt untypisiert? Du musst bloß den Typ nicht doppelt schreiben.
Code:
Sonst<Kommt<so<ein<Quatsch>irgendwann,mal,raus>,den> variable = new Du<dann<gleich<mal<doppelt>schreiben,kannst,foo>,bar>();
Mit var musst du das nur ein Mal schreiben. Typisiert ist es trotzdem.
 
  • Gefällt mir
Reaktionen: eweu
@_Reaper Bei "var" wird auch zur Kompilierzeit statsich typisiert. Die Typisierung findet allerdings durch den Compiler und nicht durch den Benutzer statt. Wenn der C#-Compiler den Typen nicht herleiten kann, gibt es einen Kompilierfehler.

greetz
hroessler
 
Zuletzt von einem Moderator bearbeitet:
  • Gefällt mir
Reaktionen: eweu
Zitat von Nur_Momo:
Wow, vielen dank für die ganzen Antworten. Dann werde ich mich wohl an C# setzen. :) Würdet Ihr für den anfang die Seite Sololearn.com für den Einstieg empfehlen und danach auf ein gutes Buch umzusteigen?
Such dir Aufgaben, programmiere diese und benutze Google dabei. Das ist mein Tipp an dich :)

greetz
hroessler
 
  • Gefällt mir
Reaktionen: Nur_Momo
Zitat von _Reaper:
"var" findet immer mehr gebrauch und auch von Seiten MS wird das ganze gepusht.
var ist aber nicht untypisiert, das ist nur ne verkürzte Schreibweise bei der der Datentyp nicht nochmals explizit hingeschrieben sondern aus der Initialisierung abgeleitet wird.

Untypisiert in C# ist dynamic... das hab ich jetzt aber noch nicht so groß in Verwendung gesehen.
 
Leute, es geht mir um die Schreibweise^^.
Was im Hintergrund passiert ist egal. Es geht darum, dass ich Code lesen muss und nicht direkt sehe, was da kommt, bzw. was da genutzt wird. Wenn man hier und da Hobbymäßig was programmiert ist das egal.

Wenn man riesige Projekte mit Code von anderen Entwicklern öffnet sieht die Sache schon ganz anders aus.

Ich habe ja auch nichts dagegen, wenn man z.B.:
MeineSuperTolleKlasseMitZuLangenNamen a = new MeineSuperTolleKlasseMitZuLangenNamen();
List<IDictionary<string, List<int>>> b = new List<IDictionary<string, List<int>>>();

durch
var a = new MeineSuperTolleKlasseMitZuLangenNamen();
var b = new List<IDictionary<string, List<int>>>();

ersetzt.

Aber bei solchen Geschichten wie im Video oben zu sehen, kommt mir direkt das Mittagessen wieder hoch^^
 
  • Gefällt mir
Reaktionen: xenon-seven
  • Gefällt mir
Reaktionen: Nur_Momo
Ich würde parallel zu C# TypeScript lernen, so kannst du gleich Javascript mit gewisser TypeSafety anwenden
 
Zitat von _Reaper:
Aber bei solchen Geschichten wie im Video oben zu sehen, kommt mir direkt das Mittagessen wieder hoch^^
Ok, das Video kann ich mir hier grad nicht anschauen. Aber unleserlichen Code kann man eigentlich immer schreiben, dafür braucht man kein var ;-)
 
  • Gefällt mir
Reaktionen: _Reaper
Es kommt mMn darauf an wo Du später hin willst. Willst Du super optimierte Engines schreiben und dich näher mit Computergrafik auseinandersetzen? Dann bleibt nur C++.

Möchtest Du effektiv Probleme lösen und einfach Projekte umsetzen? -->C#.

Nachtrag: besonders schwierig ist der Umstieg zwischen Sprachen aber auch nicht. Es wird halt einfach Projekte geben, die bestimmte Umgebungen und Sprachen voraussetzen. Je nach Projekt macht eben nicht jede Sprache Sinn. Kein Mensch würde Data Science in C++ machen, oder (performante) Spieleengines in Python schreiben. Du machst weder mit C++ oder C# etwas falsch, ich persönlich würde mit C# anfangen, da der Einstieg etwas lecihter und somit motivierender ist.
 
  • Gefällt mir
Reaktionen: psYcho-edgE, Stuffz und Nur_Momo
Zurück
Top