Performancemythen?
-
Ich glaube nicht, dass man Kapselung in CLOS ordentlich realisieren kann, wobei ich zugeben muss, dass ich mich nicht sonderlich gut mit CLOS auskenne.
Nur für Kapselung ist Lisp einfach zu mächtig.Andererseits ist Kapselung öfters keine hundertprozentige Geschichte, Java Reflection bricht z.B. wieder die Kapselung der eigenen Sprache und am Ende folgere ich persönlich, dass Kapselung nur soweit möglich ist wie der Programmierer es zulässt.
Besagt die Kapselung denn, dass man unter garkeinen Umständen an die versteckten Daten und Methoden herankommen darf?
Wie ich finde ist das eine Gratwanderung, und ich sehe Kapselung nur als Einschränkung des Zugriffs, nicht aber als ein Zugriffsverbot, das die Sprache garantieren muss.
-
Das naive Verständnis von Kapselung ist, gerade wenn man gedanklich in der C++-Welt steckt, sicher die Einschränkung von Sichtbarkeit. Aber wie gezeigt versteht Stroustrup unter Kapselung die Möglichkeit Integritätsbedingungen wahren zu können. Er definiert es also nicht als Einschränkung der Sichtbarkeit sondern funktional. Und dafür hat Doktor Prokt bereits ein Beispiel in Lisp gegeben. Die Spezifikation der Integritätsbedingung lautet in seinem Beispiel, dass x immer größer 0 sein muss.
Dass man sich selbst in C++ mit Tricks sogar zu private-Attributen durchhacken kann, ist eine andere Geschichte. Das liegt, wie du schon ansprichst, durchaus an einer Form der "Mächtigkeit". Aber deshalb würde man auch nicht die grundsätzliche Möglichkeit der Kapselung bei C++ in Frage stellen.
-
DEvent schrieb:
Seite 46
Xin schrieb:
Selbiges gilt für bool Person::istArm() oder Körperteil::istArm() uvm...
Bei derartigen Dingen ein Interface zu konstruieren, damit man Objekte, die die Schnittstelle "istArm()" implementieren per OOP ansprechen kann, lässt sich nur als Designfehler beschreiben.Genau das hat mich eben gestoert und stoert mich an JS. Man kann eben jeden Objekttyp als einen Parameter nehmen und behaupten, das er richtig ist, nur weil er zufaellig die richtigen Methoden anbietet. Das der Typ dann doch falsch ist, merkt man erst viel Speater, nachdem man stunden rumgeraetzelt hat wieso das Programm etwas macht, obwohl es etwas anderes machen muesste.
Durch die Beziehung "ist ein" in der Klassenhierrachie kann ich solche Fehler vermeiden, bzw. gar nicht erst aufkommen lassen. Dies wurde z.B. auch in PHP erkannt, indem man Typen fuer Objekte eingefuehrt hat.
Wenn man sich die Ursprünge von JS und PHP ansieht, so sind die noch verwachsener als die von C und das will schon was heißen. C hat als Ursprung "BCPL" und "B", woraus "B mit Strukturen" wurde - daran angelehnt ja auch "C mit Klassen", woraus später C++ wurde.
JavaScript wurde von Netscape entwickelt. Oder besser, man frickelte sich etwas zusammen, um clientseitig etwas programmieren zu können. Kann man sich ja vorstellen, wie das abläuft, oder? Man hat die Idee Funktionalität auf den Client zu legen und so wird ein Trupp von 1-2 Mann von der Browserentwicklung abgetrennt und bekommt den Auftrag etwas zu passendes schreiben, was die Probleme der ersten Idee löst. Formulare am Client überprüfen war damals das Stichwort, wenn ich mich recht entsinne. Keine jahrelange Vorbereitung und Planung, wie man eine Sprache überhaupt sauber aufbaut. Das Ergebnis ist bekannt.PHP war zu Beginn ein kleines Tool, um zur Laufzeit Dateien zusammenzuschieben - mehr nicht. Kopfzeile, Inhalt, Fusszeile: Fertig war die Webseite.
PHP wurde OpenSource und im Ergebnis haben hunderter "Programmiersprachenexperten" es irgendwie weiterentwickelt, die Betonung liegt auf irgendwie.
Aus sehr viel Frickelei hat sich daraus eine fähige Sprache entwickelt, die allerdings ihren Frickelcharakter nicht mehr verlieren wird und die vom Sprachcharakter fehleranfällig und unsauber ist. Die Sprache kämpft dafür kompatibel mit sich selbst zu bleiben, kann es aber nicht, wenn sie jemals die Kurve bekommen möchte. Aber - und das macht sie so bekannt: Sie ist *die* Sprache in ihrem Bereich, mit der man mit dem geringsten (Lern-)Aufwand eine Homepage zusammenfrickeln kann.Ich habe 2001 angefangen mich intensiver mit Sprachen zu beschäftigen und darum auch z.B. Bücher von Stroustrup gelesen. Literarisch besonders aufregend kann man den Stroustrups Schreibstil leider nicht grade nennen, spannend ist so ein Buch wirklich nur, wenn man sich für den Inhalt wirklich interessiert.
Seit 6 Jahren plane ich also meine Programmiersprache. 2003 habe ich einen C Compiler geschrieben, um zu gucken, was man mit Compilern eigentlich alles machen kann, um dafür ein besseres Gefühl zu bekommen.
Ich habe im Studium 15 Punkte in Compilerbau und 14 Punkte für den funktionsfähigen Compiler erhalten von zwei unabhängigen Profs. Ich weiß trotz Nachfrage nicht, woran der Abzug beim Compiler lag. Aber ich habe zumindest ein sehr positives Zeugnis zusätzlich dafür erhalten und ein "Sehr Gut" ist auch ohne Plus noch keine Katastrophe. Ich bin in dem Bereich also nicht ganz unfähig.Dieser Compiler ist inzwischen vollständig in allen Bereichen umgeschrieben und umgebaut worden.
Ich weiß, wie man es richtig macht und inzwischen auch, wie man es noch besser machen kann.
Das kostete 6 Jahre lesen, planen und experimentieren, aber anders geht es nicht. Ich kenne kein Buch, das im Bereich Compilerbau beschreibt, was machbar ist.
Diese Grundlage, die JavaScript und PHP fehlt, sieht man den Sprachen auch an.Diese Sprachen sind erfolgreich, weil sie eine Nische ohne Konkurrenz besetzen. Browser können nur JavaScript und Webserver sind extremst einfach mit PHP auszurüsten, was die Masse der Hobbyprogrammierer auch bedienen kann. Die Sprachen sind nicht erfolgreich, weil sie gut durchdacht sind.
Wir haben erst 2 von Grund auf konstruierte Sprachen im relevanten Softwaremarkt: Java und C#. Und Java ist als konstruierte Sprache eine große Enttäuschung. Ein gigantischer Aufwand für ein kastriertes C++, dafür mit großer Standardfunktionalität. Darum ist Java erfolgreich. Man ruft 5 Funktionen auf und hat ein einfaches Tool "programmiert". Dafür braucht man auch keine hochqualifizierten Informatiker.
C# hat aus Mängeln von Java sichtlich gelernt - nur leider nicht viel. Java und C# müssen erfolgreich sein. Was für den einen Werbeträger ist, ist für den anderen das Monopol. Beide Sprachen können nicht einfach neue Wege gehen, in der reinen Hoffnung, dass sie akzeptiert werden. Das beschränkt sie in ihrer Weiterentwicklung und das Thema "experimentelle Weiterentwicklung" hätte man berücksichtigen können. Man ist mit beiden Sprachen nicht weit gekommen, denn nicht jeder Schritt ging nach vorne.
Der Rest sind gewachsene Sprachen, C++ liegt irgendwo zwischen gewachsen (C) und (per Cfront geplant) konstruiert und wächst seitdem sehr vorsichtig über ein konservatives Komitee gesteuert.Lange Rede kurzer Sinn: Wenn man sich mit Programmiersprachen beschäftigt, dann muss man überlegen wo sie herkommen und was sich die Autoren dabei gedacht haben. PHP kann man seine Mängel so gerne verzeihen. Es muss halt mal ein fähiger Mensch hingehen und PHP aufräumen oder eine Sprache anbieten, die die Vorteile von PHP übernimmt und den Mist rauskehrt. JavaScript ist eine Katastrophe, weil man JS nicht so einfach austauschen kann.
Wenn man weiß, wo die Sprache herkommt, identifiziert man die Mängel einfacher und kann sie auch besser akzeptieren. JS oder PHP wurden nicht als OOP Sprachen geplant. Es hat sich eher unverhofft so ergeben. Es ist machbar, aber nicht grade schön. Man hat kein Konzept entwickelt, um möglichst universell Programme lösen zu können, sondern man hat Lösungen für Probleme in eine Sprache eingebaut, aus denen man sich bedienen kann. Interfaces waren für eine schnelle Problemlösung in JS nie erforderlich.
Daraus nun wieder etwas abzuleiten, was als sauber umgesetztes Konzept gelten könnte, wird schwierig.
Und das ist der Punkt.Am Rande dazu vielleicht noch folgendes: JavaScript heißt eigentlich ECMAScript, JavaScript ist nur der "übliche" Name für ECMAScript.
JavaScript ist nicht kompatibel zu Java.
Eine optische Ähnlichkeit ist gegeben, aber damit hätte es genausogut C++Script heißen können. Von daher reicht das Umbennen von .js nach .java nicht, um JavaScript mit Java zu kompilieren: Man muss es portieren und das ist mit Neuschreiben gleichzusetzen, denn nicht kompatibel meint wirklich komplett inkompatibel, was Ausdrücke angeht, die aufwendiger sind als "a = 1;".
JavaScript und Java sind nicht miteinander verwandt, sondern unabhängig voneinander entstandene Programmiersprachen und abgesehen von einer Ähnlichkeit im Namen, den sie genaugenommen auch nicht haben, haben beide Sprachen absolut gar nichts miteinander zu tun.
Wer JS mit Java kompiliert, möge den Blick auf die Startseite des Forums richten, dort steht beim Java-Forum extra in Fettschrift "kein JavaScript". Die wollen genausowenig JS Fragen beantworten, wie die Leute im C++ Forum Java Fragen sehen wollen.
Darum schrillen bei mir die Alarmglocken für besonders qualifizierte Postings, wenn jemand schreibst, dass er kein Problem hat JavaScript mit Java zu kompilieren.Shade Of Mine schrieb:
Xin schrieb:
Du kompilierst also JavaScripts mit Java...?
Warum nicht? Was spricht dagegen?
Wieder eine Frage mehr beantwortet.
-
otze schrieb:
class EnergieQuelle{};//leer struct Batterie:public Energiequelle {[...]}; template<class T> class Elektrogerät { BOOST_STATIC_ASSERT(is_derived<T,EnergieQuelle>::value); T member; public: void bar(){ member.foo();} };
Jetzt gibt es sogar die Absicherung vom programmierer, dass Batterie eine Energiequelle ist, und somit mit dem Interface übereinstimmt. Vererbung ist, wie wir alle sagten, manchmal sinnvoll, aber nicht zwingend.
wenn ich einen int ähnlichen Objekttyp brauche, werde ich sicher nicht danach schauen, ob es von "Int" abgeleitet ist. mir reicht es, wenn alle Operatoren überladen sind, die ein Int braucht.
Soweit alles richtig.
Und sobald Dein Programm kompiliert ist, hast Du keine Elektrogeräte, die eine EnergieQuelle zum nutzen, sondern Du hast Elektrogerät<Batterie> und Elektrogerät<Atomkraftwerk> usw., die alle nicht miteinander verwandt sind und damit nicht austauschbar sind.
Ein Elektrogerät<Batterie> ist kein Elektrogerät<Atomkraftwerk>, auch wenn sie gleiche Funktionalität bieten, haben sie keine Gemeinsamkeit, die die Programmiersprache interessiert.
Du wirst also jede Funktion für Elektrogerät<Batterie> und Elektrogerät<Atomkraftwerk> redundant schreiben müssen.
Vererbung ist nicht zwingend, aber sinnvoll.Templates sind Templates und Vererbung ist Vererbung und damit...
otze schrieb:
Was sich wie ein int verhällt, ist ein int.
...ist der Satz auch nur Hall und Rauch.
-
ok ich fasse mal zusammen
Xin schrieb:
1: javascript und php sind scheiße
2: ich bin toll
3: shade ist dummzu punkt eins sei gesagt, dass sich smalltalk ebenso verhält wie php und java\1: wenn ein objekt eine bestimmte nachricht nicht verarbeitet geht die nachricht halt ins leere. da gibts kein problem mit, das ist auch kein designfehler
Xin schrieb:
Am Rande dazu vielleicht noch folgendes: JavaScript heißt eigentlich ECMAScript, JavaScript ist nur der "übliche" Name für ECMAScript.
eigentlich heißt JavaScript LiveScript. JavaScript ist nur der "übliche" name für LiveScript. ECMAScript heißt nur die standardisierte variante- aber das nur am rande
Xin schrieb:
JavaScript ist nicht kompatibel zu Java.
kras sag bloß
Xin schrieb:
damit hätte es genausogut C++Script heißen können.
dann hätte es aber bei weitem nicht die popularität gewonnen die es heute hat
Xin schrieb:
JavaScript und Java sind nicht miteinander verwandt, sondern unabhängig voneinander entstandene Programmiersprachen und abgesehen von einer Ähnlichkeit im Namen, den sie genaugenommen auch nicht haben, haben beide Sprachen absolut gar nichts miteinander zu tun.
Wer JS mit Java kompiliert, möge den Blick auf die Startseite des Forums richten, dort steht beim Java-Forum extra in Fettschrift "kein JavaScript". Die wollen genausowenig JS Fragen beantworten, wie die Leute im C++ Forum Java Fragen sehen wollen.
Darum schrillen bei mir die Alarmglocken für besonders qualifizierte Postings, wenn jemand schreibst, dass er kein Problem hat JavaScript mit Java zu kompilieren.oh man jetzt wirds klar, du hast anscheinend gar nicht verstanden was shade damit sagte oder?
egal, hauptsache mal alles schlecht gemacht, alle anderen dumm gemacht, dich selbst als den größten verkauft aber bloß nichts verstehen oder auf andere posts eingehen?
-
minhen schrieb:
stolze 55 Seiten
in der tat, sowas ist aber auch nur hier möglich. in anderen foren wo ich unterwegs bin wär der thread schon längst im müll gelandet sobald jemand wie Xin anfängt mist zu labern (bzw da der thread ja eigentlich um was ganz anderes ging der entsprechende teil ;))
-
naja - es ist immer wieder ein tolles armutsbezeugniss für deppen die sich über irrelevante details kloppen wollen
das ist genauso wie die leute die sich klopfen wo spaces bei dem * der pointerdeklaration hinkommen
-
minhen schrieb:
Das naive Verständnis von Kapselung ist, gerade wenn man gedanklich in der C++-Welt steckt, sicher die Einschränkung von Sichtbarkeit. Aber wie gezeigt versteht Stroustrup unter Kapselung die Möglichkeit Integritätsbedingungen wahren zu können. Er definiert es also nicht als Einschränkung der Sichtbarkeit sondern funktional.
Ich habe eigentlich das selbe Verständnis von Kapselung, nur ich sehe "Sichtbarkeit" als eine Art andere Form der funktionalen Kontrolle an. Anstatt den bisherigen Zugriff zu verändern/überwachen streicht man ihn ganz und schreibt einen neuen.
Man hat also nur diese "einfache" Möglichkeit zur Verfügung.
Am Ende wird man mit beiden Varianten nichts anderes machen, als den Zugriff auf Ojektdaten zu kontrolieren.minhen schrieb:
Dass man sich selbst in C++ mit Tricks sogar zu private-Attributen durchhacken kann, ist eine andere Geschichte. Das liegt, wie du schon ansprichst, durchaus an einer Form der "Mächtigkeit". Aber deshalb würde man auch nicht die grundsätzliche Möglichkeit der Kapselung bei C++ in Frage stellen.
Ich wollte auf die Frage hinaus, ob es nicht auch in Lisp die Möglichkeit gibt die Kapselung zu durchbrechen. (Bei dem Beispiel von Doktor Prokt)
Und dann stelle ich mir die Frage ab wann Kapselung als solche angenommen wird, also ganz einfach gefragt: "Wie schwer muss es sein die Kapselung zu umgehen, damit man einer Programmiersprache auch Kapselung als Fähigkeit zugesteht?"
-
kapslung finde ich nicht unbedingt notwendig,
es it eine praktische möglichkeit verantwortungsloses vorgehen zu unterbinden,
wenn man jedoch davon ausgehen kann,
das die nutzer der bibliotheken verantwortungsvoll sind,
ist das ganze nicht mehr sooo wichtig
-
Tellerrand schrieb:
Und dann stelle ich mir die Frage ab wann Kapselung als solche angenommen wird, also ganz einfach gefragt: "Wie schwer muss es sein die Kapselung zu umgehen, damit man einer Programmiersprache auch Kapselung als Fähigkeit zugesteht?"
Ich würde es da mit der guten alten C-Logik halten. Wenn eine Sprache keine Möglichkeit zur Kapselung bereitstellt, hat sie den vorzeichenlosen Kapselungswert 0. Sobald sie eine Möglichkeit bereitstellt, hat sie einen positiven Wert. Je schwieriger es ist, die Kapselung zu umgehen, desto höher ist der Wert. Das heißt, es kann durchaus Abstufungen von verschieden starken Kapselungen geben. Aber jeder positive Wert evauliert bereits zu true
-
@Xin (unregistriert) schrieb:
Xin schrieb:
JavaScript und Java sind nicht miteinander verwandt, sondern unabhängig voneinander entstandene Programmiersprachen und abgesehen von einer Ähnlichkeit im Namen, den sie genaugenommen auch nicht haben, haben beide Sprachen absolut gar nichts miteinander zu tun.
Wer JS mit Java kompiliert, möge den Blick auf die Startseite des Forums richten, dort steht beim Java-Forum extra in Fettschrift "kein JavaScript". Die wollen genausowenig JS Fragen beantworten, wie die Leute im C++ Forum Java Fragen sehen wollen.
Darum schrillen bei mir die Alarmglocken für besonders qualifizierte Postings, wenn jemand schreibst, dass er kein Problem hat JavaScript mit Java zu kompilieren.oh man jetzt wirds klar, du hast anscheinend gar nicht verstanden was shade damit sagte oder?
egal, hauptsache mal alles schlecht gemacht, alle anderen dumm gemacht, dich selbst als den größten verkauft aber bloß nichts verstehen oder auf andere posts eingehen?Dann will ich mal mit einer einfachen Rückfrage auf Dich eingehen: Wo liegt der Zusammenhang Deiner verbalen Ejakulation zu dem Text, denn Du dazu zitierst?
mal so mal so (unregistriert) schrieb:
in anderen foren wo ich unterwegs bin wär der thread schon längst im müll gelandet sobald jemand wie Xin anfängt mist zu labern
Was mir positiv auffällt ist, dass die Leute, die mich hier beleidigen mehr und mehr Unregistrierte sind, sich also nicht trauen ihre Äußerungen einer eindeutigen Identität zuordnen zu lassen. Das mindert das Risiko dumm darzustehen deutlich, wenn ein halbwegs kompetenter diesen Thread nochmal lesen würde (der allerdings minhen und mich für genauso bekloppt erklären würde, weil wir uns seitenlang diesem Kindergarten widmen.)
Überhaupt "diskutieren" hier fast mehr Unregistrierte als Registrierte, die aber offenbar über 500 Postings im Thread verfolgt haben, um sich mit ähnlichen Lese- und Verständnisschwächen (siehe "@Xin"s-Posting) eine ähnlich beleidigende Meinung bilden zu können, wie sie vorher Registrierte propagierten, die sich nicht mehr beteiligen, weil sie die Hoffnungslosigkeit des Threads natürlich voll durchblickt haben.Erstaunlich...
Was mich nochmal interessieren würde, ist ob ich nun alle Fragen des unregistrierten Tellerrandes beantworten konnte, da der Punkt, der "meine" == minhens == Stroustrups == Marc++us Definition zum Wanken bringen würde, sich ja nun nicht bestätigt hat.
Ich will ja nicht davon ausgehen, dass ihn das überzeugen konnte, aber es gibt zumindest keine Beleidigungen oder Rückfragen mehr.Mir würde ein "Ich erwäge inzwischen die Möglichkeit, dass Du, minhen, Stroustrup und Marcus richtig liegen" vollkommen reichen.
-
Xin schrieb:
Was mir positiv auffällt ist, dass die Leute, die mich hier beleidigen mehr und mehr Unregistrierte sind, sich also nicht trauen ihre Äußerungen einer eindeutigen Identität zuordnen zu lassen.
Du solltest nicht von Dir auf andere schließen. Einige Identitäten können sehr wohl zugeordnet werden- entweder bist Du zu faul oder zu unfähig dafür, aber das ist kein Problem von Unregistrierten.
Und nochmal für Dich: Du unterliegst einer grob falschen Selbsteinschätzung, wenn Du (vor einigen Seiten) meinst, Du hättest Dich hier behauptet. Im Gegenteil! Während Deine Definition immer noch etwa so dasteht wie anfangs, hat "Xin" im Verlauf der folgenden Seiten stark abgebaut.
-
Xin schrieb:
Das mindert das Risiko dumm darzustehen deutlich, wenn ein halbwegs kompetenter diesen Thread nochmal lesen würde (der allerdings minhen und mich für genauso bekloppt erklären würde, weil wir uns seitenlang diesem Kindergarten widmen.)
Deine Arroganz war bisher eigentlich nur zum Kotzen. Wie auch in diesem Beitrag. Aber spätestens nach deiner Eierschaukelei wie toll du dich doch mit Compilerbau usw. auskennst, bist du in meinen Augen einfach nur ein armer Drops. Sorry.
-
ronny schrieb:
naja - es ist immer wieder ein tolles armutsbezeugniss für deppen die sich über irrelevante details kloppen wollen
das ist genauso wie die leute die sich klopfen wo spaces bei dem * der pointerdeklaration hinkommen
ich hab im laufe der seiten irgendwie aus dem auge verloren, worüber alle eigentlich ursprünglich diskutieren.
-
Xin schrieb:
Was mich nochmal interessieren würde, ist ob ich nun alle Fragen des unregistrierten Tellerrandes beantworten konnte, da der Punkt, der "meine" == minhens == Stroustrups == Marc++us Definition zum Wanken bringen würde, sich ja nun nicht bestätigt hat.
Deine Definition ist nicht die gleiche wie die von Stroustrup oder die von Marcus. Für die zählt zum OOP mehr als nur laufzeit Polymorphie.
Tim schrieb:
Xin schrieb:
Das mindert das Risiko dumm darzustehen deutlich, wenn ein halbwegs kompetenter diesen Thread nochmal lesen würde (der allerdings minhen und mich für genauso bekloppt erklären würde, weil wir uns seitenlang diesem Kindergarten widmen.)
Deine Arroganz war bisher eigentlich nur zum Kotzen. Wie auch in diesem Beitrag. Aber spätestens nach deiner Eierschaukelei wie toll du dich doch mit Compilerbau usw. auskennst, bist du in meinen Augen einfach nur ein armer Drops. Sorry.
Lass ihn doch in seiner Traumwelt leben.
Ist doch logisch. Wir sind alle Kinder, weil er ständig beleidigt, pöbelt und als Argumentation unter anderem seine Eierschaukelei auffährt (ich hab D&E gelesen, obey!!!). ... Allllleeeessssss klaaaaaaaaar ... Mit der Argumentation wird man natürlich auch jeden Aussenstehenden überzeugen.
Ich frage mich eh, wie verschoben das Selbstbild seien muss, wenn man sich in einem Thread wie Xin verhalten hat, um sich am Ende "auf einen Sockel zu stellen" und sich beschwert, das man beleidigt wurde (und dann in dem gleichen Posting eine weitere Beleidigung auszustoßen).
-
Hat jetzt auch der letzte gerafft, dass solche Threads total fürn Ars ch sind und man ihn gleich auf Seite 2 hätte schließen sollen?
-
btw:
ich bin generell der meinung, das c++ style sprachen kaum objektorientiertes programmieren sind, da man überall imperativ arbeitet
die sprachen ermöglichen lediglich umsetzung objektorientierter designs
vollständige objektorientierung ist erst bei smalltalk style erreicht, wo z.b. if/else nachrichten bestehend aus closuere objekten an bool objekte sind
das sowas reichlich leistung kostet, dürfte klar sein
-
scrub schrieb:
Und nochmal für Dich: Du unterliegst einer grob falschen Selbsteinschätzung, wenn Du (vor einigen Seiten) meinst, Du hättest Dich hier behauptet. Im Gegenteil! Während Deine Definition immer noch etwa so dasteht wie anfangs, hat "Xin" im Verlauf der folgenden Seiten stark abgebaut.
Ich sehe das positiv: Die Definition steht unverändert zur Debatte. Das hat inzwischen Minhen übernommen, denn ich hatte nach 40 Seiten keinen Bock mehr. Das sehe ich nicht als 'abbauen'.
Ich denke, man darf erwarten, dass wenn man sich zu diesem Thema in der selbstbewußten Form äußert, wie das hier mit MrN begonnen hat, dass dann auch was kommt.
MrN schrieb:
Wie kommst du auf diesen Unfug? Das hätte ich von dir nicht erwartet.
Das war die volle Argumentation. Ich habe keine Ahnung, was hier wer von mir erwartet, ich erwarte von mir, dass ich entweder eine Meinung äußere, z.b. mit "Ich finde" oder etwas, was ich recherchiert habe. Recherchen "finde ich" nicht, sondern die sind so. Ich habe beschrieben, wo man das Recherchieren kann, ich habe erklärt, warum das logisch ist und ich habe Stroustup zitiert, der sich mehr mit dem Thema beschäftigt hat, als wir alle zusammen.
Menschen, die das getan haben, wie Stroustrup oder Marcus, werden mit den Worten abgetan "das sind nicht meine Vordenker". Die sind beide in der grundlegenden Verantwortung, dass hier überhaupt irgendwas geschrieben wird, aber ansonsten spielt es keine Rolle, was die erarbeitet haben.
Die Diskussion hat vor 40 Seiten stark abgebaut, den hier wurde von den wenigsten versucht Wissen zu formen und in eine allgemeinverständliche Formulierung zu bringen, sondern nur Meinungen geschrieben, deren stärkstes Argument "Ich finde" war und gegeneinander Zitate ausgespielt.Ich habe mir hier etliche Tage die Finger wund geschrieben, um Fragen zu beantworten. Um immer wieder die gleichen, bereits beantworteten Fragen zu beantworten, gekoppelt mit einem Vorwurf oder Beleidigungen, dass ich das ja nicht berücksichtigt hätte.
Sowas nervt.Ich durfte "Argumente" aus dem Weg zu räumen, die überhaupt nichts mit der Thematik zu tun hatten und mir vorwerfen lassen, dass ich Argumente nicht berücksichtige. Wie auch - sie haben ja nichts mit dem Thema zu tun. Warum Templates nichts mit OOP zu tun hat, habe ich schon X mal erklärt, aber es tauchte kürzlich wieder auf.
Um immer wieder wird man mit den idiotischsten Vorwürfen konfrontiert.Seit 50 Seiten schaue ich mir an, wie ich von einer ganzen Reihe von Leuten, beginnend mit MrNs "Wie kommst du auf diesen Unfug?" für blöd erklärt werde und soll mir dann vorwerfen lassen, dass ich nicht immer höflich und zuvorkommend war? Vermutlich habe ich an dem Unfug länger recherchiert, als MrN C++ programmiert.
Ich habe hier echt viel Zeit investiert, mit dem Ziel Wissen anzubieten. Nicht, um mich als "ach so toll" zu präsentieren. Ob ihr mich toll findet oder nicht ist mir auf gut Deutsch gesagt s-Punkt-egal. Wenn ich etwas erklären kann, dann macht mir das Spaß. Da haben zwei Seiten was von. Ich erkläre aber keine Dinge, wo ich mir unsicher bin. Ich bin auch gerne offen für neue Anregungen - ich suche und frage danach und spreche mit den Leuten über die merkwürdigsten Ideen. So findet sich immer etwas, was sich im Alltag tatsächlich gebrauchen läßt. Aber eine Diskussion läuft mit handfesten, logischen Begründungen. Stroustup hat für seine Definition seitenlang durchgekaut, ich bin ein sehr kritischer und mißtrauischer Mensch in solchen Dingen und Stroustrups Definition bietet absolut keine Angriffsfläche, wenn man verstanden hat, wie die Konzepte ineinandergreifen.
Die Definition ist rund und schlüssig und eindeutig und die praktische Umsetzung findet sich in allen mir bekannten Sprachen - manchmal offensichtlich und explizit, wie in C++, manchmal eher sprachintern wie in PHP.
Es ging mir nicht darum, ein Image auf- oder abzubauen. Daher ist es mir jetzt genauso egal, dass ich hier offenbar bei einer ganzen Reihe von Leuten unten durch bin. Viel wichtiger ist mir zum Beispiel, dass ich mit minhen und DEvent Leute im Forum gefunden habe, die sich durch Recherche, bzw. durch Überlegen besonders hervorgetan haben.Aus meiner Perspektive hat die Qualität des Forums unter diesem Thread massivst gelitten und das nicht verursacht durch mich, sondern weil sich hier tatsächlich Leute hinstellen und behaupten "Lieber eine schwammige Definition, die ich verstehe, als eine scharfe, die vielleicht nur noch Studierte anwenden können."
Solche Aussagen findest Du hier als Gegenargument im Thread. Etwas nicht zu verstehen, ist kein Beinbruch. Aber den eigenen Horizont nicht erweitern zu wollen, um etwas verstehen zu können. Das fand in diesem Thread statt, um jeden Preis.
Auf sowas reagiere ich zynisch, was in der Sache sicherlich auch eher im Einzelfall zum Denken anregte und vom Rest als Arroganz aufgefasst wird.Mein Anteil an der Geschichte ist unbestritten, dass ich nicht vorzeitig ausgestiegen bin und damit verhindert hätte, dass die Leute überhaupt derartige schwammiges Gedankengut veröffentlichen. Das hätte aber nichts daran geändert, dass einige hier so denken.
Und das ist für mich ehrlich gesagt sehr enttäuschend, denn dieses Forum ist eine der besten Anlaufstellen im deutschsprachigen Raum. Ich hatte mir vielleicht zuviel erhofft.
Letztendlich kommt hier keiner ohne blaues Auge aus dem Thread. Ich weiß weiterhin, dass Stroustrups Definition Allgemeingültigkeit besitzt, aber nur ein kleiner Teil im Forum stimmt dem zu. Recht zu haben, ist nichts, was man mit einer Umfrage klären kann und hier konnte man es auch nicht durch Gedankenaustausch.
Hier hat sich niemand mit Ruhm bekleckert, der einzige, der aus dem Thread nahezu ungeschoren herauskommt ist minhen. Er wird ohne jeden Zweifel recht behalten. Er stand nicht im Sperrfeuer von Beleidigungen und konnte schon vorher abschätzen, dass das Problem nicht ein kleine Ungenauigkeit der OOP-Definition ist, sondern eigentlich ein Desaster. Somit blieb ihm die Geduld, viele Fragen zu beantworten, obwohl einige der letzten Postings ("Das ist wohl ein schlechter Witz") auch darauf schließen lassen, dass er seinen Altruismus langsam verliert.Die Situation ist ziemlich verfahren.
Ich sehe keinen Grund mich von Stroustrup zu distanzieren und der Rest wird das weiterhin als Ignoranz und Arroganz auslegen. Das ist für mich das Verhalten von kleinen Kindern, was mir sicherlich als Reply auf diesen Post wieder als Arroganz ausgelegt wird.Also entweder singe ich hier die Hymne der Mehrheit, um ebendiese glücklich zu machen, oder ich bleibe da, wo ich bin und abgesehen von minhen und vielleicht DEvent weiß keiner, dass das, was ich hier erklärt habe, sinnvoll ist und werde dann vom Rest geschnitten.
Überzeugen konnte minhen oder ich nicht, was zu einer Win-Win-Situation führen würde. Die Masse konnte minhen und mich nicht überzeugen, was ebenfalls zu einer Win-Win-Situation geführt hätte.
Wie es derzeit aussieht, ist läuft dieser Threads auf eine Lost-Lost-Situation hinaus.
Ein Ergebnis, dass in einem professionellen Team unüblich ist. Wir outen uns damit alle als Anfänger, wenn es darum geht Probleme ziel- und lösungsorientiert zu lösen.Das ist bedauerlich für uns alle.
-
boah ich bin nur froh dat du nich mehr in deutschland lebst so dass ich dir nich über den weg laufen muss
-
Xin schrieb:
(Seite 55)
Wenn man sich mit Programmiersprachen beschäftigt, dann muss man überlegen wo sie herkommen und was sich die Autoren dabei gedacht haben.Du solltest Dir deshalb für Deine Definition von OOP einen anderen und treffenderen Begriff suchen.
Was Du definierst ist bestenfalls OOP auf Mikroebene bzw. nur noch Laufzeitoptimierung.
Einen praktischen Nutzen davon haben nur Kompilerhersteller.Die Definition von OOP ergibt sich (von selbst) aus ihrer "Stellung" im Software-Engineering.
Und aus dem Umstand, dass sie entwickelt wurde als möglicher Ansatz zur Bewältigung der Software-Krise.Wenn Daten und deren Manipulation zu Einheiten (Objekten) zusammengefasst werden, lassen sich z.B. Programmfehler schon anhand der produzierten Daten nicht nur finden, sondern schnell finden.
Mehr steckt nicht dahinter.
(amen!)