A principios de este mes, Python se movió al puesto número uno en el índice TIOBE, marcando la primera vez en 20 años que un lenguaje llamado C o Java no estaba en la parte superior de la lista. Es una bonita pluma en la gorra de Python y marca la cima del alcance del lenguaje. Pero, ¿qué hay detrás del asombroso éxito de Python?
Python comenzó con bastante modestia, como un pasatiempo para mantener ocupado a Guido van Rossum durante las vacaciones de 1989. Poco sabía él que estaba desatando un lenguaje de programación que tendría un impacto duradero en un segmento del mundo de las TI durante más de 30 años.
Van Rossum creó Python para ser un lenguaje de programación de propósito general interpretado. Sus objetivos de diseño originales para Python eran que fuera un lenguaje fácil e intuitivo de aprender, tan comprensible como el inglés simple, adecuado para las tareas diarias y de código abierto.
El legado de esos objetivos de diseño es claramente evidente cuando se habla con miembros de la comunidad de Python, que es un grupo cada vez más amplio de personas que usan Python para una amplia variedad de cosas. Mientras que los programadores aparentemente escriben Python para el trabajo, uno tiene la sensación de que lo disfrutan mucho.
"Elegí Python porque era un lenguaje divertido de codificar", dice Calvin Hendryx-Parker, director de tecnología y cofundador de Six Feet Up , una consultora con sede en Fishers, Indiana, que realiza una gran cantidad de codificación personalizada en Python.
“Lo disfruto porque no se trata simplemente de hacer un trabajo pesado”, continúa. “Todo es muy innovador y creativo. Es más una habilidad de estilo artesano. Los ingenieros construyen lo mismo todos los días, pero los artesanos tienen que resolver los problemas de manera creativa porque el entorno que los rodea está en constante movimiento ".
Python se movió al puesto número uno en el índice TIOBE de idiomas (Fuente: Índice TIOBE )
Six Feet Up se fundó para crear aplicaciones web personalizadas, pero los clientes de todo el Medio Oeste recurren cada vez más a la empresa para obtener ayuda para llevar a producción proyectos de big data. Si bien Python no es el único lenguaje involucrado en estos proyectos, generalmente involucran una buena dosis del lenguaje de programación favorito de todos.
“Lo bueno es que muchas de las herramientas de big data están comenzando a construirse en Python”, dice Hendryx-Parker. "Es este tipo de lengua franca para todo lo relacionado con los datos".
El ecosistema masivo de Python
El ecosistema de datos de Python es amplio y está creciendo. Desde los envoltorios de Python para Keras y TensorFlow hasta paquetes de aprendizaje automático como scikit-learn y NumPy, desde interfaces de Python para clústeres Spark y Dask hasta experimentar con código en cuadernos Jupyter o Pandas, los científicos e ingenieros de datos pueden hacer prácticamente cualquier cosa que necesiten sin tener que irse. La cómoda sintaxis de Python.
La flexibilidad de Python es fundamental para Prefect , una empresa con sede en Washington, DC que desarrolla una herramienta de canalización de datos basada en Python. Según el prefecto CTO Chris White, Python es la herramienta perfecta para el trabajo.
El prefecto CTO Chris White aprecia la flexibilidad de Python
"En un alto nivel, nuestra sensibilidad de diseño es valores predeterminados sensibles pero profundamente configurables, por lo que puede hacer que algo funcione muy rápido si realmente lo desea, pero cuando realmente desea meterse en la maleza, también puede hacerlo". White dice. “Python realmente nos ayuda a lograr ese objetivo, porque al final del día, Python es un lenguaje muy flexible. Puedes escribir un guión. No necesitas saber qué significa compilar ni nada. Simplemente escribe un guión ".
Todo apunta a la ética de diseño de van Rossum para Python, que era la simplicidad sobre la complejidad. La barrera de entrada para Python es increíblemente baja, gracias a su inminente legibilidad. Eso le permite a Prefect usar Python con sus programadores junior y programadores más experimentados por igual.
“Es uno de los pocos lenguajes, al menos que yo conozco, que se puede utilizar como lenguaje de secuencias de comandos sin procesar. Simplemente ejecútelo. No tienes que saber nada más ”, dice White. “Así que es muy accesible. y luego, por supuesto, puedes empaquetar las cosas. Puedes escribir extensiones C y cosas por el estilo ".
Flexibilidad y rendimiento
Hablando de C, el rendimiento no es uno de los puntos fuertes de Python. Esa es una de las compensaciones por una flexibilidad y accesibilidad inminentes. Gracias a las extensiones C, existe un camino para lograr un mayor rendimiento. Pero en muchos casos, ese rendimiento no es necesario.
“Hay otros lenguajes de programación, por supuesto, que van a ser mucho más rápidos que Python en los casos extremos más extremos, para el procesamiento en tiempo real o algo así”, dice White. "Pero en el 90% de los datos con los que la gente realmente trata ... no necesitas esa velocidad".
Otro aspecto negativo histórico en el repertorio de Python es la seguridad de tipos. Python es un lenguaje fuertemente tipado, lo que ha provocado críticas por parte de algunos. Sin embargo, la gente ha comenzado a darse cuenta de que no es tan negativo como pensaban, dice White.
“Muchas de las cosas de las que la gente se quejó inicialmente, como la velocidad y la seguridad del tipo, están empezando a relajarse un poco. Tal vez no sean tan importantes para algunas de las aplicaciones con las que se enfrenta la gente ”, dice. “Eso es lo más importante: no se pueden realizar muchas comprobaciones de tipos con datos. La mayoría de los datos no están estructurados. Es realmente difícil incluso concebir cómo estructurarías eso. Pero Python hace que sea realmente fácil al menos comenzar a iterar y descubrir, mientras que otros lenguajes te obligarían a entrar en un esquema muy temprano ".
La velocidad de desarrollo es una gran ventaja en la esquina de Python. Debido a que el lenguaje es tan accesible, los desarrolladores pueden armar algo rápidamente sin convertirlo en un proyecto importante. La casualidad de la codificación de Python quizás esté en su punto máximo en Juypter, donde puede ejecutar Python en el lugar en el navegador, incluso si las cosas están fuera de orden.
Un multiplicador de fuerza
Cuando se ponen en las manos adecuadas, las herramientas de Python también pueden funcionar como un multiplicador de fuerza, entregando capacidades sofisticadas de ingeniería de datos y ciencia de datos que están más allá de lo que sería posible si todos tuviéramos que ser expertos en C o Java. White transmite esta historia de un cliente de Prefect que utilizó la herramienta de Prefect (una creación de Python) para orquestar algunos flujos de trabajo de datos bastante complejos.
“El cliente dijo: 'No soy realmente un ingeniero de software por capacitación, pero simplemente escribí lo que creo que es un flujo de trabajo de procesamiento por lotes altamente robusto y tolerante a fallas y lo implementé en Kubernetes'”, dice White. “Dijo 'No tengo por qué saber qué significan esas palabras, pero Prefect me dio las herramientas para llegar allí'”.
Si bien Python reduce la barrera de entrada, gracias a la flexibilidad de Python y la entusiasta comunidad de usuarios, también se puede escribir un código perfectamente cuidado y de primera categoría que será un placer para su amigable ingeniero de DevOps.
"Python te permite elaborar algo muy rápido", dice Hendryx-Parker. “Pero también se presta para convertirlos fácilmente en un proyecto de software bien diseñado con todas las comodidades cuando se trata de pruebas unitarias y poder implementar con CI / CD, todo el tipo de adornos modernos que lo rodean . "
La comunidad de código abierto
Otra ventaja a favor de Python es la comunidad de código abierto que se ha construido a su alrededor, según Hendryx-Parker, quien ha estado participando en conferencias de Python durante casi 20 años, y quien es el fundador del grupo local de usuarios de Python en Indianápolis, IndyPy.
“Es un grupo de personas increíbles que quieren asegurarse de que sea acogedor y esté abierto a otras personas increíbles que vengan y sean parte de esta comunidad, lo cual no siempre es fácil en una multitud de tecnología”, dice.
Hay miles de complementos, adiciones e integraciones para Python, la mayoría de los cuales son de código abierto, pero algunos están mal mantenidos. Eso puede hacer que a veces sea complicado evitar los paquetes de Python que han sucumbido a la vejez o la putrefacción, dice Hendryx-Parker.
Por otro lado, cuando uno se encuentra con una biblioteca útil pero descuidada, también brinda una oportunidad para que los usuarios de Python den un paso al frente y retribuyan a la comunidad de Python al ofrecerse como voluntarios para ayudar a mantener el código, dice.
“Alentamos a nuestros clientes que se encuentran en esa situación a que inviertan tiempo en su presupuesto para mejorar estos proyectos de código abierto”, dice Hendryx-Parker. “Creo que todo está bien. Es un ganar-ganar-ganar. Si pueden conseguir ese presupuesto y saben que necesitan tener esa capacidad en su cadena de suministro, es una obviedad ".
En comparación con el ecosistema bien documentado que se ha construido alrededor de R, el ecosistema de Python está un poco menos ordenado, lo que tiene sus pros y sus contras, dice White.
“R realmente ha ganado mucha tracción porque se siente como un estándar. Tiene el mismo universo de paquetes que funcionan muy bien juntos, por lo que creo que eso lleva a la gente a R ”, dice. “Python, es como el Salvaje Oeste. Puedes hacer cualquier cosa. No hay un conjunto de paquetes que estén tan estrictamente estandarizados como el Tidyverse en R. "
Por otro lado, la comunidad de Python es tan grande y tan abierta que los usuarios tienen muchas fuentes de ayuda. “Hay mucha buena documentación, por lo que siempre puede obtener las respuestas que necesita muy rápidamente”, dice White. “Pero tenemos que salir y mirar. No es tan autónomo ".
El futuro de Python es brillante. Se encuentra en la parte superior de la lista de habilidades de todos, tanto para la ciencia de datos como para la ingeniería de datos. Con su impulso actual, Python parece destinado a seguir creciendo hasta que algo pueda lograr sacarlo de la parte superior del montón.
Fuente: datanami