• [^] # Re: Alternative au perl

    Posté par (Mastodon) . En réponse au journal Script LCL. Évalué à 2.

    C'est vrai, le switch case en perl n'existe pas en tant que tel.

    "use Switch", non ? :)

    Je faisais plutot référence à la possibilité de récupérer la valeur de n'importe quelle expression, par exemple (salement):
    toto = if (a == 2) then 3
    elsif (a== 5) then 6
    else 42
    end

    Moi, j'ai jamais aime les iterateurs, ca m'embrouille l'esprit, je n'arrive pas a "visualiser" ce qui se passe derriere. J'ai l'impression qu'on veut me masquer l'aspect "boucle" de la chose. Alors qu'un bon vieux foreach, ca te prend 2 lignes de plus que ton iterateur, je ne vois pas le probleme.

    Sauf qu'un itérateur peut faire autre chose qu'itérer sur les éléments d'une collection dans l'ordre. Tu as each, bien sûr, mais tu peux avoir reverse_each qui itère à l'envers. Pour faire ça avec un foreach, tu dois d'abord inverser ta collection. Tu as aussi str.each(délimiteurs) qui fait quelque chose comme foreach my $s (split(délimiteurs, $str)).

    Et si tu fais une matrice, tu peux faire des itérateurs each_row, each_cell, etc.

    ton Net::HTTP peut se retrouver dissemine dans tout ton code

    Oui, mais on peut coder salement dans n'importe quel langage :) Ceci dit, il suffit de faire un grep pour retrouver toutes les définitions d'une classe.

    @articles = sort {$b cmp $a} @files;


    Et en ruby, articles = files.sort { |a,b| b <=> a }, comme quoi ça se ressemble. Mais la magie de la redéfinition des opérateurs, c'est que tu peux définir une bonne fois pour toutes comment "<=>" compare tes objets. C'est pratique quand tu as des données structurées, et une fois que tu as redéfini <=>, tu peux faire if a < b ... et ça marche.

    justifier de la pertinence d'un langage par une application en particulier

    Je ne sais pas si tu as essayé Rails, mais justement, ça roxor des ours grace à Ruby. C'est une bonne démonstration de la flexibilité que permet Ruby, et certaines choses seraient vraiment très difficiles à faire avec un langage plus "rigide". Rails n'est pas vraiment "une application", c'est plutôt un ensemble de code Ruby qui t'aide à construire une application Ruby.

    Pour prendre un exemple qui parlera peut-être aux sysadmins habitués aux scripts d'analyse de logs, il ne doit pas être très difficile en Perl d'obtenir la date de dans dix jours, mais j'ai cherché deux minutes sans trouver de méthode standard qui gère les mois de 28, 29, 30 et 31 jours. En Ruby, on fait Date.today+10, et en Rails on peut aussi écrire 10.days_from_now (je pense). Ce sont des détails, mais des détails qui rendent le développement rapide et agréable.