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.
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.
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.
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.