31 de mayo de 2017

PyCon 2017

Del 19 al 22 de mayo tuve la oportunidad de asistir a PyCon 2017 en la ciudad de Portland, Oregon, en los Estados Unidos. PyCon es una conferencia anual organizada por la Python Software Foundation con el fin de reunir a la comunidad de desarrolladores, usuarios y entusiastas del lenguaje Python y su correspondiente ecosistema.


Actualmente existen muchas ediciones de PyCon en todo el mundo. Argentina, Colombia, España, Uruguay y Venezuela son algunos de los países hispano parlantes que han tenido una o más conferencias nacionales sobre Python. Sin embargo, PyCon en los Estados Unidos es el encuentro de Python con el mayor número de participantes. Este año tuvo una cifra record de más de 3,300 asistentes.

Centenares de pitonistas esperando que comience una
de las conferencia magistral en PyCon 2017.

En esta entrada del blog de EduPython comentaré sobre mi experiencia e impresiones de PyCon 2017.

La agenda

PyCon 2017 se efectuó en un espacio de nueve días (del 17 al 25 de mayo) con los siguientes cinco eventos centrales:
  • Tutoriales. Sesiones de tres horas para aprender temas nuevos y relevantes.
  • Cumbres. 
    • Cumbre de lenguaje Python: Reunión de los desarrolladores de las diferentes implementaciones de Python (CPython, Cython, Jython, MicroPython, PyPy, etc.) para discutir sobre tecnología y estrategias.
    • Cumbre de educación: Reunión de maestros y educadores enfocados a enseñar programación, usando Python, a públicos amplios y diversos.
  • Conferencias.
    • Pláticas programadas: conferencias magistrales y pláticas en sesiones paralelas.
    • Espacios abiertos (Open Spaces): también conocido como la desconferencia, en la que los propios asistentes toman un papel más participativo y activo en presentaciones y discusiones informales.
    • Charlas relámpago (Lightning Talk): pláticas de cinco minutos de casi cualquier tema.
    • Sala de exposiciones: conformado por stands (puestos) de diversas compañías que usan y respaldan Python o que contratan gente que sabe programar en Python.
    • Sesión de pósteres: académicos, aficionados y miembros de la comunidad muestran su trabajo en forma de póster y responden a preguntas.
  • Feria de empleo. Para personas interesadas en conseguir trabajo en compañías que están utilizando Python y tecnologías relacionadas. Algunas de las empresas que estuvieron presentes fueron: Google, Intel, Microsoft, Linkedin, Red Hat, SurveyMonkey, Heroku, Continuum Analytics, JetBrains, Docker, Yelp, Lyft, Instragram, Facebook, JPMorgan Chase, BuzzFeed, Double Negative y Walt Disney Animation Studios.
  • Esprints de desarrollo. Sesiones de trabajo en las que los interesados pueden trabajar en diversos proyectos de código abierto (Open Source), incluyendo el lenguaje Python.

Arriba: el stand de Walt Disney Animation
Studios en la feria de empleo.

Abajo: mesa de trabajo del proyecto mypy
durante el primer día de esprints.

La comunidad

Lo mejor de PyCon, sin lugar a duda, es su comunidad. Brandon Rhodes, presidente de la mesa directiva de PyCon 2016-17, mencionó en su mensaje inaugural lo orgulloso que él se siente de pertenecer a una comunidad centrada en una herramienta abierta que puede ser usada libremente por todos, desde un estudiante de nuevo ingreso hasta un profesionista, un académico con presupuesto limitado, o incluso una gran empresa. Enfatizó que la comunidad de Python no busca sacarle ventaja al software para hacer que las cosas sean más costosas, sino que, al contrario, busca apoyar y facilitar cualquier tipo de actividad humana y no solo aquellas que cuentan con los medios para desembolsar una cuota.

Brandon Rhodes, presidente de PyCon 2017.

La comunidad de PyCon destaca por su carácter amistoso e incluyente. Un objetivo fundamental de la conferencia consiste en propiciar una experiencia libre de cualquier tipo de acoso, sin importar género, preferencia sexual, discapacidad, apariencia física, tamaño corporal, raza o religión. 

En PyCon no se discrimina a ningún tipo de persona.

El BDFL

Uno de los momentos más memorables que tuve en PyCon fue cuando conocí en persona al mismísimo Guido van Rossum, computólogo neerlandés y autor del lenguaje Python, usualmente conocido (de manera humorística) como el dictador benevolente de por vida (BDFL por sus siglas en inglés). Tuve la oportunidad de platicar con él por un espacio de quince minutos sobre algunos aspectos de su vida personal y laboral. Quedé admirado por su trato sencillo y accesible. Es claro para muchos que su personalidad ha sido un factor clave en la conformación y proceder de la notable comunidad de Python.

