Paradigmas de Programación
En el mundo de la programación al conjunto de reglas, patrones y estilos de programación que se usan al momento de desarrollar un software se les llama paradigmas de programación. Estos son adoptados por la comunidad de programadores que se enfocan a resolver uno o varios problemas ya delimitados.
Ya que la programación siempre va evolucionando para buscar mejorar el desarrollo de programas por medio de métodos o paradigmas, estos son considerados a la hora de crear o formalizar nuevos lenguajes de programación. Estos lenguajes pueden soportar un solo paradigma o pueden soportar múltiples paradigmas.
Aunque existen diversos paradigmas de programación, es necesario mencionar que las dos grandes ramas son dos la programación imperativa y programación declarativa, de estas a su vez se derivan otros paradigmas que podríamos llamar sub-paradigmas.
Paradigma de Programación Imperativa
La programación imperativa es un paradigma que se basa en el estado del programa, ya que se describen las sentencias que cambian el estado de dicho programa. Los programas imperativos son un conjunto de instrucciones que le indican al computador cómo realizar una tarea.
En este paradigma se define como debe solucionarse un problema, especificando una serie de acciones que deben realizarse a través de uno o más procedimientos para llegar a la solución.
Dentro de esta rama se encuentran principalmente la programación orientada a objetos, y recientemente la programación orientada a aspectos entre otras.
Programación orientada a objetos
La programación orientada a objetos es un paradigma de programación imperativa que usa una estructura de datos llamada objetos que agrupan propiedades y métodos en sus interacciones, para diseñar programas.
Un objeto son entidades que tienen un determinado estado, comportamiento (método) e identidad, que intenta representar un objeto del mundo real y como se relaciona o interactúa con el resto del mundo que lo rodea.
Este paradigma está basado también en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos como son C++, Java, Smalltalk, PHP, Ruby on Rails y Python entre muchos otros.
Programación orientada a aspectos
La programación orientada a aspecto es un paradigma de programación relativamente reciente que incluye como característica el concepto de “Aspecto” que pretende dar una determinada funcionalidad al sistema, separando esta funcionalidad del sistema, con el fin de aumentar la modularidad y posibilitar una mejor separación de incumbencias.
Aspecto es una funcionalidad transversal que se va a implementar de forma modular y separada del resto del sistema.
Lenguajes: AspectJ, AspectC++, PHP-AOP.
Dentro de este mismo paradigma imperativo se engloban también la programación estructurada, orientada a eventos, visual entre otras.
Paradigma de Programación Declarativa
En la programación declarativa a diferencia de la imperativa no es necesario definir algoritmos en los que se describan los pasos necesarios para solucionar el problema, ya que está basada en el desarrollo de programas especificando una serie de características que describen el problema y allí mismo se detalla su solución.
La solución en este paradigma es obtenida mediante mecanismos internos de control, pero sin especificar exactamente cómo llegar a ella.
Dentro de esta rama se encuentran la programación funcional, la programación lógica.
Como ya se mencionó la programación funcional es un paradigma de programación declarativa, está basada en el uso de funciones aritméticas principalmente, estas funciones con datos primitivos ya que no maneja datos mutables o de estado a diferencia de la programación imperativa.
Lenguajes: Haskell, LISP, Scheme,y Scala entre otros.
La programación lógica permite formalizar hechos del mundo real, así como también reglas o restricciones. Es un paradigma orientado principalmente a matemáticas. Forma parte de los programas declarativos.
Lenguajes: Prolog (principalmente), Mercury, Oz.
Dentro de este mismo paradigma declarativo se engloban la programación con restricciones.
En conclusión podemos decir que así como no hay lenguajes de programación mejores que otros, los mismo pasa con los paradigmas de programación, ya que en ambos casos todos tienen características únicas que los hacen más óptimos para ciertos proyectos.
0 comentarios: