C++ oder C#

BenTheCure

Newbie
Dabei seit
Okt. 2020
Beiträge
4
Kurz zu mir: Fast 40 Jahre alt und bisher nur die grundlegenden Datentypen, Arrays , Methoden und Klassen anhand von Java im Unterricht gehabt.

Java gefällt mir allerdings nicht und daher wollte ich zu C++ oder C# wechseln. C# in Verbindung mit WPF soll ja für GUI Programmierung am ehestens geeignet sein, allerdings spricht bei C++ dafür das es hier plattformunabhängig kompiliert werden kann und mit WxWidgets gibt es ja auch GUI Framework.

Möchte zusätzlich gern ein paar Apps für mein iPhone schreiben, da weiß ich dafür am besten mit Swift komme. Allerdings würde ich dies noch ein bisschen verschieben wollen.
Derzeit nutze ich hauptsächlich Windows, allerdings hab ich Freunde welche meine Programme vlt. auch unter Mac einsetzen würden.

Nun stehe ich aber vor der Entscheidung, lieber weiter mit C++ oder mit C# beschäftigen. Mit gefällt das native kompilieren von der Vorstellung, das es einmal kompiliert auch auf dem Zielsystem läuft, ohne noch zusätzliche Frameworks zu installieren. Was würde mir vtl. In Zukunft, wenn ich mit Swift anfange zugutekommen?
 

dasbene

Lt. Junior Grade
Dabei seit
Okt. 2009
Beiträge
426
Auf deine Frage gibt es leider keine richtige Antwort. Das ist seit Jahrzenten schon Diskussionsthema bei den Softwareentwicklern.

Vieleicht wäre es erstmal gut zu wissen welche Art von Programmen und Apps du entwickeln möchtest. Es mag sich blöd anhören, aber solange keine rechenintensive Verarbeitung nötig ist und nur ein wenig Eingabe und Ausgabe gemacht wird ist eine Webanwendung(als App siehe PWA) evtl. sinnvoller. Falls eswas besonders Systemnahes ist oder auf spezielle Ressourcen zugegriffen werden muss sieht das natürlich anders aus, da denke ich wirst du mit C# unter Windows und Swift unter MacOS und iOS besser bedient sein.

Prinzipell ist es falsch sich auf eine bestimmte Sprache oder Framework zu versteifen. Man sollte statdessen bei jedem Anwendungsfall schauen was die "beste" Möglichkeit ist.
 

commandertabel

Cadet 4th Year
Dabei seit
Nov. 2011
Beiträge
119
Ich habe im Studium mit C/C++ anfgefangen, hab dann aber sehr schnell gemerkt, dass die eigentliche Programiersprache eher nebensächlich ist. Es ist viel wichtiger sich mit grundlegenden Entwurfsmustern (design patterns), Softwarearchitekturen, usw. zu beschäftigen. Jetzt im Beruf hab ich mit ner wilden Mischung aus C++, C#, JS, HTML, Python, Lua zu tun.
Ich würde vorschlagen mit C++ anzufangen, ist zwar nicht die einfachste Sprache, bietet aber die meisten Möglichkeiten. Am besten stellts du dir eine konkrete Aufgabenstellung und versuchst das umzusetzten. Dann kannst du auch mal mit verschiedenen Zielsystemem rumspielen, also mal was für nen Microcontroller, nen Rapi, usw. programieren (Stichwort cross-compiling). Später zu C# oder Swift zu wechseln ist dann relativ einfach.
 

feynman

Lieutenant
Dabei seit
Okt. 2010
Beiträge
523
Kann man schwer abschätzen was dir am Ende mehr bringt. Aber bevor du eine Münze wirfst würde doch auch eher zu C++ tendieren. Damit hält man sich viele Optionen offen. Mit C++ kannst du alles von bare-metal Mikrocontroller bis GUI-Anwendungen für fast jede Plattform abdecken.

C++ ist zwar sehr komplex. Aber man muss ja nicht alles auf einmal lernen. Ich denke, die einzlenen Teilaspekte kann man sich heutzutage sehr gut im Selbststudium aneignen (Bücher, youtube, ...). Und C++ schult sicher auch das allgemeine Verständnis, weil es eine sehr mächtige und hardwarenahe Sprache ist.

