Saltar la navegación

3.- Paradigmas de la programación.

Caso práctico

En primer plano una mesa de reunión sobre la que hay un teléfono de sobremesa. En segundo plano, dos personas se dan la mano. Representan el acuerdo entre la empresa y el cliente después de una reunión.
Stockbyte CD-DVD Num. CD165 (CC BY-NC)

Ada comenta con Juan y María los distintos enfoques para el desarrollo de programas que han existido a lo largo de la historia de la programación, destacando que todos van a tener que “renovar” su forma de pensar, si quieren comenzar a utilizar un lenguaje moderno que les permita construir programas adaptados a las nuevas necesidades de sus clientes.

Aparece una señal rural de diferentes caminos fabricada en madera.
barraquito from Santa Cruz de Tenerife, Canary Islands, Spain (CC BY-SA)



¿Cuántas formas existen de hacer las cosas? Supongo que estarás pensando: varias o incluso, muchas. Pero cuando se establece un patrón para la creación de aplicaciones nos estamos acercando al significado de la palabra paradigma. Si establecemos una serie de normas y principios que recojan experiencia y buenas prácticas de otros desarrolladores para su uso en la resolución de problemas, estaremos creando un paradigma de programación.

Paradigma de programación: es un modelo básico para el diseño y la implementación de programas. Este modelo determinará como será el proceso de diseño y la estructura final del programa.

El paradigma representa un enfoque particular o filosofía para la construcción de software. Cada uno tendrá sus ventajas e inconvenientes, será más o menos apropiado, pero no es correcto decir que exista uno mejor que los demás. Algunos de ellos son:

  • Programación Declarativa: Se basa en el desarrollo de algoritmos aplicando una especificación de un conjunto de condiciones, proposiciones, afirmaciones y restricciones que describen el problema. Las sentencias utilizadas describen el problema que se quiere solucionar, pero no la instrucciones necesarias para llegar a la solución. El lenguaje SQL está basado en este paradigma. Dentro de este paradigma se encuentran la programación funcional y la programación lógica. 
  • Programación Imperativa: Se basa en el desarrollo de algoritmos detallando de forma clara y específica los comandos a ejecutar para, a través del paso por diferentes estados,  llegar a la solución. Se basa en el uso de variables, tipos de datos, expresiones y estructuras de control del flujo de ejecución. Lenguajes como Python, Java, C++, C# ... son lenguajes imperativos. Dentro de este paradigma se encuentran la programación convencional (programación no estructurada), la programación estructurada, la programación orientada a objetos, la programación orientada a eventos, la programación orientada a aspectos ...

Existen múltiples paradigmas, incluso puede haber lenguajes de programación que no se clasifiquen únicamente dentro de uno de ellos. Un lenguaje como Smalltalk es un lenguaje basado en el paradigma orientado a objetos. El lenguaje de programación Scheme, en cambio, soporta sólo programación funcional. Python, soporta múltiples paradigmas.

Lenguaje de programación que permite realizar tareas de computación mediante la interacción con un entorno de objetos virtuales. Metafóricamente, se puede considerar que Smalltalk es un mundo virtual donde viven objetos que se comunican mediante el envío de mensajes.

Lenguaje de programación funcional, dialecto de Lisp. Desarrollado en la década de los setenta. Scheme proporciona el mínimo número posible de nociones primitivas, construyendo todo lo demás a partir de un reducido número de abstracciones. Scheme ofrece también gestión automática de memoria. Las listas son la estructura de datos básica del lenguaje, que también ofrece arrays entre sus tipos predefinidos.

Lenguaje de programación de alto nivel, cuya filosofía hace hincapié en una sintaxis limpia y que favorezca un código legible. Es multiparadigma, ya que soporta orientación a objetos, programación imperativa y programación funcional. Es un lenguaje interpretado y está fuertemente tipado. Es multiplataforma.

¿Cuál es el objetivo que se busca con la aplicación de los diferentes enfoques? Fundamentalmente, reducir la dificultad para el desarrollo y mantenimiento de las aplicaciones, mejorar el rendimiento del programador, reutilizando código en la medida de lo posible y, en general, mejorar la productividad y calidad de los programas.

Autoevaluación

Pregunta

¿En qué paradigma de programación podríamos enmarcar el lenguaje de programación Java?

Respuestas

Programación Estructurada.

Programación Declarativa.

Programación Orientada a Objetos.

Retroalimentación