Salut Choisir un langage de programmation en se basant sur des criteres subjectifs (C'est beau, ce n'est pas beaux, c'est court , c'est long ), c'est bien , mais l’idéal c'est de se focaliser sur le problème que nous voulons résoudre dans un premier temps et ensuite sur les criteres esthétiques
Si je dois écrire un programme informatique qui doit par exemple attendre qu’un programme A dépose un fichier B dans un dossier D, pour le trier et le renommer en E et dire au programme A j'ai fini mon travail, il est dans le dossier F, tu peux continuer ton travail. L'aspect tri devient une infime partie d'un problématique plus globale. Dans la réalité les choses sont plus complexes et gérer l'interaction est un défit, le meilleur langage selon moi c'est celui qui fixe un problème réel :) -- Le 19 novembre 2012 11:14, Antoine Delvaux <[email protected]> a écrit : > Salut, > > Sans vouloir relancer la discussion sur la lisibilité d'une commande ou > d'un bout de code [1], dans les 'oneliners' et outils cli, il y a aussi awk > qui est très efficace : > > > awk '!a[$0]++' < mon_fichier.txt > nouveau_fichier.txt > Mieux que sort -u :), merci -- > "sort -u" est effectivement pas mal aussi, mais a le désavantage de trier > le fichier, alors que les solutions perl, python et awk ne trient rien du > tout. > > Il est peut-être aussi utile d'expliquer cette expression awk (qui est > quasiment identique à l'expression perl du début de la discussion), comme > ça on appréhende la puissance de cet outil petit à petit. L'explication > est la suivante : > > - $0 est la ligne courante, cette expression va servir d'index au tableau > (c'est le $_ en perl) > - a[] est un tableau qui va contenir le compte du nombre de lignes > identiques (c'est le $lignes en perl) > - si l'expression donnée à awk est vraie, alors la ligne courante ($0) est > copiée en sortie (ce qui sera le cas pour la première occurrence d'une > ligne) > - si l'expression donnée à awk est fausse, alors rien n'est ajouté à la > sortie (ce qui sera le cas pour toutes les répétitions de ligne) > > La différence entre perl et awk, est qu'awk est un outil fait pour lire > les fichiers, ligne par ligne, alors que perl est un langage de > programmation (qui peut donc aussi lire des fichiers ligne par ligne). > C'est pourquoi il est nécessaire de lancer 'perl -n' qui, en fait, englobe > l'expression donnée dans une boucle 'while' sur la lecture du fichier. > > -- > Alors que les constructions de tableau dans les exemples python sont > moins intuitives. > -1 > >>> type(open('a.txt', "r").readlines()) > <type 'list'> > Je n'ai pas besoin de construire quoi que ce soit ici, certainement pas un tableau :) -- > Bonne journée, > > Antoine. > > > [1] La lisibilité d'un code peut fortement dépendre à quel langage et > syntaxe on est habitué. Ne mangeant pas du serpent tous les jours, il m'a > fallu plus de temps pour comprendre l'exemple en python que celui en > perl... Et je parle ici de lisibilité ... la beauté ? Encore plus > subjectif.... > --Ad
-- Ce message a été envoyé à la liste [email protected] Gestion de votre abonnement : http://dakarlug.org/liste Archives : http://news.gmane.org/gmane.org.user-groups.linux.dakarlug Le site du DakarLUG : http://dakarlug.org
