Inicio › Tecnología › Tipado Dinámico
El tipado dinámico es una característica de los lenguajes de programación en la qué el tipo de una variable se determina y se comprueba en tiempo de ejecución, no en tiempo de compilación, lo qué permite qué una misma variable pueda contener un entero en un momento del programa y una cadena de texto en otro sin qué el intérprete lo impida de antemano. Lenguajes como Python, JavaScript, Ruby o PHP son de tipado dinámico, lo qué agiliza la escritura de prototipos y reduce la verbosidad del código, pero traslada al momento de ejecución errores qué en un lenguaje de tipado estático se habrían detectado antes, como intentar sumar un número con una cadena de texto sin conversión explícita.
Significa qué el lenguaje de programación no te obliga a decir de antemano qué tipo de dato va a guardar cada variable —si es un número, un texto o una lista—, sino qué lo va comprobando sobre la marcha mientras el programa se ejecuta. Esto hace qué escribir código sea más rápido y flexible, pero también qué ciertos errores de tipo solo aparezcan cuando el programa ya está corriendo, no antes.
En un proyecto Python de tamaño mediano o grande, aunque el lenguaje sea de tipado dinámico, añade anotaciones de tipo (type hints) y valida el proyecto con herramientas como mypy o pyright en el pipeline de CI; esto conserva la flexibilidad del lenguaje en tiempo de ejecución mientras recupera buena parte de las garantías de detección temprana de errores qué aporta el tipado estático, sin necesidad de cambiar de lenguaje ni de reescribir el código existente.
En general sí introduce cierta sobrecarga, porque el intérprete debe comprobar el tipo de cada valor en cada operación en lugar de tenerlo resuelto desde la compilación; motores modernos como V8 para JavaScript mitigan buena parte de ese coste con técnicas de compilación just-in-time, pero rara vez igualan el rendimiento de un lenguaje de tipado estático compilado.
Sí, es un patrón cada vez más habitual: TypeScript añade tipado estático opcional sobre JavaScript, y Python permite type hints verificables con herramientas externas sin qué el intérprete los imponga en tiempo de ejecución, dando al equipo la opción de aplicar más o menos rigor según el proyecto.
Errores como pasar un argumento del tipo equivocado a una función, comparar valores de tipos incompatibles, o acceder a un atributo qué no existe en un objeto de tipo distinto al esperado, todos ellos detectables antes de ejecutar el programa en un lenguaje de tipado estático, pero visibles solo en tiempo de ejecución aquí.