Un paradigma es un modelo o patrón que se toma como referencia para actuar o pensar sobre la realidad. Desde el punto de vista de la programación, podemos decir que un paradigma es una manera o estilo de programación de software que nos permite organizar y escribir código para que la computadora haga lo que queremos, es decir, que es un patrón de pensamiento para resolver problemas. Cada paradigma ofrece una forma particular de pensar y abordar un problema, y se basa en un conjunto de ideas, principios y reglas que un programador sigue al escribir código. Por lo tanto, un paradigma determina la estructura final de un programa y la manera en que se resuelven los distintos problemas que puedan surgir durante su desarrollo.
Su propósito principal es guiar la construcción de software, facilitando la creación de sistemas que respondan a diferentes requisitos, necesidades y desafíos de manera efectiva. Cada desarrollador tiene la posibilidad de elegir el paradigma más adecuado para un problema específico, lo que brinda flexibilidad para adaptar su manera de programar y optimizar los resultados. Al comprender los distintos paradigmas, se obtienen nuevas perspectivas que permiten escribir código más eficaz, legible, organizado y fácil de mantener.
La programación orientada a objetos surgió en respuesta a la creciente necesidad de modularidad y organización en cuanto el desarrollo de software.
Noruega 1967:
Este enfoque fue implementado principalmente en el lenguaje SIMULA-67, desarrollado por Ole-Johan Dahl y Kristen Nygaard en Noruega 1967.
El éxito de Simula-67 en la simulación llevó a la idea de que el paradigma podría ser útil en un contexto más amplio, no solo para simuladores, sino también para el desarrollo de software en general.
Smalltalk y el auge de la POO:
Uno de los logros más importantes en la evolución de la POO fue el desarrollo del lenguaje Smmalltalk en los años 70 por el equipo de Alan Kay en Xerox PARC.
Este lenguaje llevó la programación a un nivel más completo, introduciendo conceptos clave como la encapsulación, el polimorfismo y la herencia.
Además, este lenguaje influyó notablemente en la comunidad de desarrolladores y mostró el potencial de la POO para mejorar la modularidad y escalabilidad en proyectos de software más grandes.
Adopción de la POO:
Mientras que los sistemas de software iban desarrollándose, el enfoque de la programación orientada a objetos fue cada vez mas aceptado.
En los años 80, lenguajes como C++ popularizaron la POO, combinando características de C con las ventajas de este paradigma.
Esto permitió a los devs migrar mas fácilmente al paradigma sin dejar de usar un lenguaje familiar.
En los años 90, la llegada de Java consolidó aún mas la Programación Orientada a Objetos, ya que este lenguaje estaba diseñado desde cero para ser completamente orientado a objetos y ofrecía ventajas como la portabilidad y la facilidad de uso.
Hoy en día este paradigma sigue siendo uno de los paradigmas más utilizados en desarrollo de software. Lenguajes modernos como Python o C# también han adoptado este paradigma como parte integral de su diseño, y gran parte del software comercial y empresarial está escrito usando este enfoque.