Los Paradigmas de Programación

Existen diversos paradigmas de programación, que son diferentes formas de programar, generalizadas en todo un lenguaje, ambiente o hasta estándar. Para comprenderlo mejor, comencemos por explicarlos un poco.

El Paradigma Procedural o Imperativo

Este paradigma lo podemos definir como “una serie de pasos obligatorios” (de allí el término imperativo).

Es como una cadena, como un sistema en serie, como el alfabeto, a la A le sigue la B, luego la C, la de D y así sucesivamente. En cada “paso” del sistema, estamos en un estado diferente del mismo. Es el más sencillo, por ello es el primero que aprenderemos.

Si conoces algunos lenguajes, los ejemplos son C, Basic y Pascal. Pasemos a crear la imagen mental de este paradigma, que como esta:

En la Programación Procedural o Imperativa, un paso siempre sigue a otro, no podemos llegar al dos sin el uno, la aplicación o programa se encuentra siempre en un estado particular.

Los principios a los que más se apega es “Conjunto de Instrucciones” y “Entrada—Proceso—Salida”.

procedural

El Paradigma de Orientación a Objetos

En la orientación a objetos, los datos simples se vuelven complejos (tranquilo, complejo quiere decir que tiene varias partes, no que es complicado) al componerse de más datos.

Esto es una estructura de datos, es decir, dos o más datos organizados de una manera lógica, que representa una idea, concepto o modelo de la realidad, dentro del programa, es a lo que llamamos objeto.

Este paradigma lo podemos definir como “la emulación de la realidad”, uno de los principios de la programación, puesto como prioridad. En este, lo primordial son los objetos, los cuales tienen características y funcionalidades, tal como en la vida real.

¿Cómo está esto? Pues aunque se oye complicado, es bien sencillo, por ejemplo: Un auto.

Un auto tiene características: Una marca, un modelo, un año; un tipo de motor, etc. Pues bien, el objeto que represente a un auto las puede tener también. En la orientación a objetos, a estas características les llamamos propiedades.

Un auto tiene funcionalidades también, es decir, acciones: Encender, moverse, frenar. A estas funcionalidades, en la orientación a objetos, le llamamos métodos.

Luego, un objeto se compone de propiedades y métodos. Como en todas las cosas de la vida real, podemos clasificar a los objetos. “Automóvil” es una clase de objetos, los autos en sí son la materialización de esta clasificación.

Una clase es una plantilla de un objeto. Un objeto tiene identidad, ningún carro es igual a otro, tienen características que los hacen únicos, como las placas o el número de serie. Pero todos los automóviles tienen números de serie.

Las clases son solo el listado de características y funciones que debe tener un objeto, sin identidad. Como un formato sin datos, como una plantilla, un molde que usas para crear galletas. Luego, a partir de las clases creamos los objetos, y como los objetos son la materialización de una clase, en programación, como todo es virtual, decimos que un objeto es una instancia de una clase.

Para obtener una buena imagen mental del paradigma, utilizaremos una pequeña forma que representa a una clase, la cual tiene una identificación, propiedades y métodos. La imagen mental es como está:

class-template

Para comprenderlo mejor, veamos el ejemplo del auto:

class-car-example

El Paradigma de Programación Declarativa

Este es un paradigma bastante interesante, ya que su principal prioridad es la declaración de lo que el programa debe hacer, “escondiendo” el cómo lo hace. Aunque también se enfoca más en el principio de “Todo programa es una lista ordenada de instrucciones”, tal como el paradigma procedural, este tiene la marcada diferencia de que no especifica un flujo, sino simplemente declara, como su nombre lo indica, las instrucciones a seguir, comúnmente por un motor.

Para comprenderlo mejor, estableceremos como ejemplo de este tipo de programación al HTML, lenguaje de marcado de hipertexto. En este lenguaje simplemente declaramos lo que queremos visualizar: Un encabezado, un párrafo, una lista, una tabla, etc. Quien realmente realiza el trabajo es el explorador, quien toma el programa y “pinta” en pantalla nuestras instrucciones.

SQL es otro claro ejemplo, “Lenguaje de Consultas Estructurado”, en el cual solo especificamos que datos queremos consultar y es el motor de base de datos quien realiza las operaciones necesarias para mostrarnos el resultado.

Tal vez esto no te diga mucho, si no conoces absolutamente nada de estos lenguajes, así que vamos a ejemplificarlo de mejor manera: Hacer un pedido en línea. Cuando solicitamos algún producto o servicio, desde comprar una camiseta hasta pedir una pizza, nos enfocamos en declarar que es lo queremos, sin preocuparnos del cómo es que el producto llegará a nosotros.

¿Haz comprado un sándwich en Subway? Hay muchas combinaciones y solo tienes que declarar que es lo quieres:

Pan: De ajo

Queso: Manchego

Carne: Italiano

