Java 8 Optional. ¿De verdad hacía falta?
Java 8 Optional
¿De verdad hacía falta una API para tratar nulos?
Me surgen las siguientes dudas.- ¿Desde cuando tratar con valores nulos dentro de un programa se convirtió en un problema?
- ¿Es el temido NullPointerException realmente un problema del lenguage o del programa?
- ¿Esta el Optional realmente simplificando la lógica del programa?
- ¿Esta el Optional realmente ayudando a diseñar un programa más robusto?
- ¿Esta el Optional realmente resolviendo el problema original?
Hasta donde yo he podido llegar, no veo ninguna aportación ni a la programación ni al lenguaje el uso del Optional de Java 8. De hecho, lo que si he podido llegar a ver ha sido justamente lo contrario. Donde antes veía simples if ahora veo sobre-ingeniería, e incluyo utilización de APIs adicionales para tratar con los tales Optional. Después de ver esto, esto es tal y como yo lo veo:
- La programación es un arte y por lo tanto el tratamiento de nulos también lo es.
- El Optional es sencillamente más verbose que escribir directamente una sentencia if
- Decorar o enmascarar un nulo no simplifica la lógica del programa
- La robusteza de un programa no se gana añadiendo más capas
- En Java ya existen mecanismos como el try-catch para tratar errores inesperados
- El uso de lambdas no ahorra código y no justifica la utilización de tal API
Para terminar, creo que no habrá ningún framework que vaya a solucionar lo que para mi son errores de programación, ni hacer un programa más robusto por arte de magia; con Optional o sin Optional, seguirán habiendo NullPointerException con total seguridad; de hecho la susodicha API los lanza. Sin embargo, si google y Java han diseñado tales APIs para tratar nulos, la pregunta que realmente que me queda es:
- ¿Qué me estoy perdiendo y donde están los ejemplos reales que justifiquen el diseño y la utilización de semejante API?
Great Post,Very well written post
ReplyDeleteData Science Course
Very nice post,I have seen Java with many packages which helpful in developing application <a href="https://www.hireessaywriter.com/service-for-mba-student-assignment>Mba Assignment Help</a>. But i don't know more about sun.*.I just came to know from your site.
ReplyDeletehttps://zacktutorials.blogspot.com/2019/05/android-pdf-write-read-using-android-9.html?showComment=1644408780128#c5964219934877998342
ReplyDelete