• # Encore le type Null...

    Posté par (site web personnel) . En réponse à la dépêche Dart va‐t‐il remplacer JavaScript comme langage dans les navigateurs ?. Évalué à 9.

    C'est consternant qu'en 2011 on conçoive encore des langage intégrant le type Null...
    Antony Hoare, célèbre scientifique qui l'a conçu en 1965, l'a appellé "My Billion-Dollar mistake" estimant à plusieurs milliards de dollars, sans doute quelques dizaines, le coût provoqué durant 40 ans par le Null Reference.

    Un bon langage, est un langage sans type Null. Pour avoir codé sans, c'est vraiment génial.

    En OCaML (de même qu'en Haskell), où il n'existe pas, on doit gérer ses propriétés sans type Null comme ceci :

    class toto = object
     val mutable unePropriete = (None : string option)
     method getProp = match unePropriete with
     | Some(str) -> str
    end
    
    

    Ici, on ne gère pas le "Null" ici appelé None.
    Le compilateur le détecte impitoyablement :

    Warning 8: this pattern-matching is not exhaustive.
    Here is an example of a value that is not matched:
    None
    class toto :
     object val mutable unePropriete : string option method getProp : string end
    
    

    Dans le fond, pourquoi garde t-on le type Null ?
    A mon sens pour deux raisons :
    - Le poids des habitudes
    - Et surtout la fainéantise : c'est bien plus difficile, même en intégrant le option de Ocaml, qui simplifie beaucoup de choses, de concevoir son code en ayant à l'esprit que TOUTE ses valeur doivent être assignés avec quelques chose de propre.

    Ainsi on se traine ce boulet, qui continue à faire des dégâts !

    « Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker