Mit welcher Sprache anfangen?



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



  • Simon2 schrieb:

    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.

    ich glaube schon...



  • Artchi schrieb:

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

    seconded!



  • tntnet schrieb:

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

    Zu einem Flamewar gehören immer mehrere Leute und i.d.R. reagiere ich nur. Ich stelle vergleichende Aussagen von anderen Leuten in Frage oder sage dazu meine Meinung. Vielleicht solltest Du Dir also lieber selbst an die Nase fassen, wenn Du plötzlich derartige vergleichende Aussagen bringst. Wenn überhaupt, dann wärst DU der Auslöser des Flamewars. Wenn Du eine Meinung vertittst, dann musst Du auch damit rechnen, dass jemand darauf reagiert und die gegenteilige Meinung vertritt. Da bringt auch ein "Aber das soll jetzt kein Flamewar werden" nichts mehr. Glaubst Du, Du kannst durch so eine Aussage andere dazu bringen, eine Meinung einfach so stehen zu lassen, obwohl sie den Sachverhalt möglicherweise ganz anders sehen?

    BTW: Die Frage nach der Nutzung von "new" usw.. ist eigentlich keine Frage danach, von wo man kommt, sondern eher eine Frage danach, wann man sich C++ beigebracht hat. Guck Dir mal ältere C++ Bücher an. Die Art, C++ zu programmieren, hat sich über die Jahre hinweg massiv weiterentwickelt. ...durchaus in eine sehr interessante Richtung. Entsprechend kann man auch vergleichende Codestücke in der Javainsel oder so sehen: Die sind von Buchversion zu Buchversion einfach mitgezogen worden, ohne dass sie nochmal besonders beachtet oder verändert wurden. Und: In welcher Reihenfolge sich der Autor mit den beiden Sprachen beschäftigt hat, ist mir nicht auf Anhieb klar. Ich vermute eher, dass er C++ früher gemacht hat als Java. ...aber ok: Lassen wir das.



  • @Gregor: und ich soll Deine Kommentare unkommentiert lassen? Das kannst Du nicht erwarten. Wir sind hier schliesslich in einem Diskussionsforum.

    Ich versuche, meine Aussagen stets sachlich und ohne Seitenhiebe, wie z. B. "...umgekehrt stimmt das übrigens auch." zu formulieren (oh - das könnte ein Seitenhieb gewesen sein 😉 ).

    Daß Java-Programmierer ihre liebe Not damit haben, sich das new abzugewöhnen, ist meine persönliche Erfahrung. Das wollte ich hier einfach mal einwerfen. Ich glaube nicht, daß das unbedingt einen Flame-war auslösen muß.

    Wobei ich diesen Thread gar nicht so auffassen möchte. Hier kommt doch wieder einmal eine sachliche Diskussion rüber, die den originalen Frager, der sich über verschiedene Programmiersprachen informieren möchte, helfen sollte.

    Und nun wieder zum Flame-war. Oh sorry - ich meinte natürlich zum Thema.

    Was ich an C++ sehr schätze sind Destruktoren. Die gab es auch schon von anfang an. Daher ist die Verwendung von "new" ausserhalb von engen Grenzen (eine Klasse nämlich) in der Regel nicht notwendig. Das hat nichts damit zu tun, wann man C++ "sich beigebracht hat", bzw. gelernt hat (eigentlich komisch, daß man andere Dinge lernt und Programmieren bringt man sich bei 🤡 ),

    Bevor Templates in C++ einzug gehalten haben, habe ich mir 2 Makros geschrieben: DEFINE_ARRAY und DECLARE_ARRAY, welches typsichere dynamische Vektoren definiert haben. Das war so ca. 1992. Auch eine String-Klasse habe ich geschrieben. Von daher sehe ich es noch nicht mal so, daß sich die Programmierung in C++ so massiv verändert hat. Natürlich verwende ich heute std::vector und std::string. Aber das Grundprinzip ist gleich geblieben. Und auch das schätze ich an C++.

    Diese Konstanz der Sprachdefinition ist doch einfach Klasse. Programme, die vor 15 Jahren geschrieben wurden, kann man mit modernen C++-Compilern noch compilieren und ausführen. Und ich denke, daß wir die Programme, die wir heute schreiben auch in 15 Jahren noch verwenden können. Diese Konstanz müssen andere Programme erst mal beweisen. Da habe ich so meine Bedenken.

    Tntnet



  • Gregor schrieb:

    In welcher Reihenfolge sich der Autor mit den beiden Sprachen beschäftigt hat, ist mir nicht auf Anhieb klar. Ich vermute eher, dass er C++ früher gemacht hat als Java.

    ich kann mir auch gut vorstellen, das für oop-fans, die sich einst mit c++ herumgequält haben, java oder C# wie eine offenbarung sein muss 🙂


Anmelden zum Antworten