146

Paradigmas de programación: ¿qué son y cuál aprender?

212947Puntos

hace 3 años

Los paradigmas de programación son modelos para resolver problemas comunes con nuestro código. Son caminos, guías, reglas, teorías y fundamentos que agilizan nuestro desarrollo y evitan que reinventemos la rueda.

¿Qué es un paradigma de programación?

Un paradigma de programación, por tanto, es un método para resolver un problema o realizar una tarea. Si bien existen diferentes lenguajes de programación se necesita de una estrategia cuando se implementa, es decir, un camino, y ese puede ser los paradigmas.

Los paradigmas más populares son:

  • La programación estructurada
  • La programación orientada a objetos
  • La programación funcional

Pero en realidad existen cientos más. Afortunadamente, podemos estudiarlos más fácilmente clasificándolos en dos categorías: paradigmas imperativos y paradigmas declarativos. Estos paradigmas son fundamentales en el desarrollo de aplicaciones web online.

Programación imperativa

La programación imperativa consiste en explicar muy bien cómo funciona nuestro código. Las instrucciones de nuestro programa deben ser bastante explícitas. El “cómo” realizamos cada paso del algoritmo debe ser muy claro.

Algunos lenguajes de programación que utilizan este paradigma son:

  • Fortran
  • Java
  • Python
  • Ruby y más

Por ejemplo, si queremos crear imperativamente una lista de números del 1 al 10, podemos crear una lista vacía, una variable contadora y agregar un elemento a la lista en cada iteración de un ciclo while.

list = []
count = 1while i < 10:
    list.append(i)
    i += 1

Dentro de la programación imperativa se desglosan otras:

Programación estructurada:

Está orientada a mejorar la claridad, calidad y tiempo de desarrollo.

Programación por procedimientos:

Agrupa el código en procedimientos, estos son un tipo de funciones o subrutinas a través de un sistema de pilas.

Programación orientada a objetos:

Basado en “objetos”, es decir contienen datos y código. Datos en forma de campos (atributos o propiedades); código en forma de procedimientos (métodos).

Programación declarativa

Contrario al paradigma imperativo, la programación declarativa, prioriza la claridad del resultado por encima que la claridad del paso a paso.

Siguiendo el ejemplo anterior, para crear una lista del 1 al 10, no definiríamos explícitamente el paso a paso de agregar un número a la lista en cada iteración de algún ciclo. Más bien, podemos utilizar una función range que agregue la cantidad de números que necesitemos.

list(range(1, 10))

Algunos lenguajes que usan este paradigma son:

  • Prolog
  • LISP
  • HASkell
  • Regez
  • SQL y más

Dentro de la programación declarativa encuentras:

Programación funcional:

Usa funciones como “ciudadanas de primera clase”. Puede crear funciones de orden superior. Prioriza el uso de recursividad y HOF para resolver problemas.

Programación lógica:

Expresa los objetivos como una colección de afirmaciones o reglas acerca de los resultados y restricciones en lógica matemática.

Ninguno de los dos bloques de código es mejor que el anterior. Simplemente llegan a la misma solución siguiendo diferentes paradigmas.

💡 Considera esta clasificación de paradigmas de programación cuando crees tu propio lenguaje de programación.

¿Cuál es el mejor paradigma de programación?

No existe el mejor paradigma de programación. Si quieres aprender algún paradigma de programación, pero no sabes cuál elegir de primeras, te recomiendo tomar estas recomendaciones:

Contexto histórico

Cada paradigma intenta solucionar los problemas o falencias que no resolvieron los paradigmas históricamente anteriores. Y estos paradigmas históricamente anteriores hicieron exactamente lo mismo, intentaron solucionar los errores e incomodidades de sus predecesores.

Esto no significa que los paradigmas nuevos son mejores que los viejos. Elige tu paradigma dependiendo del proyecto que vas a desarrollar. Analiza los problemas con los que más probablemente te vas a enfrentar y escoge el paradigma que mejor te ayude a combatirlos.

Lenguajes de programación

No todos los lenguajes te permiten programar con cualquier paradigma. Algunos lenguajes no soportan los paradigmas más nuevos. Pero también hay lenguajes modernos que soportan varios paradigmas simultáneamente.

Esto abre un mundo gigante de posibilidades para aprovechar lo mejor de cada mundo.

💡 Elige tu paradigma de programación dependiendo del proyecto que vas a desarrollar y el lenguaje de programación que piensas utilizar. Te sugiero leer:

Cursos para aprender paradigmas de programación

Si quieres conocer la historia de los lenguajes y paradigmas de programación, te recomiendo tomar el Curso de Historia de la Programación: Lenguajes y Paradigmas.

Además, si quieres aplicar los paradigmas más importantes en tu lenguaje de programación favorito, te recomiendo los siguientes cursos prácticos:

¿Para qué sirve aprender programación?

¿Programación para trabajar en una startup?

Las startups necesitan talentos digitales dispuestos a asumir grandes retos, por eso si quieres convertirte en uno de ellos necesitarás especializarte en un área específica como: programación, ingeniería de datos, marketing digital o en la que quieras acorde a tu perfil y objetivos. Por eso, en Platzi te preparamos para que alcances tu sueño de trabajar en una startup, trabajes desde cualquier parte del mundo y te conviertas en referente de la industria tecnológica.

Prepárate hoy en Programación o lo que quieras y comienza tu camino para convertirte en #StartupReady, el talento que las startups necesitan a través de nuestros cursos especializados en donde puedes aprender de manera efectiva y lo mejor, desde ceros.

¿Te interesa aprender sobre IA? Conoce como iniciar en inteligencia artificial desde cero

Juan
Juan
juandc

212947Puntos

hace 3 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
9
224446Puntos

Si creo un preprocesador para CSS que permita usar POO para aplicar estilos… ¿Entonces podré decir que CSS soporta POO? 🙈

7
21163Puntos
3 años

Tu preprocesador soporta POO, CSS lo soportaría si lo dice la W3C.
A mi ver, veo a CSS más estructurado que otro paradigma 🐵

5
6347Puntos
3 años

Si, es sorprendente ver lo bien estructurado que esta CSS. Si no, démonos cuenta a la hora de diseñar con CSS como se estructura cada clase, id o elemento que hallamos declarado en nuestro HTML.

5
11603Puntos

Me encantó el post, siempre escuchaba hablar de paradigmas de la programación y nunca los explicaban, y yo tampoco los buscaba. Ahora me quedo clarisimo, muchas gracias! 😃

3
32636Puntos
Muy buen post, es realmente importante las maneras en la que podemos estructurar nuestro código, si tener un código entendible dependiendo del problema a resolver y siguiendo un estándar de la industria. Importante siempre conocer de estos temas que generalmente no se ven al querer iniciar. Muchas gracias Platzi. 💚
3
1604Puntos

cual es la diferencia entre un paradigma de programación y un patrón de diseño?

2
212947Puntos
3 años

Los paradigmas son mucho más generales sobre cómo escribirás todo tu código, mientras que los patrones son mucho más específicos para solucionar problemas muy concretos.

1
6459Puntos
2 años

Me surge la siguiente pregunta, los patrones se pueden usar en cualquier paradigma? o son específicos de un paradigma?

2
601Puntos

Muy buena explicación. Me sirvió para aclarar muchas de mis dudas y armarme un mapa mental más claro sobre los diferentes paradigmas de programación mencionados. ¡Muchas gracias!

2
6459Puntos

@juandc Una pregunta, entonces React sería Programación declarativa?

1
601Puntos
un año

La ejecución asíncrona y los datos son lo más importante de este paradigma. Reactivo significa que reacciona a algo.

1
601Puntos
un año

también me aparece otra información, esta la pondré tal cual la he encontrado: <<React está basado en un paradigma llamado programación orientada a componentes en el que cada componente es una pieza con la que el usuario puede interactuar. Estas piezas se crean usando una sintaxis llamada JSX permitiendo escribir HTML (y opcionalmente CSS) dentro de objetos JavaScript.>>

Hay casos en los cuales pueden estar presentes más de un tipo de paradigmas. Habría que investigar a fondo eso. Por cierto, quise borrar mi respuesta anterior y no pude. Así que agrego esta nueva información.

2

Una pregunta
¿Para qué sirve un paradigma de programación?

1
601Puntos
un año

Hola. Sirve para que agilices y hagas más sencilla la tarea de programar, ya que te ayuda a elegir la mejor forma o método para llevar a cabo tu proyecto o la resolución de algún problema.

2
1144Puntos

Genial! Gracias por la detallada explicación, nunca tuve claro el concepto de paradigma de programación, lo veía en todos lados y nunca me tomé el tiempo de leer sobre ello.

2
27193Puntos

Excelente post, muchas veces cuando estamos en la universidad nos enseñan a programar pero no nos hablan o nos dan un contexto histórico sobre los paradigmas

2
16597Puntos

Me encanto esto, ahora siento que desbloquee un superpoder a la hora de pensar una solución para diferentes problemas.

2
13954Puntos

Muy bueno!!!

2
22519Puntos

Con el curso de Programacion estructurada de Daniela Coyotzi pude entender muy bien lo q es la programacion en C. Ya casi termino POO, y me falta bastante practica

2
9389Puntos

Muy muy buen post,muchas gracias