Conociendo a Guido van Rossum, el creador de Python.

Un mosaico de ideas e intereses

¿A qué se dedican las personas que asisten a PyCon? Hay una amplia variedad de profesiones representadas: programadores/desarrolladores de software, testers, ingenieros, científicos, investigadores, estudiantes, maestros, directores de tecnología (CTO por sus siglas en inglés) y aficionados que solo programan como hobby. Relacionado a esto, en la conferencia magistral titulada “La efectividad inesperada de Python en la ciencia” el Dr. Jake Venderplas hizo la siguiente observación:
Hay muchos otros congresos relacionados con Python: DjangoCon, la conferencia de SciPy, PyData, AnacondaCON, JupyterCon, etc. Los grupos de personas que asisten a estos congresos son tan solo una delgada “rebanada” de toda la comunidad de Python. Cada uno de estos grupos tiene sus propias herramientas y enfoques para resolver problemas. Pero durante PyCon, todos estamos aquí reunidos. Por esta razón considero que PyCon es de cierta manera como un gran mosaico.

Venderplas posteriormente introdujo a la audiencia a su muy particular “rebanada”: la astronomía. Él se dedica a aplicar estadística, minería de datos y aprendizaje automático para procesar grandes volúmenes de datos generados por telescopios y otros instrumentos de medición astronómica. Resulta que Python es una herramienta central para todo lo que hace de forma habitual en su trabajo.

Jake Venderplas, astrónomo y
científico de datos.

En su plática, Venderplas presentó la siguiente filmina que muestra cómo las menciones de Python se han incrementado en los últimos años en las publicaciones de astronomía, comparado con otras herramientas de software como Fortran, Matlab e IDL (Interactive Data Language):

Menciones de software en publicaciones de astronomía.
El lenguaje Python (línea roja) ha tenido un crecimiento exponencial.

Pero, ¿por qué se ha popularizado tanto el uso Python en la astronomía y en otras áreas de la ciencia? Vanderplas considera que hay cuatro razones para explicar este fenómeno:
  1. Interoperabilidad con otros lenguajes. Python sirve como un “pegamento” para juntar toda la mezcolanza de software científico que hay disponible. Su sintaxis de alto nivel sirve como una envoltura para las bibliotecas escritas en C y Fortran, donde realmente ocurren las operaciones de cómputo intensivo.
  2. Baterías incluidas. La biblioteca estándar de Python permite hacer casi cualquier cosa, y para todo lo demás existe una cantidad inmensa de bibliotecas desarrolladas por terceros. Si tienes algún problema particular, hay una alta probabilidad de que alguien ya haya escrito un paquete en Python para resolverlo.
  3. Simplicidad y dinamismo. Por su naturaleza, el cómputo científico es exploratorio y no lineal. En este contexto, la velocidad para desarrollar un programa suele ser más importante que la velocidad de ejecución.
  4. Apertura. El carácter distintivamente abierto de Python encaja muy bien con la esencia misma de la investigación científica. Actualmente la ciencia pasa por una crisis de replicabilidad. Esto quiere decir que existen muchos estudios publicados los cuales no pueden ser repetidos de manera exitosa. Para que la ciencia pueda progresar se debe seguir un modelo de ciencia abierta (Open Science), el cual toma muchas ideas del movimiento de código abierto (Open Source). Una investigación científica que involucre software debe dar a conocer el código y los datos que produjeron los resultados obtenidos. El código abierto en general, y Python en particular, han servido como ejemplo e inspiración para mejorar las prácticas de la comunidad científica mundial.

Conclusión

El haber participado en PyCon fue una gran experiencia personal. Convivir con una comunidad tan diversa y entusiasta me resultó revigorizante. Me falta tiempo para poder escribir en este espacio sobre todos aquellos temas sumamente interesantes que desconocía o que no me había dado el tiempo de examinar a más detalle. Algunas cosas que descubrí (o redescubrí) en PyCon y que espero poder estudiar más profundamente son: manejo de tipos estáticos con mypy, programación de microcontroladores con MicroPython, escritura y experimentación con notebooks de Jupyter, y uso de pdb para depurar programas de manera interactiva. Ya estaré documentando en este blog lo que vaya aprendiendo.

Pioneer Courthouse Square,
centro de Portland.

Por último, conviene mencionar que los videos de todas las conferencias están disponibles en inglés en el canal de YouTube de PyCon 2017.