Diskussion:Objektorientierte Programmierung

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Diese Diskussionsseite dient dazu, Verbesserungen am Artikel „Objektorientierte Programmierung“ zu besprechen. Persönliche Betrachtungen zum Thema gehören nicht hierher. Für allgemeine Wissensfragen gibt es die Auskunft.

Füge neue Diskussionsthemen unten an:

Klicke auf Abschnitt hinzufügen, um ein neues Diskussionsthema zu beginnen.
Archiv
Wie wird ein Archiv angelegt?

Die Klasse "Auto"[Quelltext bearbeiten]

Hi,

ich wollte nur kurz einen Gedanken zur Erklärung von Objektorientierung loswerden. Ich finde in Bezug auf Erklärung von Klassen diese typischen Autobeispiele schrecklich, weil sie jemandem, der funktional programmieren gelernt hat, in keinster Weise klar machen, was an Objektorientierung sinnvoll sein soll. Für nicht vorgeprägte Anfänger mag das Autobeispiel interessant sein, wenn aber jemand schon abstrakt denken gelernt hat, ist der konkrete Gegenstand "Auto" ehr hinderlich. Besser wäre, man erklärte es z.B. an Hand eines Kontos oder einer Datenbank.

Objektorientierung bedeutet imho nicht, Programmierung an der realen Welt zu orientieren, sondern Variablen und Funktionen sinnvoll und sicher zu gruppieren und den Zugriff darauf transparenter und einfacher zu machen.

Dietrich 12:21, 19. Jul. 2015 (CEST) (ohne Benutzername signierter Beitrag von 2A02:908:F610:5181:F6EC:38FF:FEAB:5671 (Diskussion | Beiträge))

Ich finde generell den Artikel nicht gut geschrieben. Ich bin zwar mit Oracle tätig und habe mit OOP wenig am Hut, aber es ist jetzt wenigstens so, dass ich ein wenig vom Artikel verstehe. Als ich am Anfang meiner Lehre hier mal reingeklickt hab, sind mir fast die Tränen gekommen, weil alles völlig nichtssagend und technisch geschrieben ist. Jemand, der einfach nur wissen will, was OOP ist, kommt so nicht weiter voran.--Chris1202 (Diskussion) 13:31, 31. Okt. 2019 (CET)[Beantworten]

Ich kann mich Dietrich nur voll anschließen. Als ich gelernt habe, objektorientiert zu programmieren, haben mir die üblichen Beispiele (Autos, Insekten usw.) beim Verständnis zunächst nicht geholfen. Diese laufen auf die Erklärung hinaus: „Wir sind in unserer Umwelt von Objekten umgeben, folglich sollten wir auch objektorientiert programmieren.“ Dies verstellt den Blick dafür, dass „Objektorientierung“ ein willkürlich (IMHO unglücklich) gewählter Begriff ist, der etwas extrem Abstraktes beschreibt, was zwar die reale Welt abbildet, diese aber nicht zum Vorbild nimmt. Es ist sehr schwierig (wenn nicht unmöglich), ein einfaches Beispiel zu konstruieren, um anschaulich alle Konzepte von OOP zu beleuchten. Sinnvolle Beispiele finden sich bei der Entwicklung Grafischer Benutzeroberflächen – meiner Meinung nach die ureigene Domäne von OOP, und nicht zufällig hat sich dieses Konzept praktisch zeitgleich mit komplexen GUIs wie Windows durchgesetzt. --Phrontis (Diskussion) 10:40, 7. Nov. 2019 (CET)[Beantworten]

"Exemplar" statt "Instanz"[Quelltext bearbeiten]

Ich möchte zur Diskussion stellen, Alan Kays Defintion besser zu übersetzen. Der Begriff "Instanz" hat sich zwar in der Informatik komischerweise als Fehlübersetzung von "Instance" festgesetzt, das ändert jedoch nichts daran, dass das falsch ist. Instance ist korrekt übersetzt das Exemplar oder das Beispiel. Daher wäre ich dafür, das auch so zu übersetzen. Bitte um Meinungsaustausch. --Bernhard Steppan (Diskussion) 11:49, 21. Aug. 2021 (CEST)[Beantworten]

Meiner Meinung nach wäre das Umbenennen aussichtslos. Die Begriffe "Instanz" und "Instanzvariable" sind in der deutschsprachigen informationstechnischen Literatur etablierte und unmissverständliche Fremdwörter. ~~---- (nicht signierter Beitrag von Bautsch (Diskussion | Beiträge) 13:11, 21. Aug. 2021 (CEST))[Beantworten]
Okay, war ja nur ein Versuch, die Autoren darauf aufmerksam zu machen, dass man als Enzyklopädie nicht einfach abschreiben sollte, was fehlerhafte Literatur einem vorsetzt, sondern etwas reflektiert. Man sollte sich z.B. meiner Meinung nach zudem Mühe geben, verständliche Übersetzungen anzubieten statt "Die Klasse beinhaltet das Verhalten aller ihrer Instanzen (in der Form von Objekten in einer Programmliste)". Das schafft doch selbst der Google-Übersetzer besser ;) Und: Weiß der Autor dieser Zeilen wirklich, was Alan Kay ursprünglich gemeint hat? Sorry, aber der Artikel ist einfach stark verbesserungsbedürftig. Zum Beispiel müsste man bei der Tabelle mit Übersetzungen der deutschen in die englischen Fachbegriffe bei "Objekt" wenigstens an allererster Stelle "Object" setzen. Formulierungen wie "Objekte werden durch das Klonen bereits existierender Objekte erzeugt und können anderen Objekten als Prototypen dienen und damit ihre eigenen Methoden zur Wiederverwendung zur Verfügung stellen, wobei die neuen Objekte nur die Unterschiede zu ihrem Prototyp definieren müssen." sind doch nur fragwürdig.--Bernhard Steppan (Diskussion) 23:54, 22. Aug. 2021 (CEST)[Beantworten]

