Schedule

David Barragán Merino

Core / ES

Track 3

07 October 2018, 17:30 - 17:55

Gradual typing en Python

Los sistemas de tipado estático son aquellos que definen y verifican los tipos en tiempo de compilación. Estos sistemas no son flexibles y cualquier cambio puede generar una gran reescritura del código.

Los sistemas de tipado dinámico son aquellos que usan un conjunto de etiquetas en tiempo de ejecución para distinguir los diferentes tipos de estructuras. Por tanto la verificación de tipos se realiza en tiempo de ejecución. Estos sistemas ofrecen una mayor flexibilidad y expresividad, acelerando el proceso de desarrollo y ofreciendo una mayor tolerancia a fallos. Por contra son sistemas más lentos y la detección de errores se realiza en tiempo de ejecución.

Gradual typing integra ambas tecnologías permitiendo controlar qué fragmentos de código utilizarán tipado estático y cuales tipado dinámico.

En esta charla se realizará una introducción al gradual typing y veremos cómo podemos aplicarla en Python mediante anotaciones en el código apoyándonos en la teoría del “Type Hints” descrita en PEP 483 y PEP 484 y la biblioteca mypy. Esta nueva notación aporta muchas ventajas a nuestro código: mejora su documentación, reduce el número de bugs, acelera su aparición y mejorando los mensajes de las excepciones, mejora los tiempos de ejecución de nuestros programas y nos facilita la labor de desarrollo, aumentando las funcionalidades de nuestros IDEs (autocompletado, validaciones, refactorización,...).