Ich würde nur darauf achten gleich mit einer halbwegs modernen Version von C++ zu starten, also zumindest C++14 oder eben C++17 (aktueller Standard). C++20 ist, glaube ich, auch schon quasi fertig.
 

BenTheCure

Newbie
Ersteller dieses Themas
Dabei seit
Okt. 2020
Beiträge
4
Als erstes Projekt hatte ich eine Software/Tool welche mir Informationen aus einem Verzeichnis ausliest und anzeigt ohne die einzelnen Ordnern, jeweils einzeln durchzuklicken.
Dies wird allerdings nur auf Windows benötigt.

@feynman
Wie finde ich heraus ob es sich um eine aktuelle C++ Version handelt. Tutorials gibt es ja zu Hause im Netz.

Buchempfehlungen liest man ja oftmals: "Der C++-Programmierer: C++ lernen – professionell anwenden – Lösungen nutzen" von Ulrich Breymann
 

Fortatus

Lt. Commander
Dabei seit
Juni 2009
Beiträge
1.430
@BenTheCure Den Standard, den ein Tutorial/Lehrwerk lehrt, herauszufinden, geht eigentlich nur auf folgende 2 Weisen:
1) Es wird vom Autor angegeben.
2) Jemand, der die Unterschiede in den Standards kennt, liest es sich durch und sagt es dir.

Hier gibt es eine recht aktuelle Liste, welche Bücher für welches Level empfehlenswert sind und welchen Standard sie nutzen: https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list
D.h. wenn du ernsthaft modernes C++ lernen willst, etwas Geld übrig hast und gut genug Englisch verstehst, wäre das recht gut: https://www.amazon.de/Programming-Principles-Practice-Using-C/dp/0321992784
 
Zuletzt bearbeitet:

ZuseZ3

Lt. Commander
Dabei seit
Jan. 2014
Beiträge
1.311
Nur um noch eine Sprache in den Raum zu werfen, ich bin vor einigen Monaten von C++ auf Rust umgestiegen und finde der wechsel ging mit einer ganzen Reihe von Vorteilen einher, die auch für dich relevant sein können.
Webeinsatz ist eines der 4 zentralen Einsatzgebiete und relativ ausgereift, gerade wenn du native compilierung so spannend findest, könnte das etwas für dich sein?
https://www.rust-lang.org/what/wasm

Die Dokumentation finde ich im durchschnitt auf einem deutlich höheren level und Rust verhindert die gröbsten Fehler die du in c++ einbauen kannst.
 

H4110

Cadet 3rd Year
Dabei seit
Apr. 2012
Beiträge
37
Wenn Du noch Einsteiger bist, wie Dein erster Satz vermuten lässt, und Du Deine Anwendungen auf möglichst viele verschiedene Plattformen bringen können willst, würde ich etwas empfehlen, was das leicht macht. Damit meine ich, nicht zusätzlich zum Programmieren auch noch plattformspezifische UI-Frameworks und Toolchains erlernen zu müssen. Also nach dem Motto "Write once, compile everywhere."

Eine Möglichkeit wäre C++ in Verbindung mit Qt. Qt ist komplett plattformübergreifend für Windows, Linux, macOS, Android und iOS (und mit Einschränkungen WebAssembly). Es hat eine eigene IDE namens Qt Creator, die ganz okay ist, und die Projekt-/Toolchain-Konfiguration recht zugänglich macht. Sie bringt auch viele Beispiel-Projekte mit. Ähnlich wie .NET WPF hat, hat Qt QML und einen guten grafischen Editor dafür.

Bei C# gibt es Xamarin, was Android, iOS und Windows abdeckt, aber damit habe ich null Erfahrung, vielleicht kann jemand anderes was dazu sagen.

Ebenfalls erwähnenswert ist Quasar. Das basiert zwar auf Web-Technologie, aber JavaScript bzw. TypeScript sind C-ähnliche Sprachen, Vue ist irgendwie WPF-ähnlich, und es verpackt Dir Deine Anwendung entweder als Website, Desktop-App (Electron) oder Mobile-App (Cordova), ohne dass Du Dich mit den zugrundeliegenden Tools und Frameworks großartig auseinandersetzen musst.

Kotlin ist unter dem Aspekt, möglichst viel abzudecken, auch unbedingt erwähnenswert, aber schau Dir das nur an, wenn Programmieren nicht nur ein Hobby sein soll.
 
Zuletzt bearbeitet:
Top