Mouarf, tellement portable, que t'as bien précisé que t'avais pas wget sur ta machine, imagine que sur ma mache j'ai pas... perl. Super portable dis donc.
A ce petit jeu, cherche pas la ptite bete avec Perl, il a des modules tres bien qui permettent de s'affranchir du wget ;0)
Et mon code reste largement plus portable que le tien, qui ne fonctionnera jamais ici avec les solaris, les linux, les ppc, les anciennes versions de windows... les machines type embarquees.
Pour tout ca, perl est installable et installé. Je peux propager mon pti script, y marchera tres bien chez tout le monde.
Il se trouve que j'ai pas wget, et je l'ai précisé parce que c'etait suggere plus haut d'utiliser wget et du sed/awk/grep pour dire que c'etait vachement plus compliqué, verbeux etc.
c'est pas un problème technique mais un problème politique.
C'est aussi un probleme de cout. Je suis une entreprise, je ne peux pas engager X personnes sur Y mois pour pondre un portage qui servira a faire ce qui est tout a fait faisable sans. Le cout n'est pas le meme. Ensuite, mono et .NET sont sous linux. Qu'en est-il des microsystemes et des OS plus exotiques (pour toi) comme solaris (qu'on peut trouver ici a la pelle). Il faudra en faire l'integration. Encore un surcout.
Ensuite, avant de faire le portage, il faut verifier si y'a pas de brevets sur certaines techniques utilisees la dessous, sinon c'est pas bon. Il faut se palucher les specs, et reinventer la roue. Perl a ete porté un jour, mais il etait libre. Beaucoup plus facile a porter !
-- Maintenant j'vais m'amuser a repondre aux commentaires en bas pour pas faire de doublons :D
MS a surtout eu l'idée intelligente de concevoir son framework pour être portable : c'est une couche d'abstraction vis-à-vis du matos et de l'OS.
Dire ca, et parler de Samba comme techno mise en avant, moi ca me fait tout bizarre. Samba, c'est des gars qui se sont cassé le cul a decortiquer un truc dont ils ne pouvaient pas avoir les specs. Ils ont fait du retro ing', ils ont essayé de decortiquer les traces d'E/S, pour pondre leur projet. Alors "concevoir pour etre portable"...
Un one-liner perl. Tu as donc meilleur temps de rajouter le shebang et de rendre ton script perl executable.
Et il est où le shell là dedans ?
C'est en substance ce que disait briaeros : y'en a pas. Mais tu sais, awk n'EST PAS le shell. sed non plus. Ce sont des utilitaires qui gravitent autour.
Moi ce que j'attend d'un shell, c'est d'avoir un endroit ou je peux taper des trucs dedans, et que ca me reponde un resultat suivant les instructions données. Ces instructions sont en sh. si j'invoque sed, c'est pas une fonction sh que j'utilise, c'est une execution qui est faite en dehors.
Ici, powerShell melange les deux notions. C'est un concept que je trouve a la fois interessant (si, je suis pas tout noir ou tout blanc hein ^_^), mais dangereux (et si je veux un shell minimaliste ?)
J'adore aussi le contexte qui fait que tu es obligé de te replonger dans le perldoc pour capter ce que l'autre a voulu écrire
Heuuuu... replonger dans perldoc pour lire mon one-line ? Hmmm... Pourtant, il est lisible (entre autres grace aux $@% que tu decries tant). XML::Simple, on se doute que ca va travailler sur du XML, et Simple, que ca va etre bateau. XMLin : baaaah, je lui donne un xml en parametre, donc in. Je m'attend a ce qu'il mache quelque chose. ${XMLin(...)}{'item'} -> cool, c'est une table de hashage ! Alors toute la structure est organisee comme ca => Facile, tu as la dtd, tu la regardes, paf paf, t'as ta table de hashage. Aucune difficulté.
Quant à la portabilité: pour avoir développé des scripts portables en perl je peux te dire que c'est un vain mot.
J'ai un prog de 11000lignes dans les mains. Il tourne sous solaris/linux sans probleme. 1h plus tard, je l'ai fait tourner sous windows (petits soucis avec les C:\ ). Ce n'est pas un vain mot.
Le moment que je préfère aussi c'est lorsque mon xemacs sous Windows n'arrive plus à coloriser mon script parce qu'il n'arrive plus à parser ce beau langage à la syntaxe si limpide.
Deja, use emacs :D Ensuite, ca c'est lié a ton editeur de texte, pas au langage en lui meme. Je peux te garantir que le powershell, dans ton xemacs, la, il va pas te le colorier joli joli :D
(et oui, le perl peut etre beau et limpide, comme tout autre langage)
Bref la courbe d'apprentissage est tellement grande que je comprend que les gourous de ce langage aient tant de mal à le quitter après tant d'investissement. Quand tu dois produire un truc rapidement sans expérience préalable Perl n'est assurément pas la bonne solution.
Tu sais quoi ? Passer de php a perl et inversement, ca ne devrait pas etre un investissement si enorme. Perl, je l'ai appris entre les cours, en 2 semaines. Super gros l'investissement initial. Apres, c'est vrai, j'en apprend tous les jours. C'est aussi ca qui fait que j'aime bien ce langage.
Et donc pour produire un truc rapidement sans experience prealable, quel langage preconises-tu ? php ? python ? ruby ?
Des trois, je dirais que le plus simple est peut etre ruby, mais il faut s'y faire, au debut c'est parfois un peu deroutant.
Ben moi quand je relis le code donné par Timaniac, je vois bien un pipe alors que je n'en vois pas dans ton exemple.
Y'a pas forcement besoin de pipe dans mon one-line :)
Et si tu en veux un, il est en tete de script avec le wget :)
Je n'arrive pas à lancer perl en interactif
perl -de 1
Mais j'avoue que c'est du debuggeur, c'est clairement pas aussi bon que l'invite python (exemple con : perl -de n'autorise pas les blocs en plusieurs lignes, et c'est lourd)
En résumé, un shell c'est un programme qui permet d'intéragir simplement avec l'utilisateur en ligne de commande avec un retour immédiat et qui en plus permet de réaliser des scripts.
Powershell me parait répondre à cette description.
Tout a fait d'accord avec toi. Et c'est pour ca que j'ai repondu a son powershell par du perl.
Simplement, il ne faut pas croire que powershell est la reponse a tout, c'est ce que j'essaye de dire depuis le debut d'une certaine maniere.
J'ai pas le temps de chercher car je dois partir au boulot, mais c'est à peu prés sur que des mongueurs perl ont en leur stock des unilines de ce type. Je vois pas trop l'exploit, on fait des trucs bien plus impressionnant que ça en uniline perl ...
Ca n'a strictement rien d'impressionnant, je te rassure. Voir les A++ sur paris.mongueur pour voir de jolis oneline :)
[^] # Re: Je me marre ...
Posté par iznogoud . En réponse au journal PowerShell: tapez rm -rf c:\Windows ! ;). Évalué à 5.
A ce petit jeu, cherche pas la ptite bete avec Perl, il a des modules tres bien qui permettent de s'affranchir du wget ;0)
Et mon code reste largement plus portable que le tien, qui ne fonctionnera jamais ici avec les solaris, les linux, les ppc, les anciennes versions de windows... les machines type embarquees.
Pour tout ca, perl est installable et installé. Je peux propager mon pti script, y marchera tres bien chez tout le monde.
Il se trouve que j'ai pas wget, et je l'ai précisé parce que c'etait suggere plus haut d'utiliser wget et du sed/awk/grep pour dire que c'etait vachement plus compliqué, verbeux etc.
c'est pas un problème technique mais un problème politique.
C'est aussi un probleme de cout. Je suis une entreprise, je ne peux pas engager X personnes sur Y mois pour pondre un portage qui servira a faire ce qui est tout a fait faisable sans. Le cout n'est pas le meme. Ensuite, mono et .NET sont sous linux. Qu'en est-il des microsystemes et des OS plus exotiques (pour toi) comme solaris (qu'on peut trouver ici a la pelle). Il faudra en faire l'integration. Encore un surcout.
Ensuite, avant de faire le portage, il faut verifier si y'a pas de brevets sur certaines techniques utilisees la dessous, sinon c'est pas bon. Il faut se palucher les specs, et reinventer la roue. Perl a ete porté un jour, mais il etait libre. Beaucoup plus facile a porter !
-- Maintenant j'vais m'amuser a repondre aux commentaires en bas pour pas faire de doublons :D
MS a surtout eu l'idée intelligente de concevoir son framework pour être portable : c'est une couche d'abstraction vis-à-vis du matos et de l'OS.
Dire ca, et parler de Samba comme techno mise en avant, moi ca me fait tout bizarre. Samba, c'est des gars qui se sont cassé le cul a decortiquer un truc dont ils ne pouvaient pas avoir les specs. Ils ont fait du retro ing', ils ont essayé de decortiquer les traces d'E/S, pour pondre leur projet. Alors "concevoir pour etre portable"...
Un one-liner perl. Tu as donc meilleur temps de rajouter le shebang et de rendre ton script perl executable.
Et il est où le shell là dedans ?
C'est en substance ce que disait briaeros : y'en a pas. Mais tu sais, awk n'EST PAS le shell. sed non plus. Ce sont des utilitaires qui gravitent autour.
Moi ce que j'attend d'un shell, c'est d'avoir un endroit ou je peux taper des trucs dedans, et que ca me reponde un resultat suivant les instructions données. Ces instructions sont en sh. si j'invoque sed, c'est pas une fonction sh que j'utilise, c'est une execution qui est faite en dehors.
Ici, powerShell melange les deux notions. C'est un concept que je trouve a la fois interessant (si, je suis pas tout noir ou tout blanc hein ^_^), mais dangereux (et si je veux un shell minimaliste ?)
J'adore aussi le contexte qui fait que tu es obligé de te replonger dans le perldoc pour capter ce que l'autre a voulu écrire
Heuuuu... replonger dans perldoc pour lire mon one-line ? Hmmm... Pourtant, il est lisible (entre autres grace aux $@% que tu decries tant). XML::Simple, on se doute que ca va travailler sur du XML, et Simple, que ca va etre bateau. XMLin : baaaah, je lui donne un xml en parametre, donc in. Je m'attend a ce qu'il mache quelque chose. ${XMLin(...)}{'item'} -> cool, c'est une table de hashage ! Alors toute la structure est organisee comme ca => Facile, tu as la dtd, tu la regardes, paf paf, t'as ta table de hashage. Aucune difficulté.
Quant à la portabilité: pour avoir développé des scripts portables en perl je peux te dire que c'est un vain mot.
J'ai un prog de 11000lignes dans les mains. Il tourne sous solaris/linux sans probleme. 1h plus tard, je l'ai fait tourner sous windows (petits soucis avec les C:\ ). Ce n'est pas un vain mot.
Le moment que je préfère aussi c'est lorsque mon xemacs sous Windows n'arrive plus à coloriser mon script parce qu'il n'arrive plus à parser ce beau langage à la syntaxe si limpide.
Deja, use emacs :D Ensuite, ca c'est lié a ton editeur de texte, pas au langage en lui meme. Je peux te garantir que le powershell, dans ton xemacs, la, il va pas te le colorier joli joli :D
(et oui, le perl peut etre beau et limpide, comme tout autre langage)
Bref la courbe d'apprentissage est tellement grande que je comprend que les gourous de ce langage aient tant de mal à le quitter après tant d'investissement. Quand tu dois produire un truc rapidement sans expérience préalable Perl n'est assurément pas la bonne solution.
Tu sais quoi ? Passer de php a perl et inversement, ca ne devrait pas etre un investissement si enorme. Perl, je l'ai appris entre les cours, en 2 semaines. Super gros l'investissement initial. Apres, c'est vrai, j'en apprend tous les jours. C'est aussi ca qui fait que j'aime bien ce langage.
Et donc pour produire un truc rapidement sans experience prealable, quel langage preconises-tu ? php ? python ? ruby ?
Des trois, je dirais que le plus simple est peut etre ruby, mais il faut s'y faire, au debut c'est parfois un peu deroutant.
Ben moi quand je relis le code donné par Timaniac, je vois bien un pipe alors que je n'en vois pas dans ton exemple.
Y'a pas forcement besoin de pipe dans mon one-line :)
Et si tu en veux un, il est en tete de script avec le wget :)
Je n'arrive pas à lancer perl en interactif
perl -de 1
Mais j'avoue que c'est du debuggeur, c'est clairement pas aussi bon que l'invite python (exemple con : perl -de n'autorise pas les blocs en plusieurs lignes, et c'est lourd)
En résumé, un shell c'est un programme qui permet d'intéragir simplement avec l'utilisateur en ligne de commande avec un retour immédiat et qui en plus permet de réaliser des scripts.
Powershell me parait répondre à cette description.
Tout a fait d'accord avec toi. Et c'est pour ca que j'ai repondu a son powershell par du perl.
Simplement, il ne faut pas croire que powershell est la reponse a tout, c'est ce que j'essaye de dire depuis le debut d'une certaine maniere.
J'ai pas le temps de chercher car je dois partir au boulot, mais c'est à peu prés sur que des mongueurs perl ont en leur stock des unilines de ce type. Je vois pas trop l'exploit, on fait des trucs bien plus impressionnant que ça en uniline perl ...
Ca n'a strictement rien d'impressionnant, je te rassure. Voir les A++ sur paris.mongueur pour voir de jolis oneline :)