Null Safety en Kotlin: Evita Errores por Referencias Nulas

Clase 18 de 38Curso de Kotlin desde Cero

Contenido del curso

Hola mundo Kotlin

Resumen

Cuando trabajas con variables en Kotlin, no solo necesitas entender tipos como enteros, strings o booleanos. Existe un concepto fundamental que puede hacer que tu aplicación funcione correctamente o se cierre de forma inesperada: el null safety. Comprender qué es null, de dónde viene y cómo Kotlin te protege frente a este problema es una habilidad esencial para cualquier persona que programe en este lenguaje.

¿Qué es null y por qué no tiene sentido en el mundo real?

Un booleano, por definición, solo debería tener dos valores posibles: true o false. Sin embargo, en lenguajes como Java, una variable puede contener un tercer estado: null, que representa la ausencia total de valor [0:40]. Esto genera lo que se conoce como el booleano de tres valores, algo que en la vida real simplemente no existe.

Piensa en un pasaporte: lo tienes o no lo tienes. No existe un estado intermedio donde "no hay nada que decir". Lo mismo ocurre con un mouse: funciona o no funciona, pero nunca "no existe" mientras lo estás usando. Sin embargo, en programación esto sí puede pasar cuando una variable apunta a una referencia nula, es decir, a un espacio de memoria donde no se ha asignado ningún valor [1:08].

¿Cuál es la diferencia entre cero y null?

Una analogía muy útil es la del papel de baño [2:02]:

  • Cero es tener el rollo vacío, sin hojas. El objeto existe, pero su cantidad es cero.
  • Null es que ni siquiera haya rollo. No hay nada en absoluto.

Esta distinción es crucial porque muchos errores en software ocurren cuando el programa espera un valor concreto y recibe null en su lugar.

¿Quién creó null y por qué fue un error histórico?

La referencia nula fue creada en 1965 por Tony Hoare [2:20], un científico de la computación reconocido por algoritmos como el quick sort. En una conferencia en 2009, él mismo admitió que fue su "error de los mil millones de dólares". Según sus propias palabras, optó por la solución rápida y fácil al devolver null cuando no había un valor disponible, sin prever las consecuencias que esto tendría durante décadas en la industria del software [2:35].

Este dato pone en perspectiva lo importante que es pensar bien las decisiones de diseño en programación, incluso cuando la presión por entregar resultados es alta.

¿Cómo te protege Kotlin frente a los errores por null?

Kotlin incorpora el null safety como uno de sus valores fundamentales [3:12]. El compilador de Kotlin es capaz de detectar en tiempo de compilación cuándo una variable podría ser null y te obliga a manejar esa posibilidad de forma explícita. Esto significa que puedes declarar si una variable acepta valores nulos o no, lo que reduce drásticamente los errores en tiempo de ejecución.

¿Alguna vez una aplicación en tu teléfono se cerró de repente con el mensaje "la aplicación dejó de responder"? [3:30] En muchos casos, esto ocurre porque el programa esperaba recibir un valor, como un entero, y en su lugar recibió null. Al no estar preparado para ese escenario, se genera una excepción que detiene la ejecución del programa.

Con Kotlin, las herramientas que ofrece el lenguaje permiten:

  • Declarar explícitamente si una variable puede contener null.
  • Recibir advertencias del compilador antes de ejecutar el código.
  • Reducir significativamente los fallos inesperados en las aplicaciones.

Cuando se utiliza de forma correcta, el null safety de Kotlin transforma la manera en que escribes código, haciéndolo más seguro y predecible [3:55].

Si te ha parecido interesante este tema, comparte en los comentarios alguna experiencia que hayas tenido con errores relacionados con null en tus proyectos.

      Null Safety en Kotlin: Evita Errores por Referencias Nulas