mich irritiert irgendwie der Spiegel an der Wand am meisten…
Das ist der Spiegel, der unauffällig auf einen dritten Bildschirm mit Stapel Überlauf zeigt.
Porträt des schlechtesten Java Entwicklers.
Für GCC Kompilierfehler müsste man den linken noch drehen und beide nebeneinanderstellen.
Die sind wenigstens deutsch!
Was es nicht besser macht.
Hallo? Wo sind wir hier bitte?
Es SPRICHT
Das beschreibt es sehr gut…
Python sein wie:
“Du bist ein Objekt! Und du bist ein Objekt! ihr seid alle Objekte!”
Wohl eher: ihr seid alle Enten!
JS: Bin ich ein Witz für dich?
Ja. Nieder mit dem JS!
JS: [object Object]
In JS ist nicht alles ein Objekt, es gibt auch primitive Datentypen. In Python hingegen ist so ziemlich alles ein Objekt, selbst die Klasse
object
selbst:assert isinstance(object, object)
V.a. ist das nette an JS, dass es Objekte hat, die einfach Objekte sind, ohne Instanzen von irgendwas sein zu müssen…
Also, lass dich nicht aufhalten. Aber OO ist mein letzter Platz. Ein guter Programmierer kennt sowieso alle Wege und nimmt den besten Ansatz für sein Problem.
Wann nehmen Leute OO und wann PP?
Generell kann man mit allem alles machen.
Im Imperativen Bereich würde ich die Frage nach OOP oder nicht fast schon weniger auf das Problem als auf das Team richten. Hat man viele verschiedene Fähigkeitslevel und generell ein sehr großes Team, dann bietet sich OOP an. Die Codebase ist dadurch zwar größer und man schreibt mehr Boilerplate, jedoch hat man ein paar mehr Schutzmechanismen vor Anfängerfehlern. Die große Ausnahme ist sowas wie Spieleentwicklung, die generell sehr auf OOP setzt. Es geht auch ohne, aber da Spiele inherent auf Objekten basieren bietet es sich einfach für die Modellierung an. Je kleiner das Projekt, desto weniger lohnt sich die Mehrarbeit von OO. In der freien Wirtschaft ist sie aber generell fast überall.
Funktionale Programmierung bietet sich am meisten für die Datenanalyse an. Grob gesagt, immer wenn man über Daten denkt, die durch bestimmte Stationen geleitet werden, um ein bestimmtes Ergebnis zu erhalten, ist man hier richtig. Die wahre Schönheit der FP kommt zur Geltung, wenn man keine internen Zustände abspeichern muss - wie man zum Beispiel bei Spielen muss, wo jedes Objekt HP oder Ähnliches hat. Geht wie gesagt auch, aber dann verliert man die Eleganz. In der freien Wirtschaft findet man selten reine FP, aber Probleme dieser Art haben oft eine FP inspirierte Lösung - weshalb es generell von Vorteil ist datenorientiert denken zu können.
Reine Logische Programmierung, in aller Ehrlichkeit, habe ich außerhalb von akademischen Einrichtungen noch nicht gesehen. Konzepte davon werden in der freien Wirtschaft im Bereich von Datenbanken genutzt.
Als ich damals vor einigen Jahrzehnten Informatik studiert habe, wurde uns erzählt, dass die Fahrplanauskunft unseres Nahverkehrsverbundes in Prolog geschrieben sei. Ich kann es nicht mehr beweisen und wahrscheinlich stimmt es inzwischen auch schon nicht mehr, aber das wäre ein sinnvoller Einsatzzweck für logische Programmierung. In Prolog kannst Du halt einfach so ein Programm schreiben:
fahrzeit(a-straße,bahnhof,5). fahrzeit(a-straße,clairewerk,7). fahrzeit(bahnhof,dorfplatz,13). fahrzeit(clairewerk,dorfplatz,12). fahrzeit(X,Y, Zeit) :- fahrzeit(X,Umstieg,Zeit1), fahrzeit(Umstieg,Y,Zeit2), Zeit is Zeit1+Zeit2.
Und dann abfragen:
? fahrzeit(a-straße,dorfplatz, X). Yes (X=18) fahrzeit(a-straße,bahnhof,5). fahrzeit(bahnhof,dorfplatz,13).
Wenn Du dann noch Umsteigezeiten berücksichtigen willst, und nicht nur irgendeine, sondern möglichst die schnellste Strecke bekommen willst, Taktungen, Streckensperrung etc berücksichtigen musst, wird es natürlich nochmal deutlich komplizierter, aber dafür, dass das im Prinzip nur eine Zeile echter Code ist, ist das Ergebnis schon ganz gut.
Ja, ist leider schon speziell, was mit Prolog wirklich gut funktioniert. Wenn du etwas machen willst, wo Schritt A vor Schritt B ausgeführt werden sollte, dann wird es bereits anstrengend.
Ich finde, am besten betrachtet man Prolog als eine Datenbank, wo man Regeln abspeichert und dann Abfragen stellen kann. Und dann nimmt man eine (andere) Programmiersprache, um mit den abgefragten Informationen etwas umzusetzen. Also tatsächlich gibt es auch für viele Programmiersprachen Bibliotheken, mit denen man Prolog für sowas einbetten kann.
Ich Leg das mal hier ab:
Ich würde ja mitlachen, aber ich verstehe das nicht 🥺
Echt, du magst das? Jeder Furz ist eine Instanz der Klasse Überfürze? Und die sind Unterklasse der Klasse Gasförmige Ausscheidungen? Und die sind Unterklasse der Superklasse Ausscheidungen? Viel Spaß…
Ich bin tatsächlich ein großer Ventilator von OOP.
Ventilated? Das kann kein Zangendeutsch sein…
Ne, aber Autokorrekturdeutsch.