Stilfrage: C als Präfix für Klassen
-
Erfahrung kann schließlich in vielerlei Hinsicht auch hinderlich sein. Nimm einen erfahrenen C Programmierer und versuche ihm ordentliches C++ beizubringen. Da stört die Erfahrung mehr als das sie nützt.
Der Satz lässt mich schon den ganzen Tag nicht mehr los. Jetzt muss ich das doch noch kommentieren.
Die Erfahrung ist nicht hinderlich. Das Problem ist, dass man oft zu bequem ist, sich in eine neue Sichtweise einzuarbeiten. Zu faul neu zu lernen. Wenn ein erfahrener C-Programmierer an C++ rangeht und sich auf die Sachen raussucht, die er schon kennt, einfach weil es bequemer scheint, dann findet er seinen Weg nie. Es ist nicht seine Erfahrung, die ihn behindert. Teile seiner Erfahrung können ihm auch in C++ nützlich sein. Behindert wird er, wenn er seine Erfahrung unkritisch auf das neue überträgt, wenn er sich nur auf Gemeinsamkeiten stürzt.
Jetzt mal wieder zurück zum eigentlichen Thema des Threads. Präfixe. Meine Erfahrung aus Projekten mit und ohne Präfixen ist, dass sie mir geholfen haben die Sourcen mit denen ich arbeiten musste leichter und schneller zu verstehen. Im allgemeinen behindert es mich nicht, wenn ich Präfixe benutze. Warum sollte ich sie nicht mehr verwenden?
Sollte aber der (unwahrscheinliche) Fall auftreten, dass ich die Länge von Variablennamen stark beschränken müsste, muss ich eine Entscheidung treffen. Ist es wichtiger einen aussagekräftigen Bezeichner zu haben oder ist es sehr wichtig über Präfixe den Typ zu erkennen. Bei dieser Entscheidung kann mir meine Erfahrung helfen. Wenn ich nie die Erfahrung gemacht habe, dass mir Präfixe was bringen können, werde ich die Vorteile die ich damit haben kann nie erfahren. Sollte ich aber, weil ich positive Erfahrungen mit Präfixen gemacht habe, darauf bestehen, dass diese verwendet werden, und gar nciht darüber nachdenken, dass ich auch Vorteile haben kann, wenn ich sie weglasse, dann bin ich unflexibel und borniert. Es ist nicht die Erfahrung die mich behindert, sondern die Faulheit und die Unfähigkeit über meinen Tellerrand zu gucken.
-
Hmmm.. beeindruckend, Kauz
Ich denke, dass Du recht hast.
Ich hab mir die Präfixe (so mal nebenbei gesagt) erst vor circa einem Jahr angewöhnt, nachdem ich bemerkt habe, dass ich durch alte Programme nicht mehr durchsehen konnte. Dass ich jetzt hier als altmodisch, unflexibel und auch noch überheblich angesehen werde - nun, damit muss ich wohl leben. Naja, wer mich kennt, kennt mich besser
<Selbsbeschreibung>
Ich habe meine Meinung, verteidige sie aber versuche nicht, sie jemandem aufzuzwingen. Ich mache mein eigenes Ding, ob es anderen sinnvoll erscheint, oder nicht. Ändern kann ich sie übrigens auch, aber nur, wenn ich stichhaltige Beweise habe, dass meine Meinung falsch ist, und die gibt es gerade in Stilfragen nicht
</Selbstbeschreibung>
Wenn ihr eure Erfahrungen macht, dann müssen es nicht meine sein. Ich hab übrigens nie gesagt "Volkard, benutze Präfixe!". Wäre blödsinn. Ich bin sie gewohnt und setze sie für mich sinnvoll ein. Volkard meint für sich, dass sie unsinnig sind. Sie würden ihn womöglich irritieren. Gut, das ist auch sein gutes recht. Ich will auch garnicht, dass alle meinen Stil schreiben. Erstens ist ein Programmierstil wie ein Fingerabdruck und zweitens weiß ich, dass ich nicht unbedingt der sauberste Programmierer bin (ich benutze sogar globale Variablen ).Ich hab übrigens mehrmals versucht, diese Diskussion zu einem vernünftigen Ende zu bringen. Immerhin bin ich inzwischen "überheblich" geworden, weil ich dagegen gehalten habe, als andere Leute meinten, Präfixe wären "generell überflüssig" oder "schwachsinn". Ich sagte, dass das unter Umständen ziemlich sinnvoll sein kann, was aber auch wieder nur der Fall ist, wenn man damit umgehen kann und will. (ohne jemandem zu nahe treten zu wollen, aber ist der überheblich, der zu Kompromissen bereit ist?)
Die Frage, war "Sind Präfixe für Klassen sinnvoll?" Aus meiner Sicht immernoch ja! Wenn ihr mich dafür an den Marterpfahl hängen wollt, bitte. Nur solltet ihr mal drüber nachdenken, ob das nicht eher eine Beschäftigung für ein privates Treffen wäre, anstatt hier im Forum, wo jemand von Deinen Nubes, Volkard, eine (meines Erachtens durchaus berechtigte) Frage stellt und als Antwort Abschweifungen, Beleidigungen, Unfreundlichkeiten und vor lauter Verwirrung überhaupt keine sinnvolle Aussage bekommt.
Das ist nicht gerade das, was ich von einem Forum erwarte. Klar, eine Meinung sollte jeder haben, aber auch andere akzeptieren.Was ich vergessen habe. Hat schonmal einer eine IDE ála VC++ auf einem Großrechner gesehen? Ich nicht!
Insofern bin ich nicht überholt. Der Trend geht nämlich allmählig wieder dazu über, dass man Mainframes benutzt. Mal abgesehen davon bin ich ein Freund von Papier. ich kann auf einem Monitor nicht lesen. Ich blättere vor, zurück, schreibe mir Notizen an den Rand, mache Eselsohren in wichtige Seiten - habt ihr schonmal versucht, einen Monitor zu knicken?? Klar hat sogar der Bloodshed inzwischen einen Klassenbrowser, aber wusstet ihr, dass Papier eine längere bescheinigte Haltbarkeit hat, als eine Festplatte oder CD? (Erzählt mir nix, ich hab grade ein Projekt am Laufen, in dem es um Langzeitsicherung von Daten geht ;))
<ironie>Zu dumm nur, dass ein Klassenbrowser nicht ausdruckbar ist.</ironie>Es schließt mit freundlichem Gruß
DjR
-
Original erstellt von DocJunioR:
wusstet ihr, dass Papier eine längere bescheinigte Haltbarkeit hat, als eine Festplatte oder CD?Klar. Aber Papier geht kaputt, wenn man damit arbeitet, und hält sich, wenn es in einem Buchregal verstaubt. Elektronisch gespeicherte Daten halten sich um so besser, je mehr man mit ihnen arbeitet, und gehen verloren, wenn man sie lange nicht anfaßt.
-
1:0 für dich, Bashar
Ich arbeite aber mit Papier. wenn ich damit fertig bin, gibt's eh ne neue druckversion[ Dieser Beitrag wurde am 24.03.2003 um 17:07 Uhr von DocJunioR editiert. ]
-
@DocJunioR
also langsam ist es einfach nur noch dreißt. Ich habe jetzt mal alle fünf Seiten nach dem Wort "überheblich" durchsucht. Ergebnis: Nur *du* und *Kauz01*
haben dieses Wort benutzt. Dabei hat sonst *niemand* irgendwas von "überheblich" geschrieben.Dass ich jetzt hier als altmodisch, unflexibel und auch noch überheblich angesehen werde - nun, damit muss ich wohl leben
Wäre nett, wenn du wenigstens die Beiträge lesen und verstehen würdest, bevor du rumjammerst.
So, von mir aus kannst du jetzt mit deiner Selbstbeweihräucherung weitermachen.
-
Original erstellt von DocJunioR:
Insofern bin ich nicht überholt. Der Trend geht nämlich allmählig wieder dazu über, dass man Mainframes benutzt.Bitte Quelle angeben.
Mal abgesehen davon bin ich ein Freund von Papier. ich kann auf einem Monitor nicht lesen.
Also überholt.
Ich blättere vor, zurück, schreibe mir Notizen an den Rand, mache Eselsohren in wichtige Seiten - habt ihr schonmal versucht, einen Monitor zu knicken??
Andere Werkzeuge, andere Techniken.
a) Mehrer Dateien offen haben, und umschalten.
b) Editor merkt sich pro Datei letze Corsorposition.
c) Copy&Paste verwenden statt Papierschnipsel auszuschneiden und woanders hinzukleben.
d) Lesezeichen benutzen.
e) Volltextsuche benutzen.
Also überholt.Klar hat sogar der Bloodshed inzwischen einen Klassenbrowser, aber wusstet ihr, dass Papier eine längere bescheinigte Haltbarkeit hat, als eine Festplatte oder CD?
Ja, und? Tontafeln haben noch ne längere.
Die sind sogar noch überholter und für Dich automatisch besser als Papier.
-
Die Erfahrung ist nicht hinderlich. Das Problem ist, dass man oft zu bequem ist, sich in eine neue Sichtweise einzuarbeiten.
Da bin ich anderer Meinung. Mit der Zeit prägen sich bestimmte Denkstrukturen/Herangehensweisen aus. Wer sein Leben lang Probleme strukturiert gelöst hat, wird immer Schwierigkeiten haben wirklich gut objektorientiert zu denken.
Ich denke nicht, dass all die unzähligen Programmierer die Probleme mit einem Paradigmen-Wechsel haben, nur zu faul, bequem oder unkritisch sind.
Es gibt einfach keine 100%tige flexibilität.
-
Original erstellt von HumeSikkins:
[quote]
Ich denke nicht, dass all die unzähligen Programmierer die Probleme mit einem Paradigmen-Wechsel haben, nur zu faul, bequem oder unkritisch sind.Es könnte auch daran liegen, dass erfahrene Programmierer nicht alles glauben, was über Objektorientierung gelogen wird.
-
Es könnte auch daran liegen, dass erfahrene Programmierer nicht alles glauben, was über Objektorientierung gelogen wird.
OO war nur als Beispiel gedacht. Und ich wollte auch nicht sagen, dass OO generell besser ist als andere Techniken. Fakt ist aber, dass es viele C-Experten gibt, die den Wechsel zur OOP niemals wirklich schaffen. Andersherum hört man auch von vielen OOP-Experten, dass sie nicht mehr dazu in der Lage wirklich gute strukturierete Lösungen zu basteln. Einfach, weil ihr Hirn mittlerweile automatisch in anderen Kategorien denkt.
Es geht mir also überhaupt nicht um eine Wertung der konkreten Techniken. Nur darum, dass meiner Meinung nach Erfahrung auch hinderlich sein kann.
-
Original erstellt von HumeSikkins:
**@DocJunioR
also langsam ist es einfach nur noch dreißt. Ich habe jetzt mal alle fünf Seiten nach dem Wort "überheblich" durchsucht. Ergebnis: Nur *du* und *Kauz01*
haben dieses Wort benutzt. Dabei hat sonst *niemand* irgendwas von "überheblich" geschrieben.
**Original erstellt von HumeSikkins:
**[quoteScheinbar kann ich nicht nur nicht lesen sondern auch nicht schreiben. Ich habe nicht denjenigen als überheblich angesehen, der seine Meinung kund tut sondern denjenigen als gönnerhaft, der so Großmutterhaft daher redet.
**Sorry, dass ich mir den Schuh angezogen habe, vielleicht passt er mir ja garnicht. Fragt sich noch, wer seine eigenen Beiträge liest..
Deswegen finde ich übrigens Papier schöner - Es ist übersichtlich..
@ Volkard: überholt stand afaik nicht wörtlich in den Beiträgen, kam aber für mich so rüber. Zu den Arbeitstechniken. altmodisch ist nicht gleich überholt. Ich hab mich daran gewöhnt und werde es weiterhin nutzen - sorry ;). Möglich, dass es für Dich überholt ist, aber es geht genausowenig nach Deiner Nase, wie nach meiner auf dieser Welt! du machst es, wie Du es am besten kannst, Hume macht's wie er's will und ich habe meinen eigenen stil.
BTW: Ich möchte diese Diskussion wieder auf ein sachliches Level zurückführen. Mag sein, dass ich ab einem gewissen Punkt auch nicht mehr besonders freundlich war, aber ich habe von meinen Erfahrungen gesprochen, die hier nach meiner Auffassung einfach als völlig sinnlos und überflüssig hingestellt wurden und das ist ne Sache, mit der ich nunmal ein Problem habe.
Volkard, ich habe höchsten Respekt vor Deinem Wissen, was C++ angeht, aber ich bin nicht der Meinung, dass irgendjemand der Weisheit letzten Schluß findet. Nicht Du, nicht Hume, Kautz und erst recht nicht ich. Es sollte immer mehr als eine Meinung geben, aber diese Diskussion ist nichts mehr als eine Anhäufung von gegenseitigen haltlosen Kritiken. Das Thema ist wohl eher was für nen gemütlichen Abend bei nem Bierchen. Ich wurde hier mehrmals falsch verstanden und genauso geht's mir mit euch. Tja, der digitale Buchstabe hat halt seine Nachteile..
Ich hab ehrlich anderes im Sinn, als mich hier unbeliebt zu machen (Ich werde trotzdem immer meine Meinung zum Besten geen) zumal der Schreibstil nichts mit der Logik hinter dem Programm zu tun hat, die imho eigentlich den wichtigeren Teil des Ganzen ausmacht..
Ich habe meine Meinung gesagt und damit ist es für mich jetzt gut. Für weitere Nachfragen stehe ich immer bereit
Gruß
DjR
-
Da bin ich anderer Meinung. Mit der Zeit prägen sich bestimmte Denkstrukturen/Herangehensweisen aus. Wer sein Leben lang Probleme strukturiert gelöst hat, wird immer Schwierigkeiten haben wirklich gut objektorientiert zu denken.
Mit dieser Argumentation kannst du jedes Lernen vor dem Erlernen der Objektorientierung verbieten oder als schlecht hinstellen.
Ich persönlich musste schon in der Schule Probleme und in Deutsch ganz anders lösen als die in Geschichte, hatte bei Latein eine völlig andere Vorgehensweise als bei Mathematik. Etwas überspitzt ausgedrückt sagst du: Wer Latein gelernt hat ist in den Denkstrukturen so festgefahren, dass er nie vernünftig programmieren wird.
Ich möchte die Sache hier aber nicht auf den Gipfel treiben. Es ist auch so, dass es Anstrengung erfordert, nicht immer wieder in das alte Fahrwasser zurückzugehen. Du hast recht mit der obigen Aussage. Es ist immer schwierig was neues zu lernen. Ich persönlich sähe meine Arbeit und auch mein Leben als sehr langweilig an, wenn ich aufhören würde mich diesen Schwierigkeiten zu stellen.
-
Ihr diskutiert ja immernoch...
-
Original erstellt von DocJunioR:
...zumal der Schreibstil nichts mit der Logik hinter dem Programm zu tun hat, die imho eigentlich den wichtigeren Teil des Ganzen ausmacht.Zur Logik gibts auch Stil. Der eine mag eher endliche Autonaten, der andere lieber Rekursion und der dritte leiber wiederholte Anläufe. Der eine mag nur flache lokale Variablen und dafür mehr übergeben, der andere mag gerne Attribute.
Und auf jeden Fall ist's da ganz unaufgeräumt. Heut ist die Auswertung zu wpc53 gekommen: http://www.geocities.com/acmesofties/wpc.htm
Von 6 Einsendern haben die Tester drei als falsch erkannt. Der Siegercode ist auch falsch, womit's vier wären. Und daß die anderen beiden korrekt sind, mag ich auch nicht so auf Anhieb glauben, leider kenn ich deren Code nicht.
Hab mal Code von so nem 3D-Shooter gesehen. Glaub' doom war's. War schrecklich. So das zusammenfummeln der Schleifen und Bedingungen und dann wiedermal unmotiviert break oder goto...
Leider finden sich da gar keine Regeln. Und Diskussionen über den Stil größerer Codebrocken finden nicht statt.
edit: alle 6 einsendungen waren falsch.[ Dieser Beitrag wurde am 25.03.2003 um 12:53 Uhr von volkard editiert. ]
-
Hallo Kauz01,
ich schreibe es gerne für dich noch einmal: Mir geht es *nicht* um eine Wertung.
Ich sprach lediglich von Schwierigkeiten.Etwas überspitzt ausgedrückt sagst du: Wer Latein gelernt hat ist in den Denkstrukturen so festgefahren, dass er nie vernünftig programmieren wird.
Nein. Das sage ich nicht. Weder an- noch überspitzt!
Was ich sage ist, dass vorhandene und gut ausgeprägte Denkstrukturen schwer zu durchbrechen sind.
-
Original erstellt von volkard:
Zur Logik gibts auch Stil. Der eine mag eher endliche Autonaten, der andere lieber Rekursion und der dritte leiber wiederholte Anläufe. Der eine mag nur flache lokale Variablen und dafür mehr übergeben, der andere mag gerne Attribute.
Und auf jeden Fall ist's da ganz unaufgeräumt. Heut ist die Auswertung zu wpc53 gekommen: http://www.geocities.com/acmesofties/wpc.htm
Von 6 Einsendern haben die Tester drei als falsch erkannt. Der Siegercode ist auch falsch, womit's vier wären. Und daß die anderen beiden korrekt sind, mag ich auch nicht so auf Anhieb glauben, leider kenn ich deren Code nicht.
Hab mal Code von so nem 3D-Shooter gesehen. Glaub' doom war's. War schrecklich. So das zusammenfummeln der Schleifen und Bedingungen und dann wiedermal unmotiviert break oder goto...
Leider finden sich da gar keine Regeln. Und Diskussionen über den Stil größerer Codebrocken finden nicht statt.[/QB]okay, da hast du auch wieder recht.. immerhin hab ich mich mit euch lange genug drum gesstritten, ob Rekursion sinnvoll ist
cYa
DjR[ Dieser Beitrag wurde am 25.03.2003 um 13:54 Uhr von DocJunioR editiert. ]
-
OK ich verstehe es immernochnicht. Wenn einem die Firma vorschreibt, ein C vor Klassen zu setzen, OK, dann macht man es. Aber wenn man nicht dazu gezwungen ist, verstehe ich es wirklich nicht. Wenn man z.B. die Konvention Typen groß, Variablen/Funktionen klein einhält, hat man weniger arbeit, der Code ist (aus meiner sicht) leichter zu lesen und es ist nicht so dämlich auszusprechen.
Peter ist eine "Zeh"-Person. Das ist doch einfach Mist. Peter ist eine Person ist da doch gleich viel angenehmer.
Allerdings bin ich für ein m_ vor Membern (oder meinet wegen auch ein nachgestelltes _, wie einige es verwenden). Aber vielleicht sollte ich darüber nochmal nachdenken.
Aber was ist die alternative:
set_foo(T foo) { this->foo = foo; }
Das ist für mich keine Alternative. Ich finde das seiht einfach nicht übersichtlich aus. (Das ist aber eine Frage des Geschmacks.)
set_foo(T foo) { Klassenneame::foo = foo; }
Das sieht schon besser aus, bedeutet aber oft viel Tipparbeit. Ein m_ ist praktischer. Ich werd's mal ausprobieren.
-
Der Thread sollte in die FAQ des Trollforums. Leute, so funktioniert das! Man stelle eine Frage wie diese und beobachte endloses aufeinander einhacken
-
Original erstellt von Bashar:
Der Thread sollte in die FAQ des Trollforums. Leute, so funktioniert das! Man stelle eine Frage wie diese und beobachte endloses aufeinander einhackenNaja, ich bin's langsam gewohnt. Ich stelle eben die richtigen Fragen und hab die richtigen kommentare dazu, dass man auf mich losgeht *rofl*
Naja, ich gebe zu, dass ich mich auch gelegentlich im Ton vergreife.Ich gelobe jedoch meinerseits Besserung und werde eine Technik namens "Nachfragen" anwenden, um herauszufinden, ob ich etwas vielleicht falsch aufgefasst hab.. dummsinnig reagieren kann ich ja dann immernoch
cYa
DjR
-
Original erstellt von DocJunioR:
Ich stelle eben die richtigen Fragen und hab die richtigen kommentare dazu, dass man auf mich losgehtDas ist die Definition von Troll.
Dasnurmalanmerkenwollend ...
-
Respekt, DocJr! Zuerst als "Unregistrierter" eine Frage stellen und dann drauflos trollen!
*Troll Ehrenauszeichnung überreich*