
[15/02/2021] No existe duda de que Python es muy popular entre los desarrolladores de software, o que su popularidad sigue aumentando. TIOBE, una empresa de software que publica mensualmente una medida de la popularidad de los lenguajes de programación, informó en noviembre que Python había subido al puesto número dos por primera vez, superando a Java.
Esta no fue la única indicación del éxito de Python, ni una gran sorpresa para los acólitos. De hecho, otras clasificaciones también han registrado el ascenso de Python. El IEEE, por ejemplo, califica los idiomas según su idoneidad, y en el 2020 colocaron a Python en la parte superior de la lista.
Clasificar los lenguajes informáticos según su popularidad es solo un poco más científico que, por ejemplo, organizar una fiesta para estudiantes de secundaria y pedirles que elijan a los alumnos más populares de la escuela. Si cuenta las líneas de código escritas, algunos contrarios señalarán que queremos que nuestro código sea corto y fácil de leer. Si intenta medir el código que se ejecuta en producción, el idioma principal será el que se use para crear esos juegos adictivos en su smartphone. No existe una métrica fácil, aunque mezclar todos los números nos brinda una forma aproximada de generar una respuesta útil.
Aun así, nada tiene tanto éxito como el éxito mismo, y pocos pueden negar la creciente importancia del lenguaje de scripting que solía considerarse como humilde en el mundo del código abierto. El auge de Python hará que muchos gerentes de empresas se pregunten si es hora de unirse a esta tendencia. Para tratar de darle sentido a esta pregunta imposible, hemos elaborado una lista de ocho razones por las que es inteligente unirse a la multitud, y otras ocho razones por las que es posible que desee esperar algunas décadas.
Python es popular
Sí, nuestras madres nos advirtieron que no saltáramos del puente si todos saltan como fanáticos, pero hay razones prácticas por las que tiene sentido aventurarse a pasar el rato con los niños populares. Contratar programadores es más fácil, especialmente la generación más joven que acaba de graduarse de universidades y ha adoptado Python casi universalmente para las clases de introducción a la programación. Gracias a la ubicuidad de Python, hay más bibliotecas y herramientas nuevas disponibles y, como hemos visto en el aprendizaje automático, es más probable que la última tecnología esté escrita en el lenguaje actual.
La popularidad no importa para las empresas
Una cosa es unirse a la opinión popular si está buscando una novela para leer en la playa, pero otra es cuando se encuentra administrando un stack de software que podría durar décadas. Dejar que el nuevo equipo haga lo que es popular conduce a una colección de código con capas muy parecidas a los anillos de los árboles. Los archivos más nuevos están llenos de JavaScript, luego hay algo de Ruby, algo de Java, y tal vez un poco de ColdFusion, envuelto alrededor de un núcleo lleno de COBOL con algunas bibliotecas escritas en SNOBOL. ¿Quiere que su código base sea una buena ilustración de todo el historial de codificación?
Las diferencias hacen imposible el mantenimiento. Los nuevos codificadores ni siquiera pueden leer el código que tiene algunos años, por lo que lo tratan como una caja negra y escriben rutinas de pegamento interminables para traducir los datos al formato que desean. Los anillos de los árboles se vuelven más gruesos y numerosos a pesar de que no se está haciendo mucho trabajo nuevo. El stack puede hacer algo simple como mantener un registro de transacciones con un total acumulado, pero tiene millones de líneas de código y los datos continúan en una búsqueda de un héroe tan abrumadora como la de la trilogía El señor de los anillos. El stack puede convertir los datos 18 veces a medida que viaja allí, y viceversa, al centro del código donde el asistente mágico de COBOL ejecuta la lógica comercial definitiva.
La coherencia puede resultar aburrida, pero la empresa no necesita un código interesante. Necesita el software para funcionar.
A la gente le gusta los lenguajes de secuencias de comandos
Los lenguajes como Python se crearon porque los programadores a menudo necesitan resolver pequeños problemas. Quieren lanzar algunas líneas y terminar sin el dolor de iniciar algún IDE, esperar a que se carguen las bibliotecas correctas, crear los repositorios de código y configurar la ruta de compilación de CI/CD. Millones de pequeños fragmentos de código no pueden estar equivocados. Si es fácil escribir unas pocas líneas, la simplicidad debería extenderse a escribir unos pocos millones de líneas, ¿verdad?
Las hojas de cálculo son el lenguaje de programación para las empresas
Es posible que muchos programadores no se den cuenta de la cantidad de cálculo que se realiza en las hojas de cálculo, a menudo porque no se dan cuenta de cuánto trabajo real pueden realizar personas que ni siquiera se consideran a sí mismos como programadores. Los programadores pueden descartar las herramientas como los procesadores de texto; pero, para los números, no se dan cuenta de cuán útiles y adaptables pueden ser las hojas de cálculo. Esta es la razón por la que tantas herramientas empresariales generan informes en forma de hojas de cálculo y tantos equipos comerciales utilizan las hojas de cálculo como lengua franca. Python es una buena herramienta para algunos laboratorios de ciencias, pero ¿por qué alejarse de una herramienta perfectamente buena que muchas personas en la oficina ya conocen?
Los lenguajes dinámicos son divertidos
Una de las razones por las que la codificación Python puede ser tan rápida es que el lenguaje no requiere que el programador dedique tiempo a definir laboriosamente los tipos de datos. El intérprete es lo suficientemente inteligente como para marcar errores sobre la marcha, así que ¿por qué no dejar que la inteligencia de la máquina haga parte del trabajo por nosotros?
Los idiomas escritos son mejores para los trabajos grandes
Existe mucho desacuerdo alrededor de esta afirmación, pero una queja común sobre los lenguajes dinámicos es que un error, en determinada parte del programa, finalmente conducirá a un bloqueo en un lugar completamente diferente. Depurar significa encontrar la conexión. Justo este verano, mientras luchaba con un error de Python, un programador que conozco comenzó a maldecir la falta de escritura de los lenguajes dinámicos.
Los lenguajes escritos obligan al desarrollador a agregar una capa adicional de información que puede ayudar a detectar estos problemas incluso antes de que el código se ejecute por primera vez. Esto también ayuda a que los equipos más grandes trabajen juntos, dado que no necesitan leer las mentes de los demás respecto a los tipos de datos y saber que cualquier variable llamada «i» solo será un número entero. La buena noticia es que Python está adoptando las sugerencias de tipos. Si desea el poder de la verificación de tipos, solo necesita convencer al equipo para que agregue las sugerencias.
Los juguetes no son solo para niños
El éxito de Python es solo un reflejo de los avances en herramientas y el auge del programador casual. Así como la llamada revolución "sin código” se está extendiendo por algunas capas, los no programadores se están dando cuenta de que pueden hacer bastante con solo algunas herramientas básicas. Claro, los programadores serios pueden catalogar como juguetes a los lenguajes de script como Python, pero si el trabajo se hace, ¿a quién le importa?
Los proyectos serios exigen herramientas serias
Un lenguaje adecuado para crear 10 líneas de código no es automáticamente bueno para crear stacks de 10 mil líneas o monstruosidades de 10 millones de líneas. A lo largo de los años, los programadores han agregado construcciones inteligentes que organizan grandes bases de código con disciplina y consistencia. Los amantes de Python han injertado estas ideas en Python, pero a menudo a expensas de la compatibilidad con versiones anteriores. Los lenguajes como Java o C/C++ han evolucionado para manejar los trabajos que los codificadores empresariales necesitan realizar.
El aprendizaje automático y la ciencia de datos están en auge
En los viejos tiempos, era suficiente que el equipo de TI administrara el inventario y mantuviera los libros en orden. Ahora muchas empresas están explorando enfoques más sofisticados, utilizando matemáticas complejas e inteligencia artificial. Python resulta ser extremadamente popular en esos mundos. Claro, puede esperar a que alguien reescriba las bibliotecas de aprendizaje automático en COBOL, o simplemente puede escribir un poco más de código de pegamento y listo.
Perseguir modas requiere cuidado
Puede que sea demasiado pronto para saber si enfoques como el aprendizaje automático existirán por tanto tiempo como, digamos, la coherencia cuántica en el núcleo superenfriado de una computadora cuántica, pero a veces el personal de TI no puede tomar esa decisión. El desafío radica en encontrar la mejor manera de usar dicho enfoque sin estropear el código base. Algunos insisten en que Python se use solo dentro de estos procesos y que la mayor parte del trabajo se realice con un lenguaje estándar para lograr la mayor consistencia posible.
El ecosistema de Python está creciendo
El impulso puede ser un concepto importante en la clase de física, pero no debería aplicarse a cosas como lenguajes de programación que no tienen masa. Quizás. Pero nadie puede negar la existencia de un ciclo de retroalimentación, donde la emoción atrae a más codificadores que luego escriben más bibliotecas que atraen a más codificadores. El ascenso de Python en las listas de TIOBE representa las decisiones individuales de miles, sino millones, de programadores que analizaron todas las opciones y eligieron Python. Podríamos pensarlo demasiado y mirarnos el ombligo un poco más, o simplemente uniros a la multitud.
El crecimiento no ha sido uniforme
Algunos de los lenguajes de programación, como Java, dan mucha importancia a la evolución lenta y solo de una manera en la que nada se rompa. El equipo de Python no parece tener tanto miedo al progreso. El salto de Python 2.6 a Python 3.0 fue grande y todos saben que, efectivamente, son dos lenguajes diferentes.
Los saltos más pequeños, sin embargo, a menudo son igual de estresantes. Un vistazo rápido a las notas de la versión de Python 3.9 muestra que acaban de cambiar el tipo de error devuelto por la función de importación, así como el comportamiento de la función de reemplazo. Estas pueden ser mejoras reales, y las otras funciones nuevas son agradables, pero lo más inteligente es tratar cada actualización como un idioma distinto. Entonces, en realidad, ahora existen más variantes diferentes de Python de las que puede contar con sus dedos.
Python parece parte del sistema operativo
Linux puede haber comenzado con C y código ensamblador, pero Python parece estar en todas partes. Ahora es una parte tan importante de muchas distribuciones de Linux que las personas hacen preguntas sobre cómo agregar Python a su versión del kernel. Si va a utilizar máquinas Linux, el uso de Python le ayudará a encajar perfectamente.
Python y Linux son codependientes
Esta estrecha conexión tiene desventajas. Esta primavera [septentrional] perdí unos días porque Ubuntu 19.04 se basa en Python 3.7 por defecto y Ubuntu 18.04 usa Python 3.6. El stack de código que me obsequió se ejecutaba en la máquina Ubuntu 18.04 pero fallaba cuando la movía a la máquina con la versión más nueva de Ubuntu. Algo cambió entre Python 3.6 y Python 3.7. Pero al reemplazar Python 3.7 en la máquina Ubuntu 19.04 con Python 3.6, vi fallas en el sistema operativo.
Después de unos días de luchar con las diversas herramientas que intentan facilitar la instalación de Python, acabo de degradar de Ubuntu 19.04 a Ubuntu 18.04 y dejé de pensar en ello. La comunidad de Python es muy consciente de estos problemas y crea herramientas para gestionarlos, pero la proliferación de estas herramientas de malabarismo de Python agrega otra capa de meta confusión. Un ayudante en el proyecto estaba usando Pip y el otro estaba usando Anaconda, y ambos insistieron en que mis problemas desaparecerían al cambiar a su favorito. Pero no fue así.
Estos problemas no suelen molestar a los científicos de los laboratorios que solo están escribiendo unas pocas líneas para resumir sus datos. Pueden simplemente reinstalar diferentes versiones o ejecutar cosas en algún contenedor. Pero problemas como estos pueden ser paralizantes para cualquiera que intente mantener una gran cantidad de código que se ha escrito a lo largo de los años en máquinas con diferentes versiones del lenguaje. Intente decirles a los nuevos empleados que aprendieron Python 3.9 en la escuela que el código base está congelado en Python 3.2.5.
Python está en todas partes
La tradición del código abierto ha fomentado mucha experimentación e innovación, creando una gran cantidad de código no solo para dejar caer en su stack, sino incluso para mantener su stack en funcionamiento. Si bien algunos lenguajes construidos y mantenidos por una sola corporación tienen un compilador, los autores de Python pueden discutir sobre sus favoritos de una lista que necesita muy larga. Existen docenas de opciones infinitas.
La tiranía de la elección es real
¿Es realmente un regalo recibir una larga lista de opciones? ¿O prefiere tener una opción sólida en la que pueda confiar? El código de fuente abierta es una fiesta maravillosa, pero no viene con una porción adicional, de tiempo adicional en el día, para probar las opciones, corregir los defectos y jugar con él hasta que funcione.
Fácil lo hace
Los usuarios empresariales deben avanzar con pasos pequeños. Python es una gran herramienta que no va a desaparecer. Ahora está profundamente arraigada en el sistema educativo y eso significa que está más cerca de convertirse en la lengua franca.
Los equipos deben migrar lentamente hacia el futuro y una mayor adopción de Python es una forma de hacerlo. La pregunta es cómo hacerlo con cuidado y con una estrategia sólida. La buena noticia es que Python no requiere grandes inversiones en tiempo o infraestructura. Fue diseñado para trabajos pequeños. Es posible empezar poco a poco, disfrutar de los beneficios y mantenerlo a raya. Si tiene sentido, los trabajos más importantes pueden llegar más tarde.
Basado en el artículo de Peter Wayner (InfoWorld) y editado por CIO Perú
Crédito foto: Get Bullish / Licencia: CC BY 2.0