) | Consejos de carrera de Dice.com
Pablo Galindo es uno de los cinco miembros de la Junta de Gobierno de Python, que juegan un papel clave en el desarrollo del lenguaje de programación Python. Se desempeñó como gerente de lanzamiento de Python 3.11 recientemente lanzado, y es parte del equipo que dirige ese programa. Un proyecto CPython más rápido.
Si eso no fuera suficiente, Galindo también es ingeniero de software en el equipo de herramientas e infraestructura de Python de Bloomberg, donde ayuda a los miles de ingenieros de software de la empresa a usar Python. Hace unos pocos años, hablamos con él sobre la evolución de Python; en esta nueva entrevista, analiza todo, desde la adopción de Python por parte de los científicos de datos hasta la reciente colaboración de Bloomberg con Microsoft para acelerar aún más el lenguaje.
Así se veía hace unos años Pitón Estaba reemplazando a Ri como el lenguaje de programación elegido por algunas tiendas académicas y de ciencia de datos. Por supuesto, Python es extremadamente versátil, mientras que R se enfoca principalmente en el análisis de datos/análisis estadístico. ¿Cómo sigue evolucionando Python en el contexto de la ciencia de datos?
Una de las cosas que hace que Python sea excepcional para la ciencia de datos y el análisis estadístico es su rico y vibrante ecosistema de bibliotecas de código abierto como NumPy, SciPy y Pandas. Estas bibliotecas no solo agregan nuevas características y capacidades, sino que vemos que surgen bibliotecas nuevas y más especializadas todos los días que abordan problemas específicos que surgen a medida que avanza la tecnología. Un ejemplo de esto es el gran ecosistema de bibliotecas de aprendizaje automático que se ha desarrollado (además de bibliotecas de datos anteriores) en los últimos años.
Desde la perspectiva del equipo de desarrollo de Python, siempre nos esforzamos por brindar a los desarrolladores de bibliotecas una mejor integración con el intérprete y nuevas funciones de lenguaje para muchas tareas diferentes, incluida la ciencia de datos. Un ejemplo de esto es cuando agregamos el operador de multiplicación de matrices (@) en Python 3.5. Este operador permite a los usuarios realizar multiplicaciones de matrices usando el símbolo @, lo que facilita la escritura de código conciso y legible para problemas de álgebra lineal.
A medida que surgen nuevos problemas, la comunidad siempre colabora para crear nuevas bibliotecas, mejorar las existentes o, a veces, fusionarse orgánicamente en una solución cambiando el idioma.
¿Cómo está impactando Python actualmente en el campo financiero? Ampliamente utilizado en Bloomberg, pero ¿cómo cambia el desarrollo de aplicaciones/servicios a nivel de la industria?
El campo financiero siempre ha estado estrechamente asociado con los casos de uso de la ciencia de datos de Python. Históricamente, la gran mayoría del uso de Python en finanzas ha sido para tareas de ciencia y análisis de datos. Sin embargo, en los últimos cinco años, hemos visto muchas compañías financieras diferentes (incluyendo a Bloomberg, así como otras como fondos de cobertura y bancos) usar Python para muchas tareas diferentes que antes solo se desarrollaban usando otros lenguajes.
Estas tareas incluyen servicios web, niveles de acceso a bases de datos, procesamiento por lotes, programación de tareas y gestión de riesgos, optimización de cartera y muchas otras tareas, como el procesamiento de datos para muchos tipos diferentes de instrumentos financieros. Otra área donde Python es muy atractivo es el desarrollo de herramientas de desarrollo internas.
Además, Python tiene una comunidad de usuarios grande y activa, lo que significa que hay muchas bibliotecas y herramientas de código abierto para tareas financieras. Esto hace que sea más fácil y rápido para los desarrolladores crear aplicaciones y servicios financieros con Python que con otros lenguajes, lo que ha sido un elemento clave en el éxito de Python en muchas áreas diferentes, incluidos los servicios financieros. Esto es particularmente digno de mención porque las empresas del sector de servicios financieros históricamente han sido conservadoras y algo reticentes a la hora de introducir lenguajes dinámicos en sus pilas de tecnología.
¿Qué llevó a Bloomberg y Microsoft a colaborar en Python y cuál es el objetivo final?
Cuando Guido van Rossum se unió a Microsoft en 2020, decidió que quería dedicar la mayor parte de su tiempo en la empresa a hacer que Python fuera más rápido. Para lograr esto, creó un pequeño equipo dentro de Microsoft con el objetivo de desarrollar nuevas estrategias para hacer que CPython (la implementación estándar de Python) fuera más rápida. Mejorar el rendimiento del intérprete de Python es algo que siempre me emociona y he pasado mucho tiempo tratando de lograr este objetivo en el pasado. Poco después de que se lanzara este equipo en Microsoft y después de algunas conversaciones, Bloomberg me permitió pasar la mitad de mi tiempo colaborando con el equipo de Faster CPython. Desde entonces, el equipo ha crecido para incluir nuevos empleados de Microsoft y empleados adicionales del equipo central de Python y otras empresas.
El objetivo principal de esta colaboración es hacer que Python sea más rápido para todos y para todos los casos de uso.
Python 3.12 (alfa 3) se lanzó el 14/12. ¿Cuál es la dirección a largo plazo de Python con cada nuevo lanzamiento? ¿Qué deben tener en cuenta los desarrolladores de Python al pensar en el futuro a largo plazo del lenguaje?
Python 3.12 aún no tiene módulos nuevos y solo algunas características nuevas. Esto se debe a que aún se encuentra en una etapa muy temprana de su ciclo de desarrollo, por lo que muchos de los grandes cambios aún no se han realizado. Puedes revisar [this site] en cualquier momento para ver lo que se incluirá en la nueva versión.
En general, las nuevas funciones agregadas a las nuevas versiones se proponen como propuestas de mejora de Python (PEP), que se analizan en el contexto de cada versión individual. Estas ofertas generalmente se implementan en la versión a la que se dirigen o, a veces, en la próxima versión. Por supuesto, eso no significa que no haya proyectos que abarquen varios lanzamientos, pero generalmente no tienen una hoja de ruta definida.
Algunas de las cosas en las que estamos trabajando para la dirección a largo plazo del lenguaje incluyen el proyecto Faster CPython (hacer que Python sea más rápido), un esfuerzo para hacer que CPython sea compatible con WebAssembly para que Python se use mejor en navegadores web y plataformas compatibles. , un esfuerzo por mejorar la UX y brindar mejores mensajes de error, y un esfuerzo general por mejorar el lenguaje de secuencias de comandos. Sin embargo, lo que se incluye en cada lanzamiento generalmente no se planifica con anticipación y se decide orgánicamente cuando el lanzamiento alcanza un punto de congelación de funciones. Para obtener más información sobre la cadencia de publicación de Python, Puedes consultar PEP 602.
Cuando se trata de lo que los desarrolladores de Python deben saber al pensar en el futuro a largo plazo del lenguaje, uno de los puntos recurrentes es la compatibilidad. En el equipo de lanzamiento, nos tomamos muy en serio la compatibilidad con versiones anteriores, pero Python se encuentra en una posición muy interesante en comparación con otros lenguajes porque exponemos una gran cantidad de interfaces integradas que los desarrolladores de bibliotecas pueden usar para integrarse con el lenguaje, especialmente cuando crear extensiones compiladas de forma nativa. En lenguajes como C, C++ o Rust. Algunas de estas interfaces integradas no se divulgan oficialmente o se consideran “privadas” o “inestables” (en el sentido de que pueden cambiar en las nuevas versiones de Python). Esta situación obliga regularmente a cambiar muchas bibliotecas que usan algunas interfaces difíciles cuando está disponible una nueva versión del intérprete. Dado que el gráfico de dependencia de las bibliotecas es complejo y denso, esto significa que actualizar un proyecto determinado a la última versión de Python puede ser una tarea trivial, ya que todas las dependencias y las dependencias de las dependencias deben actualizarse primero y, a veces, hay muchos problemas. por el camino.
Por supuesto, hay un buen equilibrio entre ofrecer algunas de estas interfaces íntimas que se pueden usar para el rendimiento y también ofrecer algunas garantías sobre la compatibilidad con versiones anteriores. El equipo central es muy consciente de estos desafíos y estamos trabajando para lograr una interfaz mejor definida con garantías mejor definidas. Al mismo tiempo, intentamos animar a los proyectos a comprobar la compatibilidad de sus bibliotecas y aplicaciones con las nuevas versiones del traductor. De esta manera, podemos acortar el ciclo de comentarios entre ellos y nosotros para ayudar a que todo el ecosistema esté listo más rápido cuando se publique una nueva versión.
En general, este es un problema muy difícil que involucra aspectos tanto técnicos como humanos en igual medida. Pero es un problema que estamos abordando lenta pero constantemente.