miércoles, 3 de octubre de 2012

Que pasaría si no existiría el Null??


Es una pregunta tonta, ya que el null nació como una forma de representar la nada misma. Es decir el null es necesario pero, no creen que esta sobre valorado? ¡esta en todos lados! En javacript por ejemplo se tiene que preguntar si esta definida la variable; porque una variable puede no estar definida; pero además la variable puede ser nula por lo tanto tengo que preguntar si es distinta de null. Para citar otro ejemplo  en java la lucha diaria contra NullPointerException...

No es un problema de la tecnología sino que no nos tomamos el tiempo de definir que puede ser nulo y que no, si existen valores por defecto, etc. Pero la tecnología nos puede ayudar y en este caso me parece correcto el camino que tomo C# o .net; en el cual se puede definir que una variable no puede ser nula (non-nullable)  o se puede definir un valor por defecto cuando no se asigna nada; cosa que se puede hacer en las bases de datos hace años.

Es interesante como en Eiffel se puede definir un contrato en el cual queda claro que por ejemplo para que esta función funcione es necesario que el parámetro no sea nulo y que sea mayor a 0. Dandole seguridad y tranquilidad a los desarrolladores. Me debo un buen post sobre Eiffel.

En conclusión cuando tenemos más tiempo hacemos las cosas mejor; por eso es importante tomarse el tiempo de definir que campos pueden ser nulos y cuales pueden tener datos por defecto. Y esta bueno que la tecnología nos ayude a definir estas restricciones y mejor sería que nos obligue a definirlo.

Dejo links:
http://www.infoq.com/news/2012/10/Null-CSharp
http://twistedoakstudios.com/blog/?p=330

1 comentario:

  1. Eiffel, desde hace un buen tiempo, integró un mecanismo en el lenguaje a través del cual asegura en tiempo de compilación que no se producirán errores de dereferenciación nula en tiempo de ejecución. En el siguiente link hay un documento que explica el mecanismo. http://docs.eiffel.com/book/papers/void-safety-how-eiffel-removes-null-pointer-dereferencing. Espero el post sobre Eiffel ;-). FFF

    ResponderBorrar