Wo findet man Objektorientiertes Programmieren im Alltag?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Ganz ehrlich: ich verstehe die Frage nicht... Im Alltag finde ich zunächst überhaupt kein "objektorientiertes Programmieren", weil ich nur mit fertigen Programmen zu tun habe... LibreOffice am PC, Smartphone-Apps, den Ladecontroller der elektrischen Zahnbürste... Per se lässt sich nicht sagen, ob etwas objektorientiert programmiert ist (außer vielleicht bei Java, wo jede Klasse eine eigene Datei bildet und das Mapping erst zur Laufzeit geschieht)

Mir fällt auch kein wirkliches Beispiel ein, wo objektorientierte Programmierung überhaupt keinen Sinn machen würde... Treiber/Teile von Betriebssystemen (z.B. bei Linux) werden meines Wissens noch in C programmiert, Mikrocontroller oft auch. (wobei die populäre Arduino-API ein Gegenbeispiel wäre)

In dem Sinne wäre die Antwort wohl: überall und nirgends...

Prädestiniert ist OOP z.B. bei grafischen Oberflächen, weil jedes Element ein Objekt sein kann...

Hallo  WhoAml!

In einem Kommentar von einem meiner Vorredner konnte ich heraus finden, was du meinst, daher direkt zu Thema;

Ein mannigfaltiger Anteil aller Seiten im Internet sind noch auf Java gescriptet
Handyspiele laufen auch oft über Java

Chatportale, Onlineshops, eLearning tools für Fahrschulen und große Unternehmen.
Nachrichtenticker im Bordcomputer deines Autos, des Teletextes, deiner Tastatur

Film Menüs bei DVD, BluRay und co
Videobearbeitungsprogramme, Online Poker, der Taschenrechner an PC und Handy
Digitale Werbetafeln in Bus, Bahn und Hauswänden in größeren Städten.. die Auswahl ist enorm für deine Präsentation!

LG Menin

Meiner Meinung nach findest du das als Verbraucher überhaupt nicht heraus und es ist völlig irrelevant.

Anwendungen können im OOP Style entwickelt werden oder auch nicht, ohne das es auch nur im geringsten auffällt, dass es hier Differenzen gibt.

Die Antwort ist also: überall und nirgendwo. Es spielt für den Anwender absolut keine Rolle. Es ist auch nicht schlimm wenn etwas im OOP Style ist - oder auch nicht. Das Produkt wird hierdurch für den Anwender nicht besser oder schlechter.

Niemand entwickelt Produkte, die keiner braucht.


WhoAml 
Beitragsersteller
 30.06.2018, 17:08

Es war ja auch nicht gefragt ob das Paradigma für den Endnutzer eine Rolle spielt, sondern wo er es "antrifft", auch wenn er es nicht mitbekommt

0
Kieselsaeure  30.06.2018, 17:11
@WhoAml

komisch das es dann trotzdem als präsentationsthema zugelassen wurde. ist ja eigentlich ziemlich sinnlos.

naja du kannst dir ja mal den sourcecode von bekannten projekten ansehen und ermitteln ob es sich um oop handelt oder nicht.

0

Wie wäre es, wenn Du Deine Frage überarbeitest und präzisierst, was Du mit 'im Alltag begegnen' nun meinst?

Grundlegend ist OOP ein Paradigma, objektbasierte Modellierung kann einem das Leben deutlich einfacher machen, vor allem dann, wenn man es ohnehin mit gegenständlichen Dingen zu tun hat. Wir sind es gewohnt mit Objekten zu interagieren, daher bietet sich diese Modellierung oft an.

Neben der schon ewähnten GUI ist z.B. ein Vektorzeichenprogramm, bei dem man Objekte manipuliert, ein Beispiel einer Software, bei der sich OOP anböte.


WhoAml 
Beitragsersteller
 30.06.2018, 04:22

Erstmal sorry dafür dass ich meine Frage so generell bzw. unpräzise gestellt habe.
Was ich erfahren möchte ist: In welchen Bereichen treffen wir im Alltag auf Software welche hauptsächlich nach einem OOP Paradigma erschaffen wird? Bzw. mit welcher Software (und den dadurch betriebenen Geräten) kommt man (unbewusst) im Alltag in Kontakt, welche primär mit z.B. Sprachen wie Java oder C# programmiert wird?
Ich bin mir zwar dessen bewusst dass man vieles mit OOP erschaffen bzw. programmieren kann, jedoch gibt es sicherlich einiges wobei man seltenst auf Programme stößt, welche einem deklarativen Paradigma folgen, oder etwa nicht?
Ich entschuldige mich im Voraus falls ich hier offensichtliche falsche bzw unsinnige Aussagen von mir gebe, da ich mich erst seit kurzem mit OOP und Java befasse.

