Python, un lenguaje simple para comprender la complejidad del mundo - Nobbot

Python, un lenguaje simple para comprender la complejidad del mundo

La relación de Donald Trump con los tacones en las oficinas de Reino Unido, el uso de herramientas de programación para predecir las muertes en Juego de Tronos o cómo ganar dinero en bolsa aplicando Deep Learnig, son algunos de los temas que se tratarán en las conferencias que tendrán lugar en la quinta edición de la PyConES; la conferencia de Python más importante de España. Este evento, patrocinado entre otros por Orange, es una cita para los expertos en el lenguaje de programación Python y una gran oportunidad para curiosos y personas que se inician en el mundo de la programación.

PYTHON PARA PROGRAMADORES PRINCIPIANTES

Python es un lenguaje que se usa en varias áreas de tecnología: web, redes, procesamiento de datos, inteligencia artificial, etc. y ha sido desarrollado teniendo en mente a los programadores principiantes pues es muy sencillo familiarizarse con la sintaxis del lenguaje. Gracias al uso de expresiones comunes, Python requiere menos líneas de código para realizar tareas básicas. En promedio, el código escrito en Python es de tres a cinco veces más corto que Java y cinco a 10 veces más corto que C++.

Adicionalmente, Python tiene una librería estándar que permite ejecutar otras funciones y tareas más complejas con mayor facilidad que otros lenguajes. Para desarrollo en últimas tendencias como machine learning, Python es el lenguaje más popular del mundo. Python es un lenguaje perfecto para cualquier programador principiante que esté decidido a aprender por cuenta propia por la facilidad de su sintaxis.

PyConES 2017Las charlas de este evento tratarán sobre la multitud de aplicaciones del lenguaje, y sobre el lenguaje en sí: Machine Learning, programación web, aplicaciones científicas, seguridad informática, arte, IoT o Big Data, entre ellos.

La organización anunció también los dos oradores plenarios de la conferencia: Naomi Ceder, parte de la Junta de Directores de la Python Software Foundation y cofundadora de Trans*Code, y Juan Luis Cano, ingeniero aeroespacial y presidente de la asociación Python España.

Precisamente Juan Luis Cano nos explica a continuación diversos aspectos de este lenguaje de programación y, más allá de él, de las disciplinas en las que se aplica ya con éxito.

  • ¿Por qué un congreso dedicado a Python?

Mi primera respuesta podría ser: «¿Por qué no?». Hablando en serio, ya en 2012 detectamos que Python tenía la suficiente masa crítica como para organizar una conferencia exclusiva en torno a este lenguaje, como ya llevaba tiempo ocurriendo en Estados Unidos, Argentina y varios países europeos. Es lo suficientemente versátil como para poder reunir a profesionales de muchos sectores distintos, y además su naturaleza abierta (recordemos que Python lo desarrolla una Fundación sin ánimo de lucro) lo hace especialmente apto para este tipo de encuentros. No solo no nos equivocamos sino que esta será ya la quinta edición y las expectativas están más altas que nunca.

  • ¿Cuál ha sido vuestra experiencia en ediciones anteriores? ¿qué esperáis de esta edición?

Todas las ediciones tienen ciertos elementos comunes, y destacaría el entusiasmo de la comunidad y el apoyo de los patrocinadores como los más importantes. Colgar el cartel de «entradas agotadas» año tras año es una gran satisfacción para nosotros, y seguramente con más colaboradores podríamos hacer un evento más grande. También comparten dificultades comunes, como encontrar una sede que cumpla con nuestros requisitos – a pesar de que Python España es una asociación sin ánimo de lucro y promueve un lenguaje en auge y con escasez de profesionales, no todos los años encontramos el mismo nivel de apoyo por parte de las Administraciones Públicas.

Este año hemos recibido más apoyo que nunca por parte de los patrocinadores, lo cual nos permitirá celebrar la PyConES en una sede de mucha categoría y también ofrecer retransmisión en directo de todas las charlas. Cada nueva idea es un reto que requiere mucho esfuerzo, pero también este año el equipo organizador ha estado mejor coordinado que nunca y creemos que sorprenderemos gratamente a los asistentes.

  • ¿Cuáles son las ventajas que aporta Python frente a otros lenguajes de programación?

Las principales que yo destacaría son: su naturaleza abierta, su facilidad de aprendizaje y su comunidad. A veces se tiende a exagerar la facilidad de aprender a programar (siempre hacen falta técnicas de resolución de problemas y ciertas capacidades analíticas) pero sí es cierto que Python es, comparado con otros lenguajes, más fácil de aprender. El hecho de que haya una entusiasta comunidad detrás dispuesta a compartir conocimiento y ayudar a otros es sin duda otro aliciente, como también que en Internet haya numerosos proyectos escritos en Python que resuelven multitud de problemas diferentes y que sirven como punto de partida.

