• [^] # Re: Ca dénonce grave

    Posté par . En réponse au journal Java 7 est dispo !. Évalué à 3.

    Un peu plus sérieusement, les 3 qui m'interessent au quotidien, c'est :
    - les lambdas
    - Safe navigation operator
    - les références non nulles

    Les lambdas, c'est quand meme un gros gain d'expressivité. C# le fait.

    Le safe navigation operator, c'est l'application du DRY. Et en plus ça indique que le développeur a explictement pensé au cas où les données retournées sont nulles. C# ne l'a pas. Groovy l'a.

    Enfin les références non nulles, c'est plus un avantage pour la fiabilité du programme. C# ne le fait pas, mais d'autres langages ont des sécurités plus ou moins équivalentes ( http://confluence.jetbrains.net/display/Kotlin/Null-safety ).

    Si je prends ton lien et que je fais une comparaison Java 7/"SuperJava", j'obtiens ça :

    Avant :

    Collections.sort(people, new Comparator<Person>() {
     public int compare(Person x, Person y) {
     String rueX = "" ;
     String rueY = "" ;
     if (x!=null && x.adress!=null && x.adress.street != null)
     rueX = x.adress.street.name ;
     if (y!=null && y.adress!=null && y.adress.street != null)
     rueY = y.adress.street.name ;
     return rueX.compareTo(rueY);
     }
    });
    

    Après :

    Collections.sortBy(people, #{ p -> p.?adress.?street.?name });
    

    C'est caricatural, mais c'est quand meme beau de rever.