-
Paradigma Imperativo
Surge con las primeras computadoras programables. Las instrucciones controlaban directamente el hardware, se caracteriza por programas como secuencias de comandos que cambian el estado de la memoria y el uso intensivo de variables y saltos condicionales (goto). -
Paradigma Estructurado
Reacción a los problemas de mantenimiento de los programas imperativos con (goto), introducción de estructuras de control (if, while, for) y bloques lógicos. Mejora de la legibilidad, mantenibilidad y depuración. -
Paradigma Orientado a Objetos (OOP)
Necesidad de modelar sistemas complejos y reutilizar código, Basado en objetos, que encapsulan datos (atributos) y comportamiento (métodos).
Principios: herencia, polimorfismo, encapsulamiento, abstracción. -
Paradigma Funcional (popularización)
Inspirado en matemáticas y cálculo lambda; busca evitar errores comunes del estado mutable.
Lenguajes clave:
Lisp (1958): Uno de los más antiguos; base para IA.
Scheme (1975), ML (1973): Evolución de ideas funcionales.
Haskell (1990): Puramente funcional, con fuerte sistema de tipos. -
Paradigma Lógico / Declarativo
Enfocado en el "qué hacer", no en el "cómo hacerlo".
Programación basada en hechos, reglas y consultas, Uso común en inteligencia artificial y resolución de problemas. -
Multiparadigma
La complejidad del software requería combinar enfoques. Soporte para varios paradigmas (imperativo, OOP, funcional).
Flexibilidad para distintos estilos según el problema. Dominan el desarrollo moderno por su versatilidad. -
Paradigmas Reactivos y Concurrentes
Aplicaciones distribuidas, móviles y en tiempo real necesitan manejar múltiples tareas simultáneas.
Lenguajes clave:
Elixir: Concurrencia basada en actores (Erlang).
Rust: Seguro y concurrente sin recolector de basura.
Go: Simplifica concurrencia con goroutines.
Kotlin: Popular en Android, con corrutinas nativas.