Aunque prácticamente todos los lenguajes de programación usan variables para administrar los datos, unos pocos no tienen tipo, lo que significa que no requieren que especifique texto, números, fechas u otros tipos de datos junto con el nombre de la variable. Sin embargo, si bien esto hace que los lenguajes sin tipo sean más fáciles de aprender, también dificulta el mantenimiento y la depuración de programas.

Profesor y alumno con una computadora

Variables tipificadas y sin tipo

En un lenguaje mecanografiado tradicional, un programador crea variables especificando un nombre y el tipo de datos que contiene la variable. Por ejemplo, en COBOL, una variable para contener el nombre de un cliente podría llamarse "CUST-NAME". COBOL especifica el tipo de datos con la cláusula "PICTURE", y un tipo de datos de texto alfabético es una "X". La especificación completa podría leer, "05 IMAGEN DE NOMBRE DEL CLIENTE X (30)" para reservar 30 caracteres de almacenamiento para el campo. Otros tipos de datos incluyen enteros, fechas y números con puntos decimales flotantes. Una variable sin tipo, por el contrario, solo tiene un nombre.

Más fácil de aprender

Un estudiante que elige su primer lenguaje de programación puede encontrar uno sin tipo, como TCL, más fácil de abordar que un lenguaje mecanografiado tradicional como Java. Ella no tiene que pasar tiempo aprendiendo las diferencias entre los diferentes tipos de datos; el lenguaje gestiona automáticamente los tipos de datos internamente; y funciones como "expr" también determinan qué hace el programa con las variables.

Falta de claridad

Alguien que lee el programa de otra persona puede tener dificultades para comprender un lenguaje sin tipo. Debido a que las variables no están definidas con un tipo, el uso de variables para texto y aritmética se vuelve más ambiguo y potencialmente confuso. Un programador puede mitigar esto de alguna manera al incluir comentarios bien escritos al código que describen cómo usa las variables para realizar una tarea. Las mejores opciones para nombres de variables también marcan la diferencia; nombres vagos como "x", "cust1" o "d" transmiten menos significado que "nombre_cliente", "ventas_total" y "cumpleaños".

Cambios más rápidos

Sin la necesidad de definir y redefinir tipos, los programadores pueden realizar cambios en el código existente en menos tiempo. Puede actualizar un módulo o función en particular sin tener que cambiar definiciones de variables u otro código que use las mismas variables. En general, los idiomas sin tipo tienen tiempos de ida y vuelta más rápidos entre cambiar el código y ver el cambio. Esta es una ventaja para los programas de utilidad simples escritos sobre la marcha para resolver problemas inmediatos, así como para proyectos más grandes destinados a tareas a largo plazo.

Errores de tiempo de ejecución

Aunque crear variables con tipos de datos es más trabajo, tiene el beneficio de una mejor confiabilidad. Los tipos de datos aplican reglas que el lenguaje usa para marcar posibles errores. En un idioma escrito, por ejemplo, no puede multiplicar una cadena de texto por otra; el lenguaje le da un error de sintaxis, lo que le obliga a corregir el error. En un lenguaje sin tipo, puede asignar texto por error a variables destinadas a números, lo que hace que el programa en ejecución se bloquee.