Paradigmas de Programacion

  • 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.