[C/C++] const auf integrale typen in einer Funktion sinnvoll?
-
Nexus schrieb:
Du hast nämlich irgendwie die Fähigkeit, immer die irrelevantesten Aspekte von C++ zu kritisieren. Dabei gäbe es doch wirklich genügend Kritikpunkte, aber damit müsste man sich eben befassen.
Irgendwie muss ich jetzt an Archie denken, der hatte das bei solchen diskussionen auch immer behauptet. Und plötzlich tauchen so Sachen wie nullptr im neuen Standard auf, obwohl das doch nur geflame von Leuten war, die doch von C++ keine Ahnung hatten.
-
dass ich von c++ gerade mal so die grundlagen kenne, hab' ich mehr als einmal zugegeben. aber da diese grundlagen schon so offensichtlich inkonsistent sind, gehe ich davon aus, dass mich in den tiefen noch grössere abgründe erwarten. oder meinst du es gibt ein licht am ende des tunnels, also dass es sich lohnt, den steinigen c++-weg zu gehen, um am ende als 'erleuchteter' dazustehen?
Vieles was am Anfang bei C++ verwirrend ist, wird konsistent, wenn man ein wenig tiefer gegraben hat.
Der Anfänger(Basher) sagt: "Was ne Scheiss Sprache. Wenn ich A+B+C mache, dann funktioniert gar nichts".
Der Profi sagt: Und? Wann brauchst du A+B+C wirklich gleichzeitig? A+B , B+C und A+C funktionieren perfekt - und damit hast du bereits mehr Möglichkeiten, als bei anderen Sprachen wo es B nicht einmal gibt.
-
;fricky schrieb:
das lässt sich ganz einfach erklären: ich sehe irgendein statement und gebe impulsiv meinen senf dazu. irgendwelche links zu bash-seiten ergoogle ich in windeseile und poste sie dazu, das dauert keine 30 sekunden. ich baue keine wohlüberlegten schlussketten auf, die man paraphrasieren/formalisieren könnte und die einer aussagenlogischen untersuchung standhalten würden, bin ja kein philosoph.
Aber du erwartest, das du auf diese Weise ernst genommen wirst? Lockeres Plaudern ist ja ganz okay, aber wenn es um solche Themen geht, sollte man sich schon etwas bemühen, da das die anderen Mitglieder auch tun.
;fricky schrieb:
dass ich von c++ gerade mal so die grundlagen kenne, hab' ich mehr als einmal zugegeben. aber da diese grundlagen schon so offensichtlich inkonsistent sind, gehe ich davon aus, dass mich in den tiefen noch grössere abgründe erwarten. oder meinst du es gibt ein licht am ende des tunnels, also dass es sich lohnt, den steinigen c++-weg zu gehen, um am ende als 'erleuchteter' dazustehen? welchen sinn hätte das für mich, im hinblick darauf, dass ich eine programmiersprache als werkzeug und nicht als forschungsobjekt betrachte?
C++ ist eine eher anfängerfeindliche Sprache und scheint auf den ersten Blick tatsächlich enorm fehleranfällig und mühsam. Alleine schon die Möglichkeit, fast alles zu tun, gibt einem diesen Eindruck. Wenn man jedoch etwas Arbeit investiert, kann man C++ sehr effizient und vernünftig anwenden. Diese Arbeit mag vielleicht etwas grösser sein als bei anderen Sprachen, doch man hat dafür auch mehr Freiheiten. Wenn man die nicht braucht, kann man ruhig was anderes nehmen. Aber woher will man wissen, dass die zusätzlichen Möglichkeiten einem nicht helfen, wenn man sich nie tiefergründig mit ihnen befasst hat? Es ist natürlich einfacher, bei der oberflächlichen Ansicht zu bleiben, als etwas Aufwand zu investieren. Eigentlich schade, denn so eine voreingenommene Einstellung hat hindert einen gewaltig am Über-den-Tellerrand-Schauen. Es gäbe bestimmt Dinge, die dir auch gefielen, fricky, wenn du nur nicht so negativ an C++ rangehen würdest.
;fricky schrieb:
was wären denn deine kritikpunkte (ausser C++0x)?
Oh, da gibts auch im momentanen Standard einige. Gewisse Dinge sind tatsächlich nicht sauber umgesetzt, ein Teil davon kommt von C - aber klar hat auch C++ seine eigenen Fehler. Wenn man ein bisschen länger programmiert, fallen einem diese von selbst auf - dazu muss man nicht einmal Propaganda-Bash-Papers lesen.
dasameoldstory schrieb:
Irgendwie muss ich jetzt an Archie denken, der hatte das bei solchen diskussionen auch immer behauptet. Und plötzlich tauchen so Sachen wie nullptr im neuen Standard auf, obwohl das doch nur geflame von Leuten war, die doch von C++ keine Ahnung hatten.
Dass gewisse Dinge vom aktuellen Standard in C++0x verbessert werden, steht ausser Frage. Dass C++ nicht perfekt ist, übrigens auch. Das Problem ist nur, es werden häufig Dinge kritisiert, die bei Kenntnis der Programmiersprache entweder nicht auftreten (z.B. dauerndes fehleranfälliges Zeigergefrickel) oder eine so geringe praktische Relevanz besitzen, dass man absolut mit ihnen leben kann (z.B. fehlende
volatile int*
-Überladung beistd::ostream
).
-
otze schrieb:
Vieles was am Anfang bei C++ verwirrend ist, wird konsistent, wenn man ein wenig tiefer gegraben hat.
sicherlich gibt es 'nen grund wenn z.b. 'if (a && b)' sich anders verhalten als sonst, wenn && ein überladener operator ist (auf b wird zugegriffen, obwohl a schon 'true' ist). aber sowas ist nicht lustig, weil man bereits bei solchen kleinigkeiten höllisch aufpassen muss, was man tut.
otze schrieb:
Der Anfänger(Basher) sagt: "Was ne Scheiss Sprache. Wenn ich A+B+C mache, dann funktioniert gar nichts".
Der Profi sagt: Und? Wann brauchst du A+B+C wirklich gleichzeitig? A+B , B+C und A+C funktionieren perfekt - und damit hast du bereits mehr Möglichkeiten, als bei anderen Sprachen wo es B nicht einmal gibt.naja, der profi weiss dass A+B+C nicht funktionieren, kennt workaounds um A+B+C zu vermeiden und macht die not zur tugend, indem er sich sagt: 'eigentlich braucht man das nicht'. der anfänger fliegt damit voll auf die nase und hat zwei möglichkeiten: er akzeptiert es und wird irgendwann selbst profi, oder er verzichtet auf dieses 'profitum', nimmt eine andere sprache und findet dort D und E vor, die die fälle A+B, B+C, sowie A+B+C mit einem rutsch erschlagen.
Nexus schrieb:
;fricky schrieb:
das lässt sich ganz einfach erklären: ich sehe irgendein statement und gebe impulsiv meinen senf dazu. irgendwelche links zu bash-seiten ergoogle ich in windeseile und poste sie dazu, das dauert keine 30 sekunden. ich baue keine wohlüberlegten schlussketten auf, die man paraphrasieren/formalisieren könnte und die einer aussagenlogischen untersuchung standhalten würden, bin ja kein philosoph.
Aber du erwartest, das du auf diese Weise ernst genommen wirst? Lockeres Plaudern ist ja ganz okay, aber wenn es um solche Themen geht, sollte man sich schon etwas bemühen, da das die anderen Mitglieder auch tun.
wieso ernst genommen? ich sage einfach nur meine meinung, jedem steht es völlig frei, das als hirnrissigen unsinn abzutun. ich möchte niemanden überzeugen oder sowas. hier tummeln sich leute, die c++ mögen und andere die es nicht tun, ich gehöre zu letzteren und sage nunmal ziemlich direkt, was ich davon halte. wer sich davon angepisst fühlt, sollte bedenken, dass ich nicht über seine verstorbenen verwandten, sondern nur über eine lächerliche programmiersprache herziehe. keinesfalls möchte ich damit sagen: 'du benutzt c++, also bist du doof'. jeder der c++ schon länger benutzt, hat bestimmt für sich verschiedene gründe, die will und kann ich ihm auch garnicht ausreden.
Nexus schrieb:
C++ ist eine eher anfängerfeindliche Sprache und scheint auf den ersten Blick tatsächlich enorm fehleranfällig und mühsam. Alleine schon die Möglichkeit, fast alles zu tun, gibt einem diesen Eindruck. Wenn man jedoch etwas Arbeit investiert, kann man C++ sehr effizient und vernünftig anwenden. Diese Arbeit mag vielleicht etwas grösser sein als bei anderen Sprachen, doch man hat dafür auch mehr Freiheiten.
hast du ein konkretes beispiel, wobei es sich wirklich lohnen würde, diesen weg zu gehen anstatt den einfachen weg einzuschlagen, eine andere sprache/umgebung zu wählen, in der vieles einfacher und schneller geht und in der vielleicht nur 1/10 der einarbeitungszeit erforderlich ist, als für c++?
kleines beispiel: ich hab letzte woche eine kleines progrämmchen in Java (swing-anwendung) geschrieben, das messwerte von einem folienschweissgerät einliest, in einer datenbank speichert, die werte als kurven plotten kann mit allen schikanen. der user kann verschiedene ansichten seiner daten wählen, einzelne kurven ein- und ausblenden, hineinzoomen, etc. die grafik drucken und als .png speichern usw. daran hab' ich etwas 30 stunden gesessen, einschliesslich der auswahl der libraries (JFreeChart <-- sehr zu empfehlen! und HSQLDB). erschwerend hinzu kommt, dass der endbnutzer apple-kisten benutzt, während ich alles unter windows programmiert habe. es ist keine installation nötig, es muss einfach nur ein verzeichnis (mit dem hauptprogramm.jar und einen unterverzeichnis 'lib' aufs zielsystem kopiert werden) ich wette, unter C++ hätte es viel-viel länger gedauert, auch bei jemandem, der sich mit C++ sehr gut auskennt.Nexus schrieb:
Es ist natürlich einfacher, bei der oberflächlichen Ansicht zu bleiben, als etwas Aufwand zu investieren.
ja, genau. das ist ein wichtiger punkt. diese umwegsinvestition muss sich lohnen, sonst ist sie für die katz. ich bin anwender von programmiersprachen. für mich zählt das endresultat und das sollte möglichst einfach und schnell zu erreichen sein. ich setze nun mal andere prioritäten, als jemand, der z.b. programmiersprachen-fan ist und einfach nur lernen möchte.
Nexus schrieb:
Es gäbe bestimmt Dinge, die dir auch gefielen, fricky, wenn du nur nicht so negativ an C++ rangehen würdest.
an was dachtest du dabei? oop ist für mich nichts neues, hardwarenahe programmierung auch nicht.
-
;fricky schrieb:
Nexus schrieb:
Es gäbe bestimmt Dinge, die dir auch gefielen, fricky, wenn du nur nicht so negativ an C++ rangehen würdest.
an was dachtest du dabei? oop ist für mich nichts neues, hardwarenahe programmierung auch nicht.
Das glaube ich Dir mal nicht.
-
volkard schrieb:
;fricky schrieb:
Nexus schrieb:
Es gäbe bestimmt Dinge, die dir auch gefielen, fricky, wenn du nur nicht so negativ an C++ rangehen würdest.
an was dachtest du dabei? oop ist für mich nichts neues, hardwarenahe programmierung auch nicht.
Das glaube ich Dir mal nicht.
Wieso? Ich finde es schwieriger nicht OOP zu programmieren als OOP.
-
nnhhzz schrieb:
volkard schrieb:
;fricky schrieb:
Nexus schrieb:
Es gäbe bestimmt Dinge, die dir auch gefielen, fricky, wenn du nur nicht so negativ an C++ rangehen würdest.
an was dachtest du dabei? oop ist für mich nichts neues, hardwarenahe programmierung auch nicht.
Das glaube ich Dir mal nicht.
Wieso? Ich finde es schwieriger nicht OOP zu programmieren als OOP.
Inwiefern spricht nnhhzz' Schwierigkeit für frickys Fachkompetenz?
-
volkard schrieb:
;fricky schrieb:
...oop ist für mich nichts neues, hardwarenahe programmierung auch nicht.
Das glaube ich Dir mal nicht.
was davon? oder beides?
-
;fricky schrieb:
volkard schrieb:
;fricky schrieb:
...oop ist für mich nichts neues, hardwarenahe programmierung auch nicht.
Das glaube ich Dir mal nicht.
was davon? oder beides?
Ersteres ist sicher falsch. Zweiteres hätte ich früher für wahr angenommen, erliegt aber deinem allgemeinen Glaubwürdigkeitsfaktor, den ich inzwischen bei irgendwo um 20% sehe.
-
volkard schrieb:
Ersteres ist sicher falsch. Zweiteres hätte ich früher für wahr angenommen, erliegt aber deinem allgemeinen Glaubwürdigkeitsfaktor, den ich inzwischen bei irgendwo um 20% sehe.
na, 20% ist doch schon mal was. *daumen_hoch*
so manche partei würde sich heute für so viel glaubwürdigkeit freuen.