Artikel völlig unverständlich[Quelltext bearbeiten]

Hallo,

Hab’ mich richtig gefreut, als ich gesehen habe, dass die Wikipedia einen Artikel über objektorientierte Programmierung hat. Genausogroß ist die Enttäuschung jetzt nach wiederholtem Lesen und Verständnisversuchen. Der Artikel ist von Fachleuten, denen es egal ist, dass Laien ihre Erläuterungen nicht verstehen. Um nicht missverstanden zu werden: Ich sage nicht, dass der Artikel falsch ist. Ich sage nur, dass er total unverständlich ist.

  • Satz 1 ist eine Tautologie a la „die weiße Wand hat weiße Farbe.“
  • Satz 2 tut, als ob er eine Definition ist und sagt, dass es ein Merkmal der OOP sei, eine Softwarearchitektur zu haben, die an den Grundstrukturen irgendeiner Wirklichkeiten ausgerichtet ist. Mag ja sein. Soll ich daraus aber folgern, dass Nicht-OOP eine Architektur hat, die nicht an der Grundstruktur irgendeiner Wirklichkeit ausgerichtet ist? Welche Wirklichkeit? Welche Anwendung? Welche Ausrichtung? Kein Wort dazu. Eine Definition, die selbst undefinierte Begriffe verwendet, ist jedenfalls keine Definition. Vielleicht freut sich ein Fachmann daran, wie schön der andere Fachmann das jetzt gesagt hat. Aber dem Enzyklopädieleser nutzt das nichts, Zeitverschwendung es verstehen zu wollen.
  • Weiter unten lange Zitate von Kay. Er mag ja ein verdienstvoller Mann zu sein, der auch verdient hat, dass man ihn nennt und ihm huldigt. Aber alles für den Laien völlig nichtssagend. „Alles ist Objekt“: Großartig! (>> auch die Nicht-OOP?).
  • Weiter unten „extreme late binding of all things”: Was ist Binden, welche „things“?

Und so geht es endlos weiter, Fachkauderwelsch für die, die es eh schon wissen. Die, die diesen Artikel verstehen, brauchen ihn nicht, und die, die ihn brauchen, verstehen ihn nicht. Sehe gerade, dass weiter oben jemand den gleichen Frust schob und ihm "fast die Tränen" gekommen sind. Das ist das am besten nachvollziehbare Statement hier.

Müde bin ich, geh zur Ruh ... --84.58.21.32 17:16, 6. Feb. 2022 (CET)[Beantworten]

WP:Sei mutig und hilf mit den Artikel zu verbessern. Zu lamentieren, dass der Artikel "total unverständlich" sei, das "endlos weitergeht", angeblich "weiter oben jemand den gleichen Frust schob" etc. hilft nicht. Zu deinen einzelnen Punkten:
  • Der erste Satz ist keine Tautologie, da er klärt dass es ein Programmierparadigma ist. "Ein Schimmel ist ein weißes Pferd". Außerdem geht der Absatz noch weiter und erklärt das Lemma genauer. Natürlich ist der Satz verbesserungswürdig - aber weder unverständlich noch tautologisch
  • Satz 2 hast du richtig verstanden. Die OO Programmierung bildet die "Wirklichkeit" der Fachlichkeit ab, die durch die Software umgesetzt werden soll. Schreibst du eine Software für Schiffe wirst du in der OO die Klasse Schiff mit den für die Software wichtigen Eigenschaften und Funktionalitäten von Schiffen finden. In Nicht-OO eben nicht.
  • Die Antworten zu deinen Fragen zum 2ten Satz stehen im 2ten Satz: Welche Wirklichkeit -> "desjenigen Bereichs der Wirklichkeit, der die gegebene Anwendung betrifft", Welche Anwendung? -> "die gegebene Anwendung"
  • Das Zitat von Kay ist auch selbsterklärend: "Alles ist ein Objekt" - ja in der OO Programmierung ist alles ein Objekt (dass sich der Satz auf OO bezieht und nicht auf die Nicht-OOP steht vor dem Zitat
  • Was ist Binden? Die Frage ist nicht dein Ernst? In der Übersetzung des Zitates ist "spätmögliche Bindung" verlinkt - dort kannst du nachlesen. Ein Lemma muss und soll nicht alles erklären, auf das dieses Lemma aufbaut. Genau dafür gibt es verlinkte Lemmas.
Also wennst konstruktive Kritik hast (d.h. nicht nur sagst, was du nicht verstanden hast, sondern zumindest versucht hast die Dinge zu verstehen und z.B. Links gefolgt bist) dann werden die Autoren vielleicht auf Grund deiner Kritik was am Artikel verbessern. Wenn du wo anders (z.B. in den anderen WP Sprachen oder in einem anderen Buch) bessere Erklärungen findest, dann steuere sie doch bei. Noch besser ist, wenn du gleich selbst Verbesserungen einbringst. Die WP schreibt sich nicht von alleine --Sebastian.Dietrich  ✉  13:11, 10. Feb. 2022 (CET)[Beantworten]