C / C++ oder C# was ist geeignet für mich?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • C / C++ oder C# was ist geeignet für mich?

      Guten Tag folgende Frage hätte ich mal und zwar ist mir das grundverständniss von vielen programmen klar wie ja das macht dies und das und so weiter aber ich möchte mich mal weiter "entwickeln" und auch den Code verstehen und zwar möchte ich zukünftig vlt mal in der Informatik schiene reinschnuppern und frage mich da natürlich was ist da am besten geeignet Programme zu schreiben?
      Vor allem sagen wir ma so Programme wie einen Internet Browser, Editoren, Musik Player etc. und was brauch man eig. um ein Spiel zu programmieren?
      Es gibt jede menge youtube tutorials auf die ich aber nicht aufbauen möchte ich will mir eins der großen Bücher kaufen wenn ihr mir eins empfehlen könnt bitte hier posten.

      Hoffe finde ein paar Antworten

      MFG

      Syndox
    • An deiner Stelle würde ich mit C# anfangen.
      Solltest du viel mit MCU's arbeiten (wovon ich aber gerade mal nicht ausgehe), würde ich C empfehlen.
      Beherrscht man eine Programmiersprache ziemlich gut, kann man sich fast mühelos in eine andere einarbeiten. Abgesehen von Programmiersprachen wie Assembler :D
    • Die Programmiersprache ist nur ein Werkzeug.
      Allerdings kann C++ Code relativ unübersichtlich aussehen
      weil historisch bedingt wenig Zeichen benutzt werden
      um ein Programm Aussage zu verleihen. Mit C kenne ich
      mich nicht wirklich aus und kann daher auch keine Antwort geben,
      auch die Syntax kenne ich nicht. Mit C# habe ich gute Erfahrungen als
      Einsteiger gemacht. Zum einen ist C# eine äußerst gut, durch Microsoft, genormte
      Sprache. Es macht einen heiden Spaß mit den einheitlichen Standardbibliotheken
      zu arbeiten. Visual Studio ist eine vollstände Entwicklungsumgebung, außerdem
      sind Grafische Oberflächen ein Grundbestandteil der C# Standardbibliotheken.
      Als Alternative zu C# könnte man noch Java nennen, allerdings kannst du hier
      sehen, dass die Sprache ständig weiterentwickelt wurde. In den Standardbibliotheken
      hast du für die gleiche Aufgabe verschiedenste Klassen und ansätze um Abwärtskompatiblität zu bewahren.
      Auch manche Sprachkonstrukte sehen im Gegensatz zu C# mehr seltsam als gut aus.

      Ich persönlich würde dir dennoch Java empfehlen, zu einen bist du vollständig Plattformabhäging (sofern VM vorhaden).
      Außerdem gibt es wirklich gute Literatur über Java. Die Syntax ist ähnlich zu C++/C#.
    • Mir geht es gerade genau so wie dir, ich hab mich aber in der Python-Szene niedergelassen. Vom Prinzip her hast du dort auch die LUA Funktionen bzw findest die Lösung wenn du im Internet suchst. Dennoch kannst du auch durch bestimmte Libs echt anspruchsvolle Programme und schnelle Spiele schreiben und durch die Open-Source Angelegenheit kannst du auch WebApps (statt PHP) und Android Apps umsetzen.
    • @Shape: Habe gehört das ansich Java 20 mal langsamer laufen soll als C# / C / C++ und ich werde ohne jeglichen zweifel auch das anschauen nur hab ich gelesen das C# vom Syntax etwas gemischt ist also das es ne gute Platform ist um später auf Java, C, C++ und andere leichter überzugehen kann jemand das so bestätigen?

      @MasterM: Von Python habe ich kaum bis wenig bis jetzt gelesen werde mich da aber mal ein wenig reinlesen.
      Aber ich dachte immer Android Apps werden mit Java geschrieben ?
    • Mit C# kannst du auch nach den Grundlagen dich in die Spielentwicklung etwas eintauchen lassen. Zum Beispiel bietet Unity eine ordentlich gute Umgebung, um einfache bis komplexe Spiele zu entwickeln. Die Programmiersprache ist nicht besonders kompliziert, wenn man schon einige Erfahrung in z.B. C++ oder Java hat.

      Die Sprache C bietet sich relativ gut für den Anfang an, da man relativ nah an die Hardwareprogrammierung rankommt und ohne Garbage Collector o. ä. auskommen muss. Man muss den Speicher selber organsieren und freigeben und man muss sich mit Pointern rumschlagen. Jedoch hat die Sprache den Vorteil, dass der Umfang der Grundlagen recht klein ist.

      In Java hast du eine enorme Standardbibliothek vorhanden, jedoch wirst du an den Grundlagen nicht vorbeikommen. Wegen meines Studiums muss ich ihn die Sprache eintauchen und ein wenig Kenntnisse erlangen. Die IDEs für Java sind recht angenehm und helfen enorm bei der Entwicklung und werden ziemlich dich mit schönen Warnungen zuschütten, wenn du ein try-catch (Exceptionhandling) nicht benutzt. Außerdem ist Java nicht mehr so langsam wie früher, kann sich selber während der Laufzeit optimieren und kommt an die Geschwindigkeit von z.B. C++ ran. Ein großer Vorteil von Java ist, dass jede Plattform den Bytecode ausführen kann.

      Kurz zu C++: Die Sprache ist weltweit vertreten und wird für viele Zwecke verwendet. Die Sprache erlaubt eine vielseitige Syntax und ist dabei trotzdem streng typisiert (Die Typisierung hat im Standard C++14 und C++11 etwas abgenommen).
    • Syndox schrieb:

      @Shape: Habe gehört das ansich Java 20 mal langsamer laufen soll als C# / C / C++ und ich werde ohne jeglichen zweifel auch das anschauen nur hab ich gelesen das C# vom Syntax etwas gemischt ist also das es ne gute Platform ist um später auf Java, C, C++ und andere leichter überzugehen kann jemand das so bestätigen?

      @MasterM: Von Python habe ich kaum bis wenig bis jetzt gelesen werde mich da aber mal ein wenig reinlesen.
      Aber ich dachte immer Android Apps werden mit Java geschrieben ?


      Von wem hast du denn dieses Märchen erzählt bekommen? Kann schon sein, dass Java Programme ein wenig langsamer laufen als
      Programme die in C# geschrieben wurden. Der Vergleich mit C++ ist allerdings ein wenig unfair.
      Die Syntax von Java und C# weisen starke gleichheiten auf. Python ist auch kein schlechter Anfang,
      die Sprache hat auch im Enterprise Sektor stark an Zulauf bekommen ud wird auch sehr gerne
      auf dem RPI oder Linux eingesetzt. Python könnte eine Ideale Anfangssprache sein ohne an Komlexität verzichten zu müssen.
      Denn mit Python ist zudem eine sehr mächtige Sprache.
    • Necktrox schrieb:

      Mit C# kannst du auch nach den Grundlagen dich in die Spielentwicklung etwas eintauchen lassen. Zum Beispiel bietet Unity eine ordentlich gute Umgebung, um einfache bis komplexe Spiele zu entwickeln. Die Programmiersprache ist nicht besonders kompliziert, wenn man schon einige Erfahrung in z.B. C++ oder Java hat.

      Die Sprache C bietet sich relativ gut für den Anfang an, da man relativ nah an die Hardwareprogrammierung rankommt und ohne Garbage Collector o. ä. auskommen muss. Man muss den Speicher selber organsieren und freigeben und man muss sich mit Pointern rumschlagen. Jedoch hat die Sprache den Vorteil, dass der Umfang der Grundlagen recht klein ist.

      In Java hast du eine enorme Standardbibliothek vorhanden, jedoch wirst du an den Grundlagen nicht vorbeikommen. Wegen meines Studiums muss ich ihn die Sprache eintauchen und ein wenig Kenntnisse erlangen. Die IDEs für Java sind recht angenehm und helfen enorm bei der Entwicklung und werden ziemlich dich mit schönen Warnungen zuschütten, wenn du ein try-catch (Exceptionhandling) nicht benutzt. Außerdem ist Java nicht mehr so langsam wie früher, kann sich selber während der Laufzeit optimieren und kommt an die Geschwindigkeit von z.B. C++ ran. Ein großer Vorteil von Java ist, dass jede Plattform den Bytecode ausführen kann.

      Kurz zu C++: Die Sprache ist weltweit vertreten und wird für viele Zwecke verwendet. Die Sprache erlaubt eine vielseitige Syntax und ist dabei trotzdem streng typisiert (Die Typisierung hat im Standard C++14 und C++11 etwas abgenommen).
      Mit Unity gib Ich ihm recht, denn in Unity3d kriegst Du auch sehr viel Support durch die Unity Docs und so weiter. Ich Persöhnlich code selber in Unity, jetzt 6 monate und es macht auch sehr viel spaß.
      "Man muss die Welt nicht verstehen, man muss sich nur darin zurechtfinden."
      - Einstein
    • Shape schrieb:

      Von wem hast du denn dieses Märchen erzählt bekommen? Kann schon sein, dass Java Programme ein wenig langsamer laufen als
      Programme die in C# geschrieben wurden. Der Vergleich mit C++ ist allerdings ein wenig unfair.

      Shape schrieb:

      Syndox schrieb:

      @Shape: Habe gehört das ansich Java 20 mal langsamer laufen soll als C# / C / C++ und ich werde ohne jeglichen zweifel auch das anschauen nur hab ich gelesen das C# vom Syntax etwas gemischt ist also das es ne gute Platform ist um später auf Java, C, C++ und andere leichter überzugehen kann jemand das so bestätigen?


      Hier ein Zitat von der Seite wo ich geschaut hab:
      Nachteile von Java

      Java ist als einzige Programmiersprache auch heute noch eine Interpretersprache. Das bedeutet in der Praxis, das Java zirka 10-20 mal langsamer als C oder Delphi ist. Alle Versuche bisher ein Officepaket in Java zu schreiben sind an dieser Schwelle gescheitert. Java ist wichtig wenn man über das Internet Benutzer an den eigenen Rechner anbinden möchte, z.B. um Online Bestellungen abzugeben oder Abfragen zu erlauben, für die private Erstellung eines "Stand Alone Programms" ist es derzeit viel zu langsam. Von der Syntax her lehnt sich Java stark an C++ an, ist jedoch nicht so fehleranfällig wie C, weil viele Dinge die in C gehen in Java verboten sind. Es gibt auch die Möglichkeit Java in echten Maschinencode zu übersetzen, jedoch ist dann die Plattformunabhängigkeit nicht mehr gegeben,


      Quelle: bernd-leitenberger.de/programmiersprachen.shtml
    • Syndox schrieb:

      Java ist als einzige Programmiersprache auch heute noch eine Interpretersprache. Das bedeutet in der Praxis, das Java zirka 10-20 mal langsamer als C oder Delphi ist.

      Das ist heute schlichtweg falsch.
      Java war ursprünglich eine reine Interpretersprache (um plattformunabhängig zu sein), ist heute aber durch Just-In-Time Compiling deutlich schneller geworden und kommt bei einigen Anwendungen (z.B. wo nicht viel Garbage Collection nötig ist) sogar an die Ergebnisse von C heran.

      @Topic:
      Java ist gut als Anfängerprogrammiersprache geeignet, weil sie einfach ist und viel gute Literatur vorhanden ist.
      Wenn du nicht gerade unter Linux/Mac programmieren willst, bist du aber, meiner Meinung nach, mit C# besser bedient. Das .NET Framework ist durch weniger Altlasten übersichtlicher als die Java Standardbibliothek und bietet auf Windows mehr Möglichkeiten. Außerdem hast du mit Visual Studio eine gute IDE zur Verfügung und kannst sehr leicht GUIs erstellen.
      Weiterhin kannst du mit C# problemlos auch kleinere bis mittelgroße Spiele mit DirectX schreiben.

      Von C/C++ als Einstieg würde ich eher abraten. Wenn du tiefere Zusammenhänge verstehen will, kommst du sicherlich nicht drum herum, dennoch werden dir als Einsteiger in C/C++ einige Steine in den Weg gelegt, sodass du, sobald dein Projekt aus mehreren Dateien besteht, so viele Fehlermeldungen bekommen wirst, dass du möglicherweise schnell die Lust daran verlierst.

      Python ist als Scriptspracge ohne Frage eine schöne Sprache, aber eher für kleinere Automatisierungsaufgaben geeignet als z.B. komplexe Spiele.
    • @Jusonex: Was mich by the way auch interessieren würde ist der neue V-MP Mod für GTA V der erscheinen soll. dort wird scheinbar Java bzw Squerill benutzt was für eine Sprache wäre dann auch noch sinvoll ? Java oder auch C# denn ich finde viel von Java und C# ähnelt sich vom Syntax kann mir auch nur so vorkommen aber ich finde die haben alle eine gewisse ähnlichkeit.
    • @Syndox: Ich glaub nicht das Jusonex eine Glaskugel besitzt. Es wird sicher eine Ewigkeit brauchen bis es einen spielbaren Multiplayer Mod geben wird.

      Beim Syntax gibt es hier keine gigantische unterschiede. Der große Vorteil bei Java wäre die Platformunabhängigkeit. Bei der Performance ist es immer eine streit Sache aber meistens ist es eher wichtig das es überhaupt funktioniert. Ich hab gehört das sie alle möglichen Scriptsprachen implementieren wollen nur das ist ein riesiger aufwand und ich glaub nicht das sie sich das antun.
      If A equals success, then the formula is A equals X plus Y plus Z. X is work. Y is play. Z is keep your mouth shut.
    • @MegaThorX: Ich rede ja auch nicht von einer sache die nicht vorhanden wäre den Mod gibt es zum teil ja schon bzw die script sprache ist ja schon bekannt schon alleine deswegen frage ich ja ob wenn ich C# lerne auch schnell auf Java und andere umsteigen kann wenn ich diese erstmal erlernt hab.

      Zu gta v gibt es
      scheinbar aber wieder 2 mods eine funkt mit Lua und die andere mit Squerril bzw Java
    • Syndox schrieb:

      V-MP Mod für GTA V der erscheinen soll. dort wird scheinbar Java bzw Squerill benutzt was für eine Sprache wäre dann auch noch sinvoll

      Es gibt mehrere Teams, die einen MP machen wollen. Bei GTA:MP (ehemals V:Multiplayer/v-multiplayer.org) soll jedoch primär Javascript (Java und Javascript haben bis auf den Namen wenig miteinander zutun).
      Javascript zu lernen ist sicherlich nicht schlecht. Im Web kommst du nicht drumherum und mit node.js scheint der Trend ja auch in Richtung serverseitiges Javascript zu gehen.
      Squirrel lohnt sich, meiner Meinung nach, nicht wirklich. Zum einen gibts nur wenige Anwendungen, die Squirrel nutzen, zum anderen hat Squirrel sehr viele Gemeinsamkeiten mit Lua und sollte (falls du es wirklich mal brauchst) leicht und schnell für dich zu erlernen sein.

      Syndox schrieb:

      Java oder auch C# denn ich finde viel von Java und C# ähnelt sich vom Syntax kann mir auch nur so vorkommen

      Da hast du recht...wurde aber im Thread auch schon gesagt.
    • @Syndox: Du hast Recht, Android Apps werden normalerweise in Java geschrieben. Die Grundfunktionen einer App kannst du aber auch mit Python oder zB C++ schreiben, für Python habe ich Kivy gefunden und mich etwas eingelesen, jedoch noch keine App programmiert
    • Die Syntax von Java und C# weisen starke gleichheiten auf.

      Das liegt vielleicht auch dadran, dass C#
      teils von Java abstammt.

      Hier ist eine Liste der Bücher die ich persönlich habe und grad am durchlesen bin. Folglich werde ich zu allen ein Wort sagen:

      C++/CDieses Buch ist dazu geeignet dir beide Sprachen C++/C näher zu bringen. Hierbei wird jedoch keine Grafikprogrammierung vorgenommen, nur reine Theorie. Es ist gut um einzusteigen, da alles gut erklärt ist und es mit passenden Beispielen und Aufgaben geschmückt ist.

      Raspberry PiDieses Buch ist klein, aber für seinen Umfang relativ gut aufgebaut. In diesem Buch wird mit einem Raspberry Pi gearbeitet, mit verschiedenen Beispielen und Progammiersprachen. Hierbei wird der Aufbau eines Pi´s beschrieben und du kannst mit diesen kleinen Gerät sehr viel anstellen und auch mit C/C++ arbeiten, sowie mit Phyton und Shell. Es gibt verschiedene Betriebssysteme wobei gerade alle auf Linux basieren. Dieses Buch lehrt dich hinsichtlich sehr viel mit Hardware. Wenn du jedoch Geld hast hol dir die größere Version.

      JavaDieses Buch beschäftigt sich mit Java. Aus diesem Buch konnte ich viele Informationen entnehmen und hat mir relativ gut geholfen Einblicke in die Sprachen zu verschaffen, sowie meine Arbeit mit der Objekt Orientierten Programmierung kurz OOP zu verbessern, da es relativ einfach erklärt ist. Hierbei werden auch am Ende mit 2D Grafiken sich beschäftigt.

      Das dritte und letzte Buch welches ich dir ans Herz legen möchte ist: Hacking - Die Kunst der ExploitsFür alle die sagen: "Bäh, Hacken das ist voll böse und so. Lern das nicht. Wir wollen nichts mit Hackern zu tun haben" können jetzt bitte aus dem Thread herausgehen und machen was sie sonst so machen. Hacking zu lernen ist nicht böse. Du lernst, damit die Methoden kennen und kannst dich gegebenenfalls dagegen verteidigen. Dieses Buch beschäftigt sich mit C++/C und somit kannst du relativ einfach ein paar praktische Erfahrungen mit den 2 Sprachen erlernen.

      Mit freundlichen Grüßen
      Iven