Python se posicionará como el lenguaje de programación de referencia en la enseñanza y la industria.

No somos los únicos que ven en Python una gran cantidad de ventajas. Según las estadísticas de Stack Overflow, entre 2012 y 2017 Python ha sido, con abrumadora diferencia, el lenguaje mayoritario que más ha crecido. Pensamos que esta tendencia, aunque tiene sus límites, aún continuará unos años más y posicionará a Python como lenguaje de referencia en la enseñanza y la industria.

Python

  • ¿Qué nivel tienen los programadores españoles en este ámbito? ¿Hay necesidades específicas de formación no cubiertas por la facultades de informática?

Todas las personas que programan Python en España que he conocido son entre buenas y muy buenas. Muchas de ellas además tienen amplia experiencia trabajando también en proyectos de código abierto (que normalmente tienen unos estándares de calidad muy exigentes) e incluso nos encontramos en conferencias sobre Python que se celebran en otros países. El año pasado batimos récords en número de eventos de Python en el país, con la PyConES, “meetups”, PyDays (encuentros locales de un día o un fin de semana), PySS (la conferencia de Python San Sebastián), la PyData de Madrid y la EuroPython, que se celebraba por segundo año consecutivo en Bilbao y que acogió a más de mil personas.

PythonEn cuanto al papel de las universidades, creo que es justo reconocer en primer lugar que en condiciones de fuertes restricciones presupuestarias es difícil hacer innovaciones. Dicho esto, es cierto que echamos de menos una apuesta más fuerte por este lenguaje (en Estados Unidos Python ya adelantó a Java hace años como el más usado para enseñar a programar) pero no solo en las facultades de informática, sino también en las de física, biología, ingeniería, economía… Python se está utilizando en muchos aspectos de la ciencia y la ingeniería (también ciencias sociales y humanidades) y tener conocimientos mínimos de programación beneficia a todos los que aspiran a un título universitario.

echamos de menos una apuesta más fuerte por este lenguaje que ya ha adelantado a java en estados unidos hace años

  • ¿Cuáles serían tus consejos para un joven que quiera introducirse en este mundo?

Como decía en Twitter hace poco Jake Vanderplas, una persona muy reconocida dentro de la ciencia de datos y la astronomía, elegir un problema y tratar de resolverlo en Python. A veces los materiales introductorios pueden frustrar a los más impacientes porque son demasiado genéricos, mientras que si se ataca una necesidad o un problema interesante a través de la programación el proceso es mucho más divertido. Yo lo usé como estudiante para descargar materiales de la plataforma de e-learning de la universidad de manera automática, para resolver ecuaciones diferenciales, para generar diplomas personalizados a partir de plantillas…

Otra cosa que fue determinante en mi propio aprendizaje fue ponerme en contacto con la comunidad local de mi ciudad, por aquel entonces Madrid. Las charlas mensuales fueron una fuente riquísima de inspiración, y hablar con programadores que estaban usando Python en su trabajo me abrió la mente y me dio una visión mucho más completa. En Python España mantenemos un mapa de todas las comunidades de España, y si en alguna ciudad no existe… entonces alguien tiene que crearla.

  • Llevamos años hablando de Big Data y parece que ha llegado el momento de la definitiva extensión de su uso, ¿qué papel jugará Python?

El Big Data es ya una realidad desde hace un tiempo, y cada vez más industrias están valorando qué oportunidades ofrece para su negocio una vez que las más grandes ya han dado el paso (bancos, aseguradoras, operadoras de telecomunicaciones). Gran parte de la infraestructura de bajo nivel de las tecnologías Big Data está escrita en Java o Scala, pero los desarrolladores son conscientes de que Python es el lenguaje más usado para hacer ciencia de datos y aprendizaje automático según KDNuggets, de modo que muchas de esas herramientas se pueden usar desde Python.

Por otro lado, el auge del aprendizaje profundo (“deep learning”) está dando lugar a la proliferación de “frameworks” para la creación de complejas topologías de redes neuronales, y los más utilizados (TensorFlow, Theano, Keras, PyTorch) están escritos en Python o tienen a Python como un lenguaje de primer nivel. Por tanto, pensamos que no solo tiene un papel fundamental ahora mismo, sino que cada vez será más importante en el corto y medio plazo.

Big Data

  • Pensando en los que no conocemos este mundo ¿nos puedes poner algún ejemplo de uso de este lenguaje de los que se presentarán en el congreso que nos haga comprender su trascendencia?

Entre las muchas y variadas charlas que hay en la conferencia, creo que a un público generalista podría llamarles la atención el uso de Python para analizar la movilidad en las ciudades (un tema de rabiosa actualidad, más con la presión del cambio climático y la contaminación urbana), la reconstrucción de prótesis nasales para cirugía o el desarrollo de vehículos de conducción autónoma.

  • Tú eres ingeniero aeroespacial, ¿hay algún ejemplo en este campo que puedas destacar?

