"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Une petite remarque, tu parles d'apprendre le Python et le Perl. Je ne vois pas trop l'intérêt d'apprendre ces deux langages à la fois, vu qu'ils ont exactement les mêmes buts, les mêmes fonctionnalités...
Je te conseille de faire un choix entre les deux langages, au moins pour le début. Moi, je suis fan de Perl, mais Python est excellent aussi, à toi de voir
"En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
Application :
ainsi qu'à regarder la avant de poser une question.
La rubrique Perl recrute, contactez-moi.
Perl gère exclusivement des chaines de caractères et le workflow alors que python est plus polyvalent à la base... et je viens de voir qu'il intègre la programmation fonctionnelle que je ne connaissais pas.
Je ne suis pas d'accord, Larry Wall a tout de même le mérite d'avoir pondu et remporté l'award du code source le plus illisible, ce qui n'est pas une mauvaise dans un environnement ou la propriété intellectuelle à encore un peu de sens.
... ça ne me tente pas trop, tous ses languages sont beaucoup trop propriétaires. Seul le D me parraît être la meilleure initiative pour remonter à la source, revoir les bases et permettre de faire n'importe quoi en explosant le benchmark.
Mais python me parrait pas mal mis à part son "only one way".
Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...
L'auteur de perl.
Au fait, la seule maniere de lui donner l'award est d'ignorer teco.
Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.
Juste l'auteur de Perl, de patch (tu sais ce petit programme que personne n'utilise), etc... Je te remercierais de te renseigner avant de dire des c*******.
Il a effectivement gagné l'award du IOCCC, néanmoins il s'agit d'un concours, d'un jeu, pas de la façon dont il code dans la vraie vie. Il a aussi gagné l'award de la FSF soit dit en passant...
Qu'est-ce que c'est que cette histoire ? Perl gère les string, les nombres, les tableaux, les tableaux associatifs (aussi appelés dictionnaires dans certains langages), les objets, ... Python n'est nullement plus polyvalent, c'est d'ailleurs à dessin qu'il est restreint : le slogan de Perl est "Il y a plus d'une façon de le faire", là où Guido a toujours été clair sur le fait qu'il veut une et une seule façon de faire chaque chose. Perl est au moins aussi puissant que Python côté programmation fonctionnelle, en fait il l'est même plus (et ça risque d'être encore plus le cas à l'avenir puisque Guido veut restreindre les possibilités de fonctionnel en Python pour suivre sa philosophie).Perl gère exclusivement des chaines de caractères et le workflow alors que python est plus polyvalent à la base... et je viens de voir qu'il intègre la programmation fonctionnelle que je ne connaissais pas.
--
Jedaï
Tu as le droit de lire tout mon message.
L'IOCCC est un concours, d'accord, c'est sûr que Larry Wall n'écrit pas ceci tous les jours :
Gagnant de la catégorie "Programme obfusqué le plus utile" en 1987...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #define iv 4 #define v ;(void #define XI(xi)int xi[iv*'V']; #define L(c,l,i)c(){d(l);m(i);} #include <stdio.h> int*cc,c,i,ix='\t',exit(),X='\n'*'\d';XI(VI)XI(xi)extern(*vi[])(),(* signal())();char*V,cm,D['x'],M='\n',I,*gets();L(MV,V,(c+='d',ix))m(x){v) signal(X/'I',vi[x]);}d(x)char*x;{v)write(i,x,i);}L(MC,V,M+I)xv(){c>=i?m( c/M/M+M):(d(&M),m(cm));}L(mi,V+cm,M)L(md,V,M)MM(){c=c*M%X;V-=cm;m(ix);} LXX(){gets(D)||(vi[iv])();c=atoi(D);while(c>=X){c-=X;d("m");}V="ivxlcdm" +iv;m(ix);}LV(){c-=c;while((i=cc[*D=getchar()])>-I)i?(c?(c<i&&l(-c-c, "%d"),l(i,"+%d")):l(i,"(%d")):(c&&l(M,")"),l(*D,"%c")),c=i;c&&l(X,")"),l (-i,"%c");m(iv-!(i&I));}L(ml,V,'\f')li(){m(cm+!isatty(i=I));}ii(){m(c=cm = ++I)v)pipe(VI);cc=xi+cm++;for(V="jWYmDEnX";*V;V++)xi[*V^' ']=c,xi[*V++] =c,c*=M,xi[*V^' ']=xi[*V]=c>>I;cc[-I]-=ix v)close(*VI);cc[M]-=M;}main(){ (*vi)();for(;v)write(VI[I],V,M));}l(xl,lx)char*lx;{v)printf(lx,xl)v) fflush(stdout);}L(xx,V+I,(c-=X/cm,ix))int(*vi[])()={ii,li,LXX,LV,exit,l, d,l,d,xv,MM,md,MC,ml,MV,xx,xx,xx,xx,MV,mi};
Remarquez les objectifs de l'IOCCC :
--GOALS OF THE CONTEST:
* To write the most Obscure/Obfuscated C program under the rules below.
* To show what should NOT be done in C programs.
* To provide a safe forum for poor C code. :-)
Jedaï
Bon et bien reste le D alors
Mais pourquoi une boîte comme Industrial Light and Magic l'aurait préféré à Perl s'il est moins puissant, tout simplement parce que produire est plus facile avec python ? J'ai peine à le croire...
Ce qui me semble paradoxal au vu des derniers avis, c'est que python puisse se tailler la part du lion tout en annonçant son impuissance. C'est pas logique.
Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...
Toi t'as un problème d'oreille... Je n'ai jamais dit que Python était moins puissant, j'ai dit que sa philosophie était d'avoir une seule façon de faire chaque chose, complètement contraire à celle de Perl. Certains préfèrent, et dans un contexte d'entreprise c'est souvent mieux si on a pas un certain nombre de "très bons" en Perl, question de maintenance.
Tu as l'air de confondre "puissance" d'un langage avec "exhaustivité du support de fonctionnalités"... D m'a l'air d'être un fourre-tout géant (pire que Perl6 !!), je ne suis pas complètement convaincu que ça en fasse le langage du futur, tout dépend de la façon dont toutes ces possibilités intéragissent.
--
Jedaï
Je n'ai pas conclu à son impuissance sur base de sa devise ou de ton post
... mais en partant du postulat de "celui qui peut le plus d'emblée peut le moins".
Si ses fonctionnalités sont en voies de restrictions, j'imagine que ça devrait nuire à terme à l'étendue de ses possibilités d'entrée de gamme. Ce qui obligera a s'en tenir rigoureusement à un cahier des charges pour satisfaire à ces manquements... d'ou son impuissance au final. C'est un language qui va péricliter en librairies autour d'un noyau insuffisant. C'est mon point de vue mais je suis loin de maitriser et au vu des sources, python ne m'a pas l'air différents des autres mis à part quelques élégances.
Concernant le D, j'espère que ce ne sera pas le cas.
Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...
zulad: ce que tu dois comprendre à propos de Perl vs. Python c'est que les deux langages sont puissants, plus en fait que la majorité des langages populaires tels que VB ou Java.
Par contre, là où Python prône une seule façon évidente de résoudre un problème, Perl prône le TIMTOWTDI. Ça veut pas dire que Python est moins puissant, ça veut dire que philosophiquement, les gens qui utilisent Python sont plus susceptibles d'utiliser la même technique pour résoudre un problème que les gens qui utilisent Perl.
Pourquoi Python a été choisi par ILM et Google et d'autres plutôt que Perl? Il faudrait leur demander. Personnellement, je pense que même si on peut écrire du très beau code Perl (surtout en suivant les conseils de Damian Conway), beaucoup de programmeurs sont paresseux et vont écrire du code comme des vaches en Perl; Python est plus strict au niveau de la syntaxe. Une autre raison, plus simple et plus probable encore, les gens qui travaillent chez ces compagnies connaissent mieux Python que Perl, tout simplement.
merci pour vos avis à tous.
Pour ceux que ça interesse voici un ranking des différents benchmarks. L'indétrônable reste le C, et JAVA est respectable...
http://shootout.alioth.debian.org/gp...t=all&lang=all
Aucun de nous n'est seul, Même l'air que nous expirons est inspirés par d'autres...
Le C est peut être plus rapide que les autres langages, mais certaines tâches qui sont simple dans d'autres langages sont très compliquées à réaliser en C en comparaison.
Par exemple, lire une ligne au complet en Python se fait simplement avec la fonction raw_input(). En C, consultez la section das la FAQ. Moins simple, hein?
Et comme ça, on revient à notre discussion originale de choisir le bon langage pour la tâche: si la vitesse de développement est le facteur le plus important, le Python (ou Perl, ou Lisp, etc.) l'emporte, si la vitesse et la mémoire doivent être optimisé, C est l'outil à utiliser.
Pourquoi Python plutôt que Perl pour une majorité de boites ? Pour tout ce qui a était dit, et surtout parce que Perl souffre d'une très mauvaise réputation, ou d'une réputation très limitative selon les cas.
Langages uniquement serveur pour beaucoup, langage uniquement pour le traitement des strings pour d'autres, très peu connaissent les véritables possibilités de Perl.
Perl a était créé pour une raison : faire un langage intermédiaire entre le shell (rôle qu'on lui attribue souvent, une espèce de shell amélioré) et le C (ce que beaucoup de personnes ignorent).
Alors, encore une fois, oui, Perl gère les processus, les threads, les sockets, le paradigme fonctionnel (fonctions anonymes, fontion map...), le paradigme objet (classes, héritage multiple, surcharge d'opérateur...) et bien d'autres choses encore. C'est aussi un formidable outil d'automatisation de tache (robots web, admin système, analyse de log...) et un langage très utilisé pour les scripts CGI.
Et je précise aussi que je trouve que Python est un excellent langage, qui a été conçu à peu près dans la même optique que Perl et qui est très performant dans cette vision.
"En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
Application :
ainsi qu'à regarder la avant de poser une question.
La rubrique Perl recrute, contactez-moi.
En quoi serait-ce plus rapide qu'en C ???
Je crois que tu confonds.. Et dans ce débat (comme dans d'autres) vous êtes nombreux à tirer des conclusions de ce que VOUS vous avez appris...
La vitesse de développement est plus rapide avec un langage que tu as appris. POINT FINAL. Si tu as appris le C, ce sera plus rapide en C. Si tu a appris l'assembleur, ce pourrait être plus rapide en assembleur, si tu as appris Java, ce sera plus rapide en Java,.. etc etc..
Mais donc cela n'a rien à voir avec quel est le meilleur langage pour faire quoi...
"Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".
Consultant indépendant.
Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
C, Fortran, XWindow/Motif, Java
Je ne réponds pas aux MP techniques
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager