De lenguajes de programación y del desarrollo profesional del informático (3)

El interés del mundo por Python en los últimos 3 ó 5 años, junto con las mejoras de ejecución de código por parte de su intérprete, acrecentaron mucho la competitividad entre sus promotores y han buscado resaltar su potencia, expresividad, características o beneficios del lenguaje (implícitamente en comparación con otros) para hacerlo parecer algo único. Podemos hallar infinidad de posts en 𝕏 (antes Twitter) donde se presume lo que se puede hacer con unas cuantas líneas de código.

Desde cómo descargar un video de YouTube, el transformar un PDF, generar una imagen, hasta algo que con otro lenguajes tomaría muchas más líneas de código. En fin, muchos y muchos ejemplos de una supuesta potencia o facilidad del lennguaje.

Ciertamente la simplicidad del lenguaje en algunos aspectos es sobresaliente pero muchos de estos posts implican erróneamente que se logra por el lenguaje y no por las bibliotecas que se han desarrollado para éste. La expresividad que un lenguaje de programación permite es importante, como también las bibliotecas que se proveen por los desarrolladores del lenguaje o terceros pero, una cosa es un desarrollo con el lenguaje, y otra el lenguaje mismo.

Cuando comencé mi formación académica profesional como informático, la enseñanza de la programación incluía el conocer y aprender a programar ciertas estructuras de datos (pilas, colas, listas) haciendo uso de lo que los lenguajes «más poderosos» en ese momento proporcionaban más allá de los arreglos, como estructuras o registros (el struct de C o el register de Pascal). La llegada de la OOP, amplió el panorama pero aún así muchas estructuras debían programarse.

Con el paso del tiempo, algunas bibliotecas fueron apareciendo, pero no fue hasta que la internet permitió crear comunidades de programadores y repositorios de software que muchas cosas dejaron de hacerse desde cero y la reutilización entró en escena. A Java le tocó sacar provecho de todo esto (junto con su omnipresencia) pero, aún así, las estructuras de datos eran parte de una biblioteca (java.utils) no parte del lenguaje. La utilización de las estructuras de datos requerían el conocer los pormenores de implementación en Java y las interfaces asociadas.

Python trajo la presencia de ciartas estructuras de datos como una parte más del lenguaje, como un tipo más; no como una implementación utilitaria. No había que cargar bibliotecas y no había que saber de los pormenores de implementación, simplemente se usaban de forma directa y transparente, en consistencia con la gramática y tipos de datos básicos del lenguaje. Esto es la verdadera potencia y expresividad de un lenguaje de programación.

Siguiente

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.