En mi día a día siempre estoy empujando por potenciar Python dentro del sector aeroespacial. Estoy muy orgulloso de poder decir que en la empresa en la que trabajo, Satellogic, corremos Python en el espacio (además de usarlo para muchísimas otras cuestiones). Por otro lado, durante mi estancia en Airbus analizamos datos sobre fuerzas que se ejercen sobre el avión usando Python, y colaboro en un proyecto de la Comisión Europea para predecir rutas aéreas usando datos históricos. Finalmente, lidero un proyecto desarrollado enteramente en abierto para analizar órbitas interplanetarias usando Python que este verano ha recibido una beca de la Agencia Espacial Europea.

La ingeniería en general, y la aeroespacial en particular, son áreas en las que aún hay mucho margen de mejora en cuanto a buenas prácticas de desarrollo, y creo firmemente que Python es una solución ideal.

  • ¿Cuáles son las tendencias más destacadas en programación, más allá de Python que empiezan a configurar ese mundo de objetos conectados y big data que se nos anuncia?

La primera tendencia que veo, que ya es una realidad hoy en día, es que el código abierto se ha impuesto. Un ejemplo paradigmático de esto es el cambio de postura de empresas como Microsoft, que en los años 90 decían que Linux era «un cáncer» y ahora están colaborando con numerosos proyectos y liberando código propio. Otro ejemplo es la infraestructura Big Data, que en su mayor parte está protegida por la Fundación Apache y liberada bajo licencias permisivas, que permiten que las empresas hagan uso de ella sin necesidad de modificar sus propios modelos de licenciamiento. Los proveedores de servicios en la nube están de alguna forma compitiendo con esta visión, pero hoy día las empresas pueden decidir entre comodidad y flexibilidad sin sacrificar potencia y calidad.

La segunda tendencia evidente es la falta de seguridad en los dispositivos del internet de las cosas (IoT). Recientemente ya ha habido ataques masivos que han puesto de relevancia las limitaciones de estos dispositivos, y es un asunto que hay que empezar a tomarse en serio desde ya mismo, tanto a nivel de software como de hardware.

la seguridad en los dispositivos del internet de las cosas (IoT) es un asunto que hay que empezar a tomarse en serio desde ya mismo, tanto a nivel de software como de hardware.

¿Crees que sería buena idea incluir lenguajes de programación como Python en los planes de estudio de las escuelas con el fin de preparar a las nuevas generaciones para el mundo que nos va a tocar vivir?

Esta es una pregunta recurrente, y para mí de difícil respuesta. Al hilo de lo que he comentado antes sobre las universidades, creo que sin financiación y sin apoyo institucional no se pueden hacer experimentos, y en ese sentido nuestro país está en una situación crítica.

Dicho esto, en mi opinión es interesante que los niños y niñas aprendan temprano a progamar pero aún hay muchas cuestiones abiertas en cuanto a la didáctica de la programación. No hay consenso sobre si es “mejor” empezar con un lenguaje estricto, de bajo nivel, o un lenguaje más laxo como Python para alumnos de carreras universitarias. Tampoco veo consenso sobre si es mejor utilizar herramientas de programación por bloques como Scratch o empezar directamente con lenguajes “normales”. Además, a los informáticos les suele gustar debatir enérgicamente sobre esta y otras cuestiones, lo cual hace todo más complicado.

Igual que todos sabemos escribir pero no todos somos escritores, creo que la programación aporta una visión interesante sobre el mundo que nos rodea y que es muy necesaria, sin necesariamente tener que convertirnos a todos en programadores. No obstante, en una sociedad hipertecnificada como la nuestra, cada vez echo más de menos el deporte, la música, la historia y la filosofía, y habría que reflexionar sobre su importancia independientemente de “si lo piden las empresas” o no.

Igual que todos sabemos escribir pero no todos somos escritores, creo que la programación aporta una visión interesante sobre el mundo que nos rodea

  • ¿Hay suficientes profesionales formados en España para cubrir la demanda laboral que se espera para los próximos años en el campo de la programación informática?

Claramente no, y en esto creo que estarán de acuerdo todos los “recruiters” que conozco. También es cierto que hay mucho talento extranjero (que lógicamente se mueve por la ley de oferta y demanda) y que las empresas deben hacer un esfuerzo por formar a sus trabajadores, porque si las tecnologías están cambiando cada dos años no pueden esperar a que las universidades se adapten. Así mismo, creo que el sector puede colaborar con las administraciones públicas para la muy necesaria revalorización de los ciclos de Formación Profesional.

En Nobbot | Big Data para la gestión inteligente del turismo en Barcelona