Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

11

10.09.2014, 01:38

Habe mal gehört das wenn man mit C++ beginnt wäre das nicht schwer auf die anderen Sprachen umzusteigen.
Würde am liebsten mit C++ beginnen.


Zum 1. Satz:
Das ist in jeder guten Sprache so
Zum 2. Satz:
Wozu dann der Thread? Spricht nichts dagegen mit C++ anzufangen, hat noch keinen umgebracht ;)

C lernen und dann C++ zu lernen halte ich nicht für sinnvoll. Entweder du lernst C und machst dann auch C oder du lernst direkt C++.

Zitat

C++ ist für mich ein wenig frustrierend weil ich noch nicht einmal bei der Gui Programmierung bin und das auch noch ein wenig dauert.

Das ist aber in jedem ordentlichem Lernvorgang so. "GUI Programmierung" ist halt schon ein fortgeschrittenes Thema.

Und ja, man kann jetzt hier Debatten anfangen bzgl. C++ vs C# vs Java... Fakt ist es ist egal womit du anfängst und später, wenn dus draufhast, packst du eh alles davon mal an und kennst dich vielleicht in einem besser aus als im anderen, aber wirst am Ende genauso fähig sein. Ist Wichtig ist nur dass du am Anfang bei einer Sache bleibst und das erstmal ordentlich lernst. Also nimm irgendeins und leg los^^
WIP Website: kevinheese.de

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

12

10.09.2014, 04:46

Zitat

C lernen und dann C++ zu lernen halte ich nicht für sinnvoll.
Generell halte ich das Lernen von C nicht für sinnvoll, da die Sprache zu viele Möglichkeiten bietet, alles kaputt zu machen, und zu wenige Möglichkeiten bietet, sich davor zu schützen. Praktisch allen erdenklichen Kleinkram des Alltags muss man sich selbst basteln oder aus externen Bibliotheken beziehen, darunter z.B. Zeugs wie std::vector und std::unordered_map. Und obendrein lese ich viel zu oft von Bugs in C-Programmen, die mit der STL so nie aufgetreten wären, darunter Buffer Overflows und falsch verwurschteltes oder unvollständiges Exception Handling.

Mit C-Programmen kann man von jeder Sprache aus kommunizieren, insbesondere recht "bequem" über C++, was "Aber C ist nunmal die Sprache von XYZ!" als potenzielles Argument pro C vorab entkräftet. Viele Teile von C sind nunmal auch Teil von C++, aber eben genau jene Teile sind in C++ zugleich wesentlich eleganter und robuster gegeben.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

13

10.09.2014, 10:32

Mache ich mal Werbung für ein Projekt eines unserer Mitglieder. Wie wäre es mit C#. Dann kannst du Fetzes Duality Engine benutzen. Ich habe sie mir vor kurzem mal angeguckt und mir gefällt sie gut. Werde auch weiterhin damit rum spielen. Sie erinnert doch stark an Unity was mir ganz gut gefällt. Da haben wir schon die nächste Engine. Unity. Ist zwar eher für 3D geeignet, aber man kann damit auch 2D Spiele ohne weiteres entwickeln. Auch C#. Mein Vorschlag wäre mit C# zu beginnen. Hätte ich mir im nachhinein für mich auch gewünscht. Aber da hat auch jeder ein wenig eigene Vorlieben und irgendwo musst du finden was dir Spaß macht. Zum Ziel kommst du mit allen Sprachen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

14

10.09.2014, 11:02

Mal eine ernst gemeinte Grünschnabelfrage: Wie kommt es eigentlich, dass wir im Jahr 2014 so viele Programmiersprachen haben, die auf allen möglichen Geräten funktionieren, aber man sich nicht auf eine Sprache geeinigt hat, um diese zur Weltprogrammiersprache wie Englisch im Sinne der Weltsprache allgemein zu benutzen? Ich meine, ich beschäftige mich seit kurzem (vlt. 1 Monat) intensiv mit Programmieren und stand auch vor dem "Womit fange ich an"-Punkt. Ich persönlich habe in C++ nur Vorteile gesehen und mich dafür entschieden. Ich verstehe auch, dass die Sprache schwer ist, soweit ich das natürlich einschätzen kann, aber wenn man - nur als Beispiel - C++ international als primäre Sprache für alles mögliche unterstützen würde, dann gäbe es eine fantastische Dokumentation in allen Sprachen, man müsste nicht auf externe Bibliotheken und Frameworks (hoffentlich benutze ich die Begriffe im Kontext richtig) zugreifen, um beispielsweise im Browser oder mobilen Bereich unterwegs zu sein.

C++ war hier nur ein Beispiel, ich hätte genau so Java, C#, usw. nehmen können. Ich sehe lediglich keinen Vorteil, eine große Palette an Programmiersprachen anzubieten, wenn man sich auf eine Sprache einigen könnte, die alles übernehmen würde. Auf Geschwindigkeit, Performenz und Grenzenlosigkeit getrimmt. Nur um zu meinem Beispiel mit C++ zurück zu kommen: Java vs. C++ ist ein anstrengendes Thema im Netz, gerade für Neulinge. Und oft ist der größte Vorteil von Java, dass es OS-unabhängig ist. Das was ich über C++ weiß ist, dass es auch OS-unabhängig ist, solange man die grundlegenden Funktionen benutzt. Dabei ist C++ viel perfomanter als Java. Wenn nun alle Entwickler C++ unterstützen würden und quasi die grundlegend zu unterstützenden Funktionen ausbauen, dann hat man doch im Grunde ein sehr perfomantes Entwicklungswerkzeug, welches überall lauffähig ist.

Zitat von »Optimus Prime, 42 v. Chr.«

Bekämpft Sarkasmus mit Sarkasmus!

Sylence

Community-Fossil

Beiträge: 1 663

Beruf: Softwareentwickler

  • Private Nachricht senden

15

10.09.2014, 11:29

Weil Programmiersprachen eben nur Werkzeuge sind. Es gibt ja auch schon zig verschiedene Arten von Schrauben und dazugehörigen Schraubendrehern. Bei Programmiersprachen ist das eben nicht anders.

Mit C++ eine Webanwendung zu erstellen ist zwar möglich, aber zum Beispiel mit PHP deutlich einfacher.
Mit dem Hammer bekommst du die Schraube ja auch irgendwie in die Wand ;)

Und je nachdem woran du die Definition von Weltsprache fest machst: Es gibt mehr Leute auf der Welt, die Chinesisch sprechen, als Leute die Englisch sprechen ;)

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

16

10.09.2014, 11:30

Auch wenn es Offtopic ist, solange sich das hier nicht ausdehnt ist das ok wenn wir das kurz hier beantworten. Ansonsten lagere ich es aus.
Einerseits gibt es sicherlich so viele Sprachen, weil es Mode ist eigene Sprachen zu haben. Microsoft hat sich mit C# was eigenes geschaffen. Hinzu kommen VB.Net F# und Co. Apple hat jetzt auch seine eigene Kiste. Unity hat Unityscript (auch wenn es oft Javascript genannt wird) und so weiter. Andererseits gibt es eine Berechtigung für verschiedene Sprachen. Guck dir zum Beispiel mal C++ an. Du kannst noch einigermaßen nah an der Hardware entwickeln. Hast gute Kontrolle über den genutzten Speicher und so Geschichten. Möchtest du irgendwelche Dinge entwickeln wo das sehr wichtig ist kannst du mit C++ top arbeiten. Jetzt stell dir vor du möchtest eher eine GUI Anwendung entwickeln. Beschränken wir uns mal auf das Frontend. Das macht mit C++ eher weniger Spaß und du musst dich mit technischem Zeug rum schlagen was hier eigentlich eher uninteressant ist. Da macht dann eine Sprache wie zum Beispiel C# mehr Sinn. Möchte man jetzt aber eine Anwendung in C# entwickeln bei der wieder technische Dinge wichtig werden (Speicherverwaltung etc) dann wird es hier wieder kompliziert. Gehen wir einen Schritt weiter und betrachten den Browser. C++ oder C# Clientseitig für Scripting einzusetzen wäre zwar möglich, aber aufwendig, nicht schön zu benutzen, aufwendig für den Browserentwickler zu integrieren und so weiter und so weiter. An sich sollten so Sprachen dann auch angepasst/eingeschränkt werden. Du willst hier nicht alles was möglich ist auch erlauben. Wenn man jetzt hier mal Javascript betrachtet, ergibt das schon viel mehr Sinn. Auch Serverseitig ist das so eine Sache. Du kannst deinen Server in C++ schreiben. Das hat man früher auch teils gemacht, aber wenn man sich dann mal Java und Javas Servlets betrachtet ist das schon eine ganz andere Sache. Genau so mit PHP. Hiermit kann ich viel besser auf meine Bedürfnisse eingehen.
Was ich damit an sich sagen will. Nicht jede Sprache hat unbedingt eine Berechtigung zu existieren. Einige Sprachen sind einfach unsinnig, doppelt, und und und. Aber es gibt viele Sprachen die sich stark unterscheiden und diese haben Teilweise ihre nützlichen Anwendungsgebiete. Deshalb ist die Frage nach der richtigen Sprache auch etwas was man eigentlich nicht beantworten kann. Vor allem da man am Anfang schlecht einschätzen kann welche Vor-/ Nachteile mir welche Sprache bringt. Viele denken sich bei C++ dass die Kontrolle super ist. Unterschätzen aber den Mehraufwand. Den bemerken sie auch normal nicht bis sie mal längere Zeit mit einer höheren Sprache gearbeitet haben. Genau so anders rum. Man bemerkt wenn man mit Java oder C# anfängt eigentlich nicht dass mehr Kontrolle gut sein kann. Zumindest so lange nicht bis es mal gebraucht wird.

Ich persönlich rate normal zu Sprachen wie C# für den Anfang. Kontrolle ist super, für Anfänger aber nicht wichtig. Ich denke für die meisten ist es eher überfordernd. Ich halte es halt für sinnvoller erst mal leichter anzufangen und die Sache an sich zu lernen. Und wenn man dann hinterher eigene Renderer oder so Zeug schreiben will kann man halt zu C++ wechseln. Aber das mögen viele Leute ganz ganz anders sehen und ich habe die Weisheit ja auch nicht gelöffelt.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

17

10.09.2014, 11:48

Danke für die ganzen antworten und nochmal zu dem die Sprache ist unwichtig für die Art, ich hatte ein wenig bedenken wegen der Geschwindigkeit. Werde mit Java beginnen (wegen APP Programmieren)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

10.09.2014, 11:54

Ich persönlich würde von Java abraten, da man dort besonders als Anfänger imo Gefahr läuft, sich einen nicht besonders guten Programmierstil anzugewöhnen. Meine Empfehlung wäre C++.

19

10.09.2014, 12:54

Bin dann ein wenig überfragt. Für mich wäre C++ auch am angenehmsten, aber ich würde auch richtig gerne Apps programmieren und ich denke ich werde die Grenzen von Java auch bei meiner Spiele programmierung am PC nicht erreichen

Evrey

Treue Seele

Beiträge: 245

Beruf: Weltherrscher

  • Private Nachricht senden

20

10.09.2014, 13:27

Wenn du unbedingt für Android entwickeln möchtest, so ist Java nunmal leider die Sprache der Wahl. Ansonsten würde ich als eingefleischter C++-Programmierer doch eher zu C# raten. Möchte man dann doch C++ lernen - was man auch für Android nutzen kann - empfehle ich zunächst, an Desktop-/Konsolen-Anwendungen zu üben, frei von welche-APIs-auch-immer-Goofl-bereit-stellt. Und du solltest früh damit anfangen, C++11/C++14 zu lernen, da diese Sprachversionen nochmals mehr Zeugs bieten, um Programme recht simpel schlanker und robuster zu gestalten.

Ansonsten: Schnapp dir jetzt einfach das erste Buch zur Programmierung, das du finden kannst, und lerne halt diese Sprache.

C-/C++-Quelltext

1
2
3
4
int main(int _argc, char** _argv) noexcept {
  asm volatile("lock cmpxchg8b %eax");
  return 0;
} // ::main
(Dieses kleine Biest vermochte einst x86-Prozessoren lahm zu legen.)

=> Und er blogt unter Hackish.Codes D:

Werbeanzeige