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?

Comments

  1. 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.

    ReplyDelete
  2. https://zacktutorials.blogspot.com/2019/05/android-pdf-write-read-using-android-9.html?showComment=1644408780128#c5964219934877998342

    ReplyDelete
  3. zeed slot168 ของพวกเรา วันนี้สามารถ ช่วยเพิ่มเดิมพันที่เหมาะสมที่สุด ให้กับนักร้องเพลงทุกคน pg slot สำหรับเพื่อการเลือกเข้าใช้บริการตรงนี้ กันแน่ๆ ค้ำประกันได้เลยว่าการสร้างรายได้

    ReplyDelete
  4. It's essential to consider that Optional can offer clearer, more expressive code in certain contexts, promoting better error handling and reducing null-related bugs. Incorporating it sensibly can enhance code readability and robustness. Embracing best practices and understanding when to utilize Optional effectively can mitigate potential downsides. Overall, while criticism is valid, dismissing Optional entirely may overlook its potential benefits. It's crucial to strike a balance and utilize it judiciously to improve code quality and maintainability. Do my assignment for me cheap is a frequent query amidst such debates, highlighting the quest for cost-effective solutions in learning and development.

    ReplyDelete

Post a Comment

Popular posts from this blog

Google Drive FTP Adapter

Java 9 Process API

How to build a replicated ehcache through firewall and not to die trying