domingo, 30 de noviembre de 2014

Paradigmas de Programación.

¿Que son paradigmas de programación?


Un paradigma de programación es una propuesta tecnológica que es adoptada por una comunidad de programadores cuyo núcleo central es incuestionable en cuanto a que únicamente trata de resolver uno o varios problemas claramente delimitados. Es un estilo de programación empleado. La resolución de estos problemas debe suponer consecuentemente un avance significativo en al menos un parámetro que afecte a la ingeniería de software. Tiene una estrecha relación con la formalización de determinados lenguajes en su momento de definición. Un paradigma de programación está delimitado en el tiempo en cuanto a aceptación y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.

El paradigma de programación que actualmente es el más usado es la orientación a objetos. El núcleo central de este paradigma es la unión de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto".


Tradicionalmente datos y procesamiento se han separado en áreas diferente del diseño y la implementación de software. Esto provocó que grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento, adaptación a los cambios y escatabilidad. Con la orientación a objetos y características como el encapsulado, polimorfismo o la herencia se permitió un avance significativo en el desarrollo de software a cualquier escala de producción.
Un paradigma de programación representa un enfoque particular o filosofía para diseñar soluciones. Los paradigmas difieren unos de otros, en los conceptos y la forma de abstraer los elementos involucrados en un problema, así como en los pasos que integran su solución del problema, en otras palabras, el cómputo.

La orientación a objeto parece estar ligada en sus orígenes con lenguajes como Lisp y Simula aunque el primero que acuñó el título de programación orientada a objetos fue Smalltalk.

¿Por qué paradigmas?

A lo largo de la historia de las ciencias de la computación han ido surgiendo herramientas, reglas, conceptos y otros elementos que permitieron la creación de los más variados lenguajes de programación. Algunos nacieron y al poco tiempo desaparecieron, mientras que otros hace años ya que se diseñaron y siguen vigentes. Muchos se fueron adaptando y renovándose para subsistir y se vuelven casi irreconocibles de sus orígenes y en cambio otros permanecen fieles a sus principios fundantes y casi inalterables, más allá de ciertos cambios cosméticos.

Los equipos, las metodologías y los campos de aplicación se transformaron radicalmente. Si Von Neumman se levantara de su tumba y se sentara frente a las computadoras de última generación se sentiría tan perdido como el inventor de la rueda al volante de un fórmula 1. Sin embargo, es probable que así como el conductor constataría que el vehículo sigue teniendo ruedas o preguntaría cómo hacen ahora para hacerla girar, los desarrolladores de software de otras épocas no dudarían de preguntar... ¿y cómo es la entrada de datos? ¿cómo los representan? ¿y el control de secuencia? ¿sigue existiendo el efecto de lado? Y la respuesta de un ingeniero en sistemas de esta época sería “Y... según el paradigma”.



Si algo caracteriza al panorama actual del desarrollo de sistemas es su complejidad y heterogeneidad. No existe una sola forma de pensar y encarar las soluciones, no son uniformes los conceptos que fundamentan los lenguajes, no es única la manera de programar. Los modelos de datos, estructuras de control, mecanismos de evaluación, sentencias, enlaces, expresiones, declaraciones y tantos otros elementos que conforman los lenguajes de programación actuales son muy diferentes entre unos y otros, hasta opuestos, pero es posible detectar cuáles son los conceptos que marcan diferencias mayores o menores, muestran puntos de contacto o de inflexión, establecen criterios de clasificaciones, y así, aportan elementos teóricos para sistematizar el análisis de la programación. 

De esta manera, tiene sentido hablar de la existencia de diferentes “paradigmas” de programación que aportan los fundamentos teóricos y conceptuales para desarrollar sistemas de una manera en particular, incluso podríamos decir con una “filosofía” especial, que los caracterizan, identifican y a la vez diferencian de los otros paradigmas.

2 comentarios: