Ich programmiere regelmäßig in R in einem professionellen Kontext und schreibe auch Pakete für Kunden oder Mitarbeiter. Einige der Programmierer hier haben einen Java-Hintergrund und bestehen darauf, alles objektorientiert mit S4-Methoden zu tun. Andererseits habe ich die Erfahrung gemacht, dass S4-Implementierungen häufig schlechter abschneiden und viel mehr Kopfschmerzen verursachen, wenn Sie versuchen, den Code dazu zu bringen, das zu tun, was Sie möchten.
Ich stimme definitiv zu, dass Sie in einigen Fällen in der Lage sein müssen, komplexe Objekte zu konstruieren oder vorhandene Objekte kontrolliert anzuhängen. Meistens können S4-Implementierungen jedoch auch problemlos mit klassischen Listen durchgeführt werden, ohne den Aufwand, standardGeneric, Methoden, Konstruktoren, Initialisierer und dergleichen zu definieren.
Wann sollten Sie S4-Implementierungen für R schreiben?
EDIT: Aus Gründen der Klarheit schätze ich die Antworten und die Diskussion über OO im Allgemeinen in R. OOP kann in R auf vielfältige Weise durchgeführt werden, aber meine Frage zielt wirklich auf den Mehrwert der Verwendung von S4-Methoden speziell ab.