CPIICyL organiza: La Programación Orientada al Objeto debe morir
EnglishEspañol

EnglishEspañol
   

¿Es posible que la programación orientada a objeto sea la causa raíz de la mayor parte del sobrediseño que acaba haciendo que escribamos código innecesariamente complejo? ¿Qué alternativas existen? ¿Hay alguna forma de “domar” la complejidad de OOP y quedarse con las “partes buenas”? ¿Por qué es esencial mantener la simplicidad cuando las bases de código superan el millón de líneas?

Descubre la respuesta a esas preguntas y muchas más en Valladolid, el 3 de Diciembre a las 17:30h en el Parque Científico del Campus Miguel Delibes con la presencia de los siguientes expertos:

  • José Daniel García: Profesor Asociado de la Universidad Carlos III y Líder del Comité Español de Estandarización de C++. Doctor, experto en high perf computing y web infrastructure, autor y miembro activo en la evolución de C++.
  • Javier Garzás: Consultor experto en Ingeniería de Software. Profesor en la Universidad Rey Juan Carlos. Doctor en Informática y autor de numerosos libros y del bloghttp://www.javiergarzas.com

Agenda

  • 17:30 – 18:00 Apertura de la jornada.
  • 18:00 – 18:20 Introducción al problema del sobrediseño de software en grandes bases de código + problema práctico – Pablo Santos, Decano del CPIICYL y Director de Desarrollo de Plastic SCM.
  • 18:20 – 18:40 Los riesgos, problemas y alternativas de OOP – José Daniel García.
  • 18:40 – 19:00 Las fortalezas de OOP ~@~S Javier Garzás.
  • 19:00 – 20:00 Mesa redonda sobre ventajas, desventajas y alternativas a OOP con casos prácticos e intervención del público.

Planteamiento
Un programador experto resuelve problemas escribiendo código mucho más simple que un novato. El código simple, las estructuras y diseños sencillos y fáciles de entender son un signo de experiencia.

La sencillez y facilidad de lectura son además imprescindibles en proyectos con bases de código grandes.

“Programs must be written for people to read, and only incidentally for machines to execute”. Manifiesta el famoso libro “The Structure and Interpretation of Computer Programs”. Si escribir código sencillo y legible es tan esencial, entonces ¿por qué hay una tendencia tan acusada de escribir código complicadísimo y auténticos castillos que acaban siendo innecesarios? Parece que todos coincidimos en que el ~@~\sobrediseño~@~] es uno de los pecados capitales del software. Y parece que es una afección que tarda años en curarse, porque casi todos los novatos tienen a complicarse la vida sobremanera para resolver cualquier problema.

Todos asumimos la “premature optimization” como un claro factor que lleva al sobrediseño y al código ininteligible pero, ¿y si la orientación a objeto fuera también un problema en sí mismo? Cuando aprendemos orientación a objeto asentamos una serie de conceptos de “lo que está bien” y “lo que está mal” que luego se tardan mucho en superar. Un ejemplo es el abuso de la herencia: usar herencia de forma extensa es un buen signo para demostrar que dominas OOP cuando cursas las asignaturas correspondientes, sin embargo lo que sirve para aprobar un examen (lógico, por otro lado, para demostrar que se conocen las técnicas esenciales con casos de laboratorio) no tiene por qué aplicar en el mundo real.

Jerarquías innecesarias, confusión de variables miembro con variables globales disfrazadas y una clara tendencia a “construir soluciones generales” (generalizar) son algunos de los “smells” que desprende la OOP.

¿Serán realmente problemas intrínsecos de OOP? ¿Se aprendería mejor y más rápido si no nos formásemos directamente en orientación a objeto? ¿Cuáles son las alternativas?

 

Todo esto y mucho más en la sesión “La OOP debe morir”

Plazas limitadas! Inscríbete ya!

Enlace de inscripción: https://laoppdebemorir.eventbrite.es/