Читать книгу Python a fondo - Óscar Ramírez Jiménez - Страница 12
1.2.2 Paradigmas
ОглавлениеUn paradigma es una teoría o conjunto de teorías cuyo núcleo es aceptado por todos los integrantes que usan ese paradigma, y que sirve como modelo para resolver problemas utilizándolo. En el mundo del desarrollo de software un paradigma de programación indica el método y la forma en la que se deben estructurar y organizar las tareas que debe realizar el programa que se está desarrollando.
Python implementa múltiples paradigmas, lo que permite que se puedan resolver problemas utilizando enfoques diferentes y que el desarrollador pueda elegir el que más se ajuste al problema a resolver o a sus gustos personales. A continuación, se muestran los paradigmas disponibles en Python y cómo se define cada uno de ellos:
• Paradigma imperativo: se caracteriza por enfocarse en cómo se pretenden realizar los cálculos por medio de instrucciones secuenciales para formar algoritmos que resuelvan una tarea específica. El paradigma imperativo es el más utilizado en los lenguajes de programación, de forma única o en conjunción con otros paradigmas. Ejemplos cotidianos de este paradigma se pueden encontrar en las recetas de cocina o en cualquier guía paso a paso. Python soporta este paradigma por completo, al igual que lo hacen otros lenguajes, como C, BASIC, Pascal o Golang.
• Paradigma procedural: este paradigma es un derivado del paradigma imperativo, pero añade funcionalidades extra como la creación de procedimientos o funciones que pueden ser llamadas en las secuencias de código como si fueran instrucciones simples. De esta forma, los programas están organizados y modularizados en funciones específicas que no tienen por qué residir en el mismo fichero. Esto favorece la modularización y organización del código. En Python el uso de este paradigma ayuda mucho a la legibilidad del código, ya que hace que pueda leerse incluso sin saber programar (se asemeja en gran medida al lenguaje usado por los humanos de manera natural y permite obviar la complejidad subyacente de cada función).
• Paradigma orientado a objetos: este paradigma es uno de los más populares junto con el imperativo y se basa en encapsular las entidades principales del programa en objetos que pueden contener tanto datos como comportamiento (métodos para interactuar con otros datos o con otros objetos). Este paradigma es especialmente útil, puesto que favorece mucho la modularidad, el encapsulamiento, la reusabilidad y la escalabilidad de cualquier programa. Muchas implementaciones de este paradigma cuentan con la herencia de objetos. Otros lenguajes de programación conocidos que implementan este paradigma son Java, C++, Rust o JavaScript.
• Paradigma funcional: se basa en funciones matemáticas que se centran en los cambios de estado del programa por medio de la mutación de variables. Tiene su origen en el cálculo lambda (lambda calculus) y presenta características muy potentes, como la recursividad, el uso de funciones de orden superior o el uso de las funciones puras que definen que la misma función, con los mismos argumentos, siempre debe devolver el mismo resultado (evitando cualquier efecto colateral). Python no es considerado un lenguaje puramente funcional, ya que no dispone de todas las características necesarias, pero sí que implementa muchas de ellas y son de gran utilidad. Ejemplos de lenguajes puramente funcionales son Haskell o Miranda y otros híbridos son Scala, Lisp o OCaml.