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.
 
H

hroessler

Gast
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
 

_Reaper

Lt. Junior Grade
Dabei seit
Juni 2010
Beiträge
446
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.
 
H

hroessler

Gast

new Account()

Rear Admiral
Dabei seit
Mai 2018
Beiträge
5.242
Zuletzt bearbeitet:

Nur_Momo

Newbie
Ersteller dieses Themas
Dabei seit
Dez. 2018
Beiträge
7
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?
 

_Reaper

Lt. Junior Grade
Dabei seit
Juni 2010
Beiträge
446
@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.
 

Yuuri

Fleet Admiral
Dabei seit
Okt. 2010
Beiträge
12.691
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.
 
H

hroessler

Gast
@_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:

Jesterfox

Fleet Admiral
Dabei seit
März 2009
Beiträge
40.098
"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.
 

_Reaper

Lt. Junior Grade
Dabei seit
Juni 2010
Beiträge
446
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^^
 

The Ripper

Lt. Commander
Dabei seit
Juni 2012
Beiträge
1.969

itdummy

Cadet 3rd Year
Dabei seit
Sep. 2017
Beiträge
60
Ich würde parallel zu C# TypeScript lernen, so kannst du gleich Javascript mit gewisser TypeSafety anwenden
 

Jesterfox

Fleet Admiral
Dabei seit
März 2009
Beiträge
40.098

new Account()

Rear Admiral
Dabei seit
Mai 2018
Beiträge
5.242

dr. lele

Commander
Dabei seit
Sep. 2012
Beiträge
3.022
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.
 
Top