0
kmkcl  30.06.2018, 08:55
@WhoAml

Hmmm... ich verstehe worauf du hinaus willst, aber meine Antwort verändert sich nur geringfügig. Mal die Frage umgedreht: wo findet man keine Objektorientierung:

Im Betriebssystem-Code von Linux - der soll extrem schnell sein und Teile waren früher direkt in Assembler geschrieben. Mittlerweile sind die C-Compiler so gut, dass man diese Teile stückweise durch C ersetzt. Das ist eben sehr maschinen-nah und effizient. Daher wird es auch häufig auf Mikrocontrollern eingesetzt - vor 15 Jahren hätte man sagen können: solche befinden sich in elektronischen Spielzeug, Fernsehen, DVD-Playern, Receivern, Radios mit Digitalanzeige... - heute findet man (nebenbei gesagt) eher ganze Computer in solchen Geräten, aber in sämtlichen Smarthome-Geräten könntest du noch Mikrocontroller programmiert in C finden.

Objektorientierung ist meiner Ansicht nach ein Paradigma, was die Softwarewelt revolutioniert hat und dafür gesorgt hat, effizient komplexere Programme zu erstellen - eben weil es eine saubere Trennung zwischen den Objekten gibt. (und wie Karl Ranseierlll schreibt unser Denken so ist) Sie lässt sich überall einsetzen. C++ ist kompiliert extrem ähnlich zu C. Einen kleinen Overhead (also dass vom Prozessor mehr ausgeführt werden muss als für die programmierte Funktionalität nötig/ mehr Programmspeicher nötig) hat sie - wie andere Objektorientierte Sprachen auch. (daher seltener auf Systemen, die extrem schnell sein müssen, oder mit sehr wenig Speicher/ Hardwareressourcen auskommen müssen)

Für Java gibt es aber auch Mikrocontroller, die dieses (eingeschränkt) direkt verarbeiten können. Ein Beispiel sind Chipkarten mit Prozessoren.- also moderne Sim-Karten und Geldkarten. (also auch auf winzigen Geräten kann im Prinzip Java laufen)

Die Funktionalität von Internetseiten ist aller Regel nach objektorientiert programmiert (Javascript im Browser + PHP/Python/Java/... im Hintergrund)
Ich habe da jetzt nicht die Erfahrung, aber hinter normaler PC-Software (egal was, ob Datenbank-Systeme, interagierende Serversysteme, selbstlernende Algorithmen, Desktop-Programme,...) würde ich immer OOP vermuten.

1
KarlRanseierIII  01.07.2018, 00:30
@WhoAml

Naja, OOP ist schon verbreitet. Systemnaher Code ist oft in C geschrieben, keine Frage und bei manchen uC wirst Du auch um C (oder eine Abart) nicht herumkommen.

Andererseits, muß nicht jeder BluRay-Player Java können und ist dann OOP nicht quasi schon zwingend?

Die Firmware eines Switches oder Routers ist wohl weitgehend in C implementiert, auf einem 'Smart-TV' wirst Du beides gleichermaßen finden.

Letztlich entscheidet natürlich jeder Entwickler individuell, in welcher Sprache und nach welchem Paradigma er entwickelt. Ich kann einen httpd in C++ nach Prinzipien der OOP entwerfen, ich kann einen Audioeditor in plain C schreiben.

Worin eine konkrete Software geschrieben ist, lässt sich nur schwer sagen, es sei denn der Sourcecode ist öffentlich. (Na, man kann es mitunter schon anhand der Analyse der Binaries und der Symbolnamen, aber das führt zu weit)

Wo ich jederzeit einen Bogen um OOP machen würde: Beim dynamischen Linken zur Laufzeit, zu systemnah und das Name-Mangling von C++ wird da zur Hölle. Dann müßtest Du C-Linkage nehmen und das macht es auch nicht gerade besser.

Apropos, es gibt ja auch durchaus Compiler, die in C++ geschrieben sind, habe ich mir sagen lassen :-D.

0