Per anni ho svolto attività algoritmiche, scrivendo strutture di dati scalabili per la ricerca su Internet, ad esempio Randomized Binary Search Trees per Auto Recommendation, BitMaps, Wisdom of Crowd based Algorithms usando Graphs, scrivendo alcuni algoritmi di Machine Learning interessanti come Clustering, Anomaly Detection, lavorando su materiale di recupero informazioni e così via
C'è una cosa comune nelle cose che ho menzionato sopra. Tutto quanto sopra, ciascuno se codificato in una lingua come C ++ richiede una manciata di classi. Voglio dire che sono problemi interessanti ma non sono complessi in termini di roba Object Oriented pesantemente caricata. Non ho mai usato l'ereditarietà, roba virtuale, ecc. Benché io abbia usato molto la programmazione generica, i modelli e così via.
Adoro C ++ (- Bulky OO roba, A me piace quello che dice Joe Armstrong, creatore di Erlang, In OO World se chiedi una banana ottieni una grande giungla con un gorilla che tiene la banana). Mi piace scrivere in altri linguaggi come Java, anche Python.
Ora la mia domanda è che mi sto godendo il tipo di progetti / Algoritmi su cui sto lavorando ho davvero bisogno di imparare cose OO, sarò un programmatore / programmatore migliore usando solo cose come Inheritance, Dynamic Polymorphism (virtuals )? O posso passare al mondo della Programmazione Funzionale (non l'ho fatto fino ad ora) che mi attrae di più poichè posso semplicemente concentrarmi su compiti / algoritmi e non lasciare che la roba di OO basata su Kingdom Of Noun, abbia-a, è-una regola me?
In breve / OO le cose mi possono aiutare per il tipo di progetti / Algoritmi che ho menzionato sopra?
EDIT:
Un link estremamente interessante da aggiungere qui: