Durante años, he estado haciendo cosas algorítmicas, escribiendo estructuras de datos escalables para la búsqueda en Internet, por ejemplo, árboles de búsqueda binaria aleatoria para recomendación automática, mapas de bits, algoritmos basados en la sabiduría de la multitud que usan gráficos, escribiendo algunos algoritmos interesantes de aprendizaje automático como agrupación, detección de anomalías, trabajando en cosas de recuperación de información, etc.
Hay una cosa común en las cosas que he mencionado anteriormente. Todo lo anterior; cada uno si está codificado en un lenguaje como C ++ requiere un puñado de clases. Quiero decir que son problemas interesantes, pero no son complejos en términos de material orientado a objetos muy cargados. Nunca he usado herencia, material virtual, etc. Aunque he usado mucho la programación genérica, las plantillas, etc.
Me encanta C ++ (- Cosas voluminosas de OO, como me gusta lo que dice Joe Armstrong, creador de Erlang, en OO World si pides un plátano, obtienes una gran jungla junto con un gorila que sostiene el plátano). Disfruto codificando en otros lenguajes como Java, Python también.
Ahora mi pregunta es, ya que estoy disfrutando el tipo de proyectos / Algoritmos en los que estoy trabajando, ¿realmente necesito aprender cosas OO, seré un mejor codificador / diseñador simplemente usando cosas como Herencia, Polimorfismo dinámico (virtuales)? O puedo pasar al mundo de la programación funcional (no lo he hecho hasta ahora) que me atrae más, ya que puedo centrarme en las tareas / algoritmos y no dejar que las cosas de OO basadas en Kingdom Of Noun sean una regla ¿yo?
En resumen, ¿pueden / pueden ayudarme las cosas de OO para el tipo de proyectos / Algoritmos que he mencionado anteriormente?
EDITAR:
Un enlace extremadamente interesante para agregar aquí:
http://steve-yegge.blogspot.in/2006/03/execution-in-kingdom-of-nouns.html