Término: Tostado

Verduras: Todo, menos aceitunas.

Aderezos: Aceite de oliva

En combo: Si

Este tipo de enfoque es el declarativo, y es un enfoque de gran utilidad para los casos como los que mencionamos, ya que sería, de verdad, muchísimo más trabajo (y te lo digo por que lo he hecho) implementar las funcionalidades de los lenguajes declarativos con programación procedural. Bastante más trabajo.

La imagen mental que crearemos para este paradigma es una declaración, como esta:

declarativa

Cuando pienses en programación declarativa, piensa en  un documento, 
una declaración detallada de funcionalidades y propiedades, más que en un flujo.

El Paradigma de Programación Funcional

Este paradigma las funciones mandan y es especializado en programas matemáticos y estadísticos. Una función es un operación o método, una descripción de funcionalidad, como lo mencionamos en la Orientación a Objetos, con la particularidad de que devuelve un valor siempre, por tanto el principio en el que más se enfoca es en el de “Entrada—Proceso—Salida”

Como su orientación es matemática, pongamos como ejemplo la suma: Es una función que toma dos números, les aplica un procedimiento ( los suma ) y devuelve un resultado.

A + B = C Esto es una expresión matemática
C = A,B Aquí está matemáticamente representado por ∑
C = SUMA(A, B) Aquí SUMA es la función que representa la suma, en la misma expresión.

Como en este paradigma todo se trata de funciones, es posible almacenarlas en memoria, reutilizarlas y manejarlas como si fueran datos, lo que nos brinda grandes posibilidades.

Sé que todo esto aún es muy complejo para comprenderlo, si no tienes experiencia programando, pero no te preocupes, ya lo iremos descubriendo en su momento.

El lenguaje más representativo de programación funcional es LISP, pero el más popular, emergente y utilizado hoy en día es Javascript. Es un lenguaje que vas a conocer a fondo si te da por el desarrollo web, ya que es el lenguaje que utilizan los exploradores web, como Google Chrome o Mozilla Firefox, para implementar dinamismo a sus páginas, desde validaciones de formas, animaciones y aplicaciones completas.

Realmente Javascript no es un lenguaje funcional completamente como Lisp, y hasta puede ser utilizado tipo procedural o con orientación a objetos, pero siempre tendrás que usar una gran cantidad de funciones y es mucho más cómodo y divertido utilizarlo de esta manera, pero no nos adelantemos, lo veremos dentro de poco.

La imagen mental que tendremos entonces será la del principio de Entrada—Proceso—Salida, en expresión matemática:

funcional

El Paradigma de Programación Lógica

Este paradigma es el menos popular de todos, quizás por que es el que más necesita de pensamiento abstracto. Es un serie de reglas lógicas, llamadas hechos, que se aplican para deducir un resultado.

Prolog es su lenguaje más representativo y se utiliza mucho para procesamiento de lenguajes naturales (interacción entre humanos y computadoras), y sistemas expertos (vaciar bases de conocimiento en un programa).

De por sí la lógica es una ciencia dura de aprender, pues tenemos que ser explícitos con lo que estamos acostumbrados a ser implícitos, la programación lógica puedo serlo aún más, sobre todo si no conocemos el mundo de la programación antes.

Siendo sincero, es de los paradigmas más bellos y elegantes, pero también el menos utilizado y aun menos apreciado, pues tiene un “costo de entrada” alto, se necesitan conocimientos avanzados o una tendencia natural a este tipo de pensamiento y capacidad para expresarlo.

No quiero asustarte, la verdad es que como programador no lo he utilizado mucho y aunque me gusta, no lo recomendaría para nada como paradigma de iniciación, por lo tanto en este libro es todo lo que leerás sobre él, como siempre, en aras de la simplicidad.

Piensa en este paradigma como una ley, una serie de hechos establecidos. La imagen mental sería algo así:

logica

La programación lógica es una serie de hechos, reglas y consultas a la mismas.

dfdf

Related Posts

Lo que Tienes que Saber Antes de Aprender a Programar

¿Quieres aprender a programar desde cero? Lo primero que tienes que saber son fundamentos, y no solo de programación, sino de informática, adquirir una base sólida es fundamental para saber que es lo que estas haciendo y como hacerlo eficientemente. Te garantizo que invertir tiempo en comprender arquitectura de computadoras te facilitará toda tu carrera. […]

Read More

Los Tres Principales Sistemas Operativos: Cultura General

Necesitaremos conocimiento de sistemas operativos si vamos a ser programadores, pero no te preocupes, no vamos a comenzar programando kernels, vamos a repasar las plataformas más populares, por cultura general y por que necesitamos conocer en que vamos a programar, por supuesto. En computadoras de escritorio, hay tres grandes sistemas operativos: Microsoft Windows, Apple OS […]

Read More

Leave a Reply

Your email address will not be published. Required fields are marked *