• [^] # Re: Le titre est trop long

    Posté par (site web personnel) . En réponse au journal Typage statique versus typage dynamique. Évalué à 3. Dernière modification le 09 juillet 2012 à 20:16.

    Tu vois, toi-même tu préfère écrire du java comme si c'était du python ;-)

    Il me dit que ça prenait trop de lignes, je lui montre que non =)
    Il n'a pas dit que cela devait être robuste.
    Auquel cas de toute façon, Java est largement devant Python et Python moins robuste car non typé.

    List<String> read(String name) throws IOException
     try (File file = new File(name)) {
     return FileUtils.readFileToString(file);
     }
    }
    
    
    • Pas de risque d'avoir autre chose qu'un String en paramètre
    • Pas de risque de conserver le fichier ouvert en cas d'erreur lors du readFileToString (autoclose)
    • Garantie que le type de retour est bien une liste de String…
    def read(name):
     '''
     Lit l'intégralité d'un fichier
     @param name : chemin du fichier à lire
     @return lignes du fichier
     '''
     with open(name, 'r') as file
     return file.readline()
    
    
    • Qui a fait un test U pour voir ce que ça fait si je lui passe un Int ou un Canard en paramètre ?
    • Si répondu « moi » à la question précédente, ça fait quoi avec une Voiture ou un Path ou Obiwan ou … ?
    • Comment ça cette fonction peut lever une exception ?
    • Comment ça cette fonction peut lever une exception à 2 endroits ?
    • Ça me retourne quoi ? Un tuple, une liste, un array, un dictionnaire { n° de ligne, contenu } ?

    5 lignes en Java, 8 en Python, au coût de la ligne, je prend Java !!!
    Et en plus, trouve-moi un seul mec qui va m'écrire ce code python du 1er coup…
    Généralement, j'obtient plutôt

    def read(name):
     file = open(name, 'r')
     return file.readline()
    
    

    et il faut carrément une bibliothèque externe pour ça

    Au prix où est Maven, je ne vais pas me géner non plus =)
    Ça m'évitera même d'écrire la moindre ligne de code…
    D'ailleurs, au prix où est la ligne…