Mit welcher Sprache anfangen?



  • C++ ist imho eine sehr gute Programmiersprache und für mich immer erste Wahl. Allerdings ist sie halt von Profis für Profis gemacht. Damit lassen sich mit dem entsprechenden Know-How die besten Programme schreiben. Schnellere Erfolge und mehr Erfolgserlebnisse wirst Du mit Sicherheit mit anderen Sprachen machen.

    Wenn Du Profi werden willst, dann musst Du sowiso mehrere Sprachen lernen. Daher empfehle ich, zuerst mit einer einfacheren Sprache anzufangen. Python ist wahrscheinlich nicht schlecht.

    Wenn Dein Ziel C++ sein sollte, dann lerne es bitte vor Java. C++-Programme von Java-Programmierern sehen eher unschön aus.

    Just my 2c.



  • tntnet schrieb:

    C++-Programme von Java-Programmierern sehen eher unschön aus.

    Interessant. Hast Du mal ein Beispiel? ...umgekehrt stimmt das übrigens auch. 😉



  • Gregor schrieb:

    tntnet schrieb:

    C++-Programme von Java-Programmierern sehen eher unschön aus.

    Interessant. Hast Du mal ein Beispiel? ...umgekehrt stimmt das übrigens auch. 😉

    Beispiel: http://www.galileocomputing.de/openbook/javainsel5/

    Darin sind C++ listings, mit denen man C++ und Java vergleicht. Dabei sieht man zugleich wie wenig Ahnung der Autor (Javafetischist udn C++-Verfechter) von C++ hat. Der benutzt C casts in C++. Außerdem ignoriert der Autor das vorhandensein der STL. Das einzige was der Autor darstellt, sind die C-Altlasten mit denen er absichtlich fehleranfällige listings schreibt.

    (Er verwnedet zB ein viel zu kleines array anstatt std::string oder std::list etc)

    So viel dazu...

    Java is ansich ne gute sprache....nur wenn da nicht diese Java-Fanatiker wären, die selber keinen Plan haben aber selber schwachinn von sich geben.



  • beispielgeber schrieb:

    Gregor schrieb:

    tntnet schrieb:

    C++-Programme von Java-Programmierern sehen eher unschön aus.

    Interessant. Hast Du mal ein Beispiel? ...umgekehrt stimmt das übrigens auch. 😉

    Beispiel: http://www.galileocomputing.de/openbook/javainsel5/

    kann da keinen solchen vergleich finden...
    kannst du vielleicht mal nen richtigen link mit solchen beispielen posten?
    danke



  • Gregor schrieb:

    tntnet schrieb:

    C++-Programme von Java-Programmierern sehen eher unschön aus.

    Interessant. Hast Du mal ein Beispiel? ...umgekehrt stimmt das übrigens auch. 😉

    Das soll kein Angriff auf die Java-Leute sein. Und auch kein Anstich für einen Flame-war. Es gibt halt nur ein paar konzeptionelle Unterschiede, die den Wechsel von Java zu C++ schwieriger machen, als umgekehrt. Ich denke da in erster Linie an die Resourcenverwaltung. In Java erstellt man Klassen grundsätzlich mit "new".

    In C++ kann man das auch machen. Daher machen das viele Java-Programmierer in C++ auch. Das ist denen halt vertraut. Das führt aber in C++ schnell zu memory-leaks.

    In C++ vermeide ich "new". Ich lege Klassen auf dem Stack an oder halte sie in STL-Containern oder so. Wenn es denn nicht anders geht, dann nehme ich Smart-Pointer. In C++ ist halt ein sorgfältiger Umgang mit den Resourcen unbedingt notwendig. In Java nimmt einem das die Garbage-Collection ab.

    Ich finde es sinnvoller, erst den verantwortungsvollen Umgang zu lernen, um dann zu sehen (und möglicherweise schätzen lernen), was einem die GC abnimmt.

    Und zum Schluß nochmals die Bitte: macht keinen Flame-war draus.

    Tntnet



  • tntnet schrieb:

    Ich finde es sinnvoller, erst den verantwortungsvollen Umgang zu lernen, um dann zu sehen (und möglicherweise schätzen lernen), was einem die GC abnimmt.

    Dein Wort in meines Berufsschullehrers Ohr. 🙄 Wir werden nur Java und C# lernen, nach dem wir mit dem VBSkript durch sind. Welches wir als Einstieg genutzt haben um von der Theorie des UML zur praktischen Anwendung zu kommen.



  • beispielgeber schrieb:

    ...wie wenig Ahnung der Autor (Javafetischist udn C++-Verfechter) von C++ hat....

    Irgendwie kann ich kaum glauben, dass es ein C++-Verfechter ist ....

    Gruß,

    Simon2.



  • C++ ist eher so ein Mischmasch, in dieser Sprache hast du die meiste Freiheit. Nach dem Motto: Gibt es? Kann man es irgendwie gebrauchen? Also rein in die Sprache. Ausserdem hat C++ leider viel zu viel historischen Balast.

    Frage mich sowieso warum es den hat, C Code ist doch nicht zu 100% kompatibel mit C++, also wieso hat C++ überhaupt den Balast.



  • Simon2 schrieb:

    beispielgeber schrieb:

    ...wie wenig Ahnung der Autor (Javafetischist udn C++-Verfechter) von C++ hat....

    Irgendwie kann ich kaum glauben, dass es ein C++-Verfechter ist ....

    Gruß,

    Simon2.

    Diese ganze Sprachen-Hetzerei geht mir auf den Sack.



  • tntnet schrieb:

    ...
    Ich finde es sinnvoller, erst den verantwortungsvollen Umgang zu lernen, um dann zu sehen (und möglicherweise schätzen lernen), was einem die GC abnimmt....

    Hi,

    vorab: Ich teile im Wesentlichen Deine Meinung und bin eigentlich großer C++-Fan (und kein besonderer Java-Verehrer) ... aber:
    Ich frage mich, inwieweit das tatsächlich noch zutrifft.
    Es stimmt, wenn eine neue Technik/höhere Abstraktionsebene eine alte/niedrigere ablöst (und das tut "automatische Ressourcenverwaltung" mehr sicher als langsam mit der "manuellen Ressourcenverwaltung"), dass es eine zeitlang noch hilfreich ist, die alte zu beherrschen ... aber irgendwann eben auch nicht mehr.
    Immerhin braucht heutzutage niemand mehr zu wissen, was new/malloc im Hintergrund tun (auf OS- oder ASM-Ebene), was passiert, wenn man ein Filehandle erzeugt, wie Ausgaben auf der Konsole landen, .... eigentlich braucht man IMHO auch nicht mehr unbedingt cString-Mimik zu beherrschen, wenn man std::string anwenden möchte.

    So wurden immer schon Techniken abgelöst ... bis hin zum kompletten "Vergessen" (bzw. Auslagern auf einige wenige Experten) und ich frage mich, ob das Thema "Ressourcenverwaltung" nicht auch dazugehört ?

    Andererseits können natürlich die Thema "Lifecycle" und "Ownership" auch Designprinzipien vermitteln, die mehr also nur Techniken sind ....

    Wie gesagt: Ich bin da ein wenig zwiegespalten, inwieweit dieser Ansatz "vom Kleinen zum Großen" wirklich so wichtig ist, wie oftmals behauptet (wer von uns hat denn wirklich noch aus Halbleitern Transistoren durchgerechnet, aus Transistoren Operatoren und aus denen komplexere Bauteile zusammengbaut ... und das in diesen Schritten lückenlos bis zum garbage collector weitergeführt ?

    Gruß,

    Simon2.



  • beispielgeber schrieb:

    Simon2 schrieb:

    beispielgeber schrieb:

    ...wie wenig Ahnung der Autor (Javafetischist udn C++-Verfechter) von C++ hat....

    Irgendwie kann ich kaum glauben, dass es ein C++-Verfechter ist ....

    Gruß,

    Simon2.

    ....

    Mach das mal. Und fang beim Duden unter dem Begriff "verfechten" an.

    Gruß,

    Simon2.

    P.S.: "Verlinken lernen" dürfte auch noch auf Deinen Lehrplan wandern.



  • Boh, ey! Gibts hier keine Woche ohne Java vs. C++??? Liebe C++ Kollegen: bitte gewöhnt euch daran, niemals das Wort Java in irgendeinem Bezug zu C++ nehmen. Ruckzuck sind die Java-Freaks im Anmarsch.



  • Simon2! Niemand will eine Mauer bauen. 😃 Im ernst, wo steht das C++ keine GC nutzen kann. Es gibt ja GCs für C++, und wer sie nutzen will, soll das bitte auch tun. Niemand will eine Maue... ehm, niemand will GC verhindern. Weiterhin wird im C++2009 offiziell ein GC als Option reinkommen. (ist zwar noch nicht abgesegnet, wird aber schon schief gehen) Ähnlich wie in C++/CLI, kann man sich dann entscheiden, ob man GC nutzen will oder nicht.

    Dieses GC-Geheule unter C++ geht mir irgendwie auf den Senkel, weil niemand die Möglichkeit annimmt, und sich Hans Boehms GC runter lädt. Benutzt ihn doch, wenn ihr GC haben wollt. Gut, kommen wieder ein paar Schlauberger an, und haben an der Hans Boehmischen Implementierung rum zu nörgeln. Dann kann man ihnen auch nicht weiter helfen. Dann benutzt einfach eine andere Sprache (ich sage nicht welche, weil das gibt wieder Flamewar) und gut ist. 😃



  • Artchi schrieb:

    Boh, ey! Gibts hier keine Woche ohne Java vs. C++??? Liebe C++ Kollegen: bitte gewöhnt euch daran, niemals das Wort Java in irgendeinem Bezug zu C++ nehmen. Ruckzuck sind die Java-Freaks im Anmarsch.

    Und du giest noch schön Spiritus drauf 😉



  • Ohje der arme McKing wird keine der beiden Sprachen anfassen, wenn ihr so weiter macht.. 🙄

    <auchmalgernflamenmöchte> Wozu braucht C++ nen gc? es gibt doch den gcc </möchtegernflameende> 🤡



  • Ich plädiere dafür, das die Wörter Java und C++ zensiert werden, sobald sie in einem Posting auftauchen. 💡 ⚠ 😃



  • Artchi schrieb:

    Ich plädiere dafür, das die Wörter Java und C++ zensiert werden, sobald sie in einem Posting auftauchen. 💡 ⚠ 😃



  • Artchi schrieb:

    Simon2! Niemand will eine Mauer bauen. ...

    😕
    Ich glaube, zu diesen "XvsY"-Flamewars kommt es eher, weil Dinge mißverstanden werden ... und teilweise auch mißverstanden werden w/sollen.

    Ich habe überhaupt nicht über C++ oder Java gesprochen (und auch GC nur als Beispiel genommen).

    Ich wage halt nur zu bezweifeln, dass man heutzutage noch große Schwierigkeiten als Programmierer bekommt, wenn man das Programmieren ohne GC nicht gewohnt ist.
    Anders gesagt: Ist es wirklich noch wichtig, "Programmieren ohne GC" gelernt zu haben ?
    Bis vor einiger Zeit hätte ich das noch absolut bejaht ... aber inzwischen bin ich da zunehmend skeptischer.
    (Und das sage ich als jemand, der das so gelernt - und fast noch nie einen GC benutzt hat)

    Gruß,

    Simon2.



  • Simon2! Dann hast du mein Posting nicht verstanden. Ich habe dich doch in deiner Frage sogar bestärkt! Nein, ich habe dir sogar einen Lösungsweg gezeigt. tntnet hat sogar geschrieben, das er seine Objekte nicht mehr selber aufräumt, in dem er zwei andere Lösungen genannt hat.

    Lösungswege in C++, um seine Objekte nicht mehr selber aufzuräumen: 3.
    Wer da immer noch über eigenes verpflichtendes Objekt-Management motzt, ist blind.

    Also, um deine Frage noch mal zu beantworten: Nein, niemand muß heute lernen, selber Objekte aufzuräumen.

    Und das völlig Sprachübergreifend gesehen. 😉



  • Artchi schrieb:

    ...ich habe dir sogar einen Lösungsweg gezeigt...

    Ich hatte doch nichtmal ein "zu lösendes Problem".
    Und tntnet hat eben das Statement aufgestellt, das ich hinterfragte und dem Du widersprichst mit:

    Artchi schrieb:

    ...
    Also, um deine Frage noch mal zu beantworten: Nein, niemand muß heute lernen, selber Objekte aufzuräumen.
    Und das völlig Sprachübergreifend gesehen. 😉

    Dann ist doch alles gut, oder ? 🙂

    Gruß,

    Simon2.


Anmelden zum Antworten