Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/12/2006, à 22:54

Henry de Monfreid

python vs perl

Salut à tous!

Apres 20 ans d'informatique je me suis décidé (enfin) à apprendre la programmation.
Apres quelques recherches mon coeur balance entre perl et python avec un petite preference pour python.

Quelle est le meilleur choix pour un semi debutant ?
J'ai de vagues notion de C, de basic et de shell.

Merci de vos conseils.
smile

Dernière modification par pinballyoda (Le 12/12/2006, à 23:01)


« Je te hais plus qu'aucun des dieux qui vivent sur l'Olympe
Car tu ne rêves que discordes, guerres et combats. »
Trouble obsessionnelcompulsif
Le TdCT est revenu (ils reviennent tous)

Hors ligne

#2 Le 12/12/2006, à 23:09

Math

Re : python vs perl

Personellement, je ne connais que Perl (notez la majuscule, tout comme Python)

Mais bon, pour répondre à votre question, le plus simple est d'essayer, et de faire votre propre choix ! C'est une question d'affinité avec le langage.

Maintenant si on demande de comparer les 2, et bien il doit y avoir une foultitude de pages sur ce sujet sur le net. :-)

Hors ligne

#3 Le 12/12/2006, à 23:16

jjh

Re : python vs perl

Personellement je suis un grand adepte de perl (avec un petit p).
Tout dépend ce que l'on veut faire avec un langage de programmation.
Moi j'avais besoin de traiter énormément de messages systémes émis par des machines (traiter du texte) et là avec les expr reg je ne crois pas qu'il y ait mieux que perl.
Je l'utilise aussi en .cgi c'est à dire pour le domaine de l'internet.
C'est un langage très souple très tolérant peut être trop...
Je me suis initié à C après perl et ben c'est la galère.
Autre avantage de perl c'est un script pas de compilation, maintenance facile, nombreux modules.
Je connais aussi un peu php et c'est vrai qu'aujourd'hui une majorité ne jure que par php mais perl c'est pas mal.
Comme php perl c'est utiliser Mysql, bon je m'arrête.

Hors ligne

#4 Le 12/12/2006, à 23:25

Math

Re : python vs perl

jjh a écrit :

Personellement je suis un grand adepte de perl (avec un petit p).

Pour info, je disais avec un grand P pour cette raison :

http://faq.perl.org
1.12: What's the difference between "perl" and "Perl"?

    One bit. Oh, you weren't talking ASCII? :-) Larry now uses "Perl" to
    signify the language proper and "perl" the implementation of it, i.e.
    the current interpreter. Hence Tom's quip that "Nothing but perl can
    parse Perl." You may or may not choose to follow this usage. For
    example, parallelism means "awk and perl" and "Python and Perl" look OK,
    while "awk and Perl" and "Python and perl" do not. But never write
    "PERL", because perl is not an acronym, apocryphal folklore and
    post-facto expansions notwithstanding.

Hors ligne

#5 Le 12/12/2006, à 23:52

Henry de Monfreid

Re : python vs perl

En fait je crois avoir compris (reprenez moi si je me trompe)

Python est un language

python est un interpreteur

Dernière modification par pinballyoda (Le 12/12/2006, à 23:53)


« Je te hais plus qu'aucun des dieux qui vivent sur l'Olympe
Car tu ne rêves que discordes, guerres et combats. »
Trouble obsessionnelcompulsif
Le TdCT est revenu (ils reviennent tous)

Hors ligne

#6 Le 13/12/2006, à 00:06

supergromz

Re : python vs perl

Pour moi, ce qui te sera à la fois le plus utile, le plus facile à apprendre et le plus amusant (c'est relatif...), ce serait plutôt Python.

J'ai avant tout une expérience de 6 années de Perl intensif dans mon travail. J'ai eu ensuite envie de passer à autre chose pour varier les plaisirs et j'ai découvert Python, qui se présentait (d'après la tendance de l'époque, il y a un an et demi) comme un langage beaucoup plus facile d'accès que Perl.

Aujourd'hui, je ne peux plus m'en passer (tant dans mon travail que chez moi), je trouve que le langage a beaucoup de choses pour lui par rapport à Perl (chose que je constate auprès de mes collègues de travail qui ont un peu de mal avec Perl hmm ):
- un interpréteur interactif
- une philosophie de programmation zen pour le programmeur (indentation 'forcée' qui rend les programmes lisibles, aide en ligne de commande, doc strings - les commentaires servent d'aide aux fonctions)
- un langage object (même si on peut faire de l'objet en Perl, ca reste bricolage par rapport à une implémentation native comme Python, Java ou Ruby).
- beaucoup de modules très pratiques standards, installés par défaut (Perl a une communauté très développée en termes de modules avec http://cpan.org, mais c'est plutôt obscur quand on débute).

Il va sans dire que mon avis est trèèèès subjectif, et que ce que j'ai pu évoquer plus haut peut être argumenté suivant les expériences de chacun (les guéguerres de langages sont éternelles). Je met l'accent avant tout sur mon expérience professionnelle, qui m'a fait "abandonner" le Perl au profit de Python.

Pour résumer mon sentiment vis-à-vis de ces 2 langages:
* Perl: très pratique pour faire des petits scripts d'administration (il reste pour moi un "supershell" et rien d'autre), mais tellement de symboles et de spécificités dans le langage qui font qu'un débutant aura un peu de mal; e.g on ne déclare pas d'arguments dans une fonction, le comportement de fonctions peut varier suivant le type de variable affecté (scalaire ou tableau)
* Python: un langage très (parfois trop?) explicite, qui privilégie un code lisible en 10 lignes plutôt qu'une ligne de code en Perl qui se transforme en usine à gaz.

Si l'on s'en tient à ces 2 langages interprétés (donc pas de compilation), Python est plus facile d'accès et plus exhaustif que Perl. Maintenant il existe d'autres langages qui peuvent être une bonne base de programmation: Ruby (autre langage interprété, le concurrent le plus direct de Perl), Java (une très bonne base pour la programmation orientée objet, beaucoup de ressources sur le web et en librairie, un standard industriel, mais qui nécessite énormement d'expérience et d'apprentissage pour être efficace).

En définitive, le critère qui devrait orienter tes choix, c'est ce que tu comptes faire avec ce langage. As-tu des projets précis? Ou simplement envie d'apprendre?

Note: j'ai volontairement fait l'impasse sur PHP, qui est un langage beaucoup plus orienté web, et qui a l'inconvénient de ne pas poser les bonnes bases en programmation: c'est le langage de programmation qui attire le plus de mauvais programmeurs lol

Dernière modification par supergromz (Le 22/03/2007, à 14:36)

Hors ligne

#7 Le 13/12/2006, à 00:14

supergromz

Re : python vs perl

Et heu... bravo à celui qui aura eu le courage de lire mon pâté ci-dessus wink

Hors ligne

#8 Le 13/12/2006, à 00:24

Math

Re : python vs perl

supergromz a écrit :

Et heu... bravo à celui qui aura eu le courage de lire mon pâté ci-dessus wink

Je l'ai lu, et mon sentiment est que ce que vous dites est :  argumenté. donc je n'ai aucune réponse à fournir...

Juste une petite remarque concernant cpan : je ne trouve pas que c'est complexe, j'y trouve tout ce que je souhaite.

Hors ligne

#9 Le 13/12/2006, à 00:39

Henry de Monfreid

Re : python vs perl

supergromz a écrit :

En définitive, le critère qui devrait orienter tes choix, c'est ce que tu comptes faire avec ce langage. As-tu des projets précis? Ou simplement envie d'apprendre?

Ce que je veux c'est apprendre à programmer. Mais  avec un language polyvalent et qui tournera sur mon nokia 770 que j'ai demandé à papa noel. smile:):)
C'est de la que vient mon apriori favorable à Python.
J'ai cru comprendre qu'il oblige à programmer proprement, et ce que j'ai vu de sa syntaxe ressemble à du C, qui est, je crois LE vrai language multiplateforme.
smile


« Je te hais plus qu'aucun des dieux qui vivent sur l'Olympe
Car tu ne rêves que discordes, guerres et combats. »
Trouble obsessionnelcompulsif
Le TdCT est revenu (ils reviennent tous)

Hors ligne

#10 Le 13/12/2006, à 00:50

kaworu

Re : python vs perl

Salut !
Perso je me tournerai aussi vers Python.
Simplement parce que Python est plus lisible et objet (mais facultativement).
Lisible c'est important, et Perl c'est vraiment limite*
Objet c'est aussi important ^^

Quand t'aura envie de te faire vraiment plaisir, fais du Ruby.

*oui, forcément, j'aime Ruby (syntax hyper minimaliste et compréhensible) alors la syntax Perl...

Globalement je suis tout à fait d'accord avec  supergromz (surtout sur la partie PHP wink ) alors lis son paté si c'est pas fait XD


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#11 Le 13/12/2006, à 01:24

Henry de Monfreid

Re : python vs perl

Merci les enfants!
En creant ce topic j'avais deux langages en tete: Perl et Python.
Maintenant que vous me parlez de Ruby...
Je vais devoir me documenter sur lui.
smile

Dernière modification par pinballyoda (Le 13/12/2006, à 01:24)


« Je te hais plus qu'aucun des dieux qui vivent sur l'Olympe
Car tu ne rêves que discordes, guerres et combats. »
Trouble obsessionnelcompulsif
Le TdCT est revenu (ils reviennent tous)

Hors ligne

#12 Le 13/12/2006, à 12:19

aleph

Re : python vs perl

Langages
Python, Perl ? : Python car globalement plus moderne.
Python, Ruby ? : blanc bonnet, bonnet blanc. Comprendre l'un, c'est comprendre l'autre. Par contre, connaître l'un n'est pas connaître l'autre.

Apprentissage
Peut-être un petit plus pour Python, on y trouve plus de consoles interactives dédiées, par ex IDLE.
Très bonne documentation. Commencer par le tutoriel Python écrit par Guido van Rossum lui-même.
(J'avoue que mes connaissances en Ruby sont assez minces.)

Language Python, juste quelques remarques
Python n'est pas un langage simple ou plus simple que le C. Tout les concepts de la prommation sont dans ce langage. Disons que Python est élégant.
Dire que Python est interprété ou compilé, n'est pas correct. L'interpréteur Python génère un code intermédiaire, "byte code", qui lui sera interprété. (Comme java.)

Python et Ubuntu, (à ma connaissance):
La dernière version de Python (2.5) n'est pas disponible pour Dapper.
La dernière verssion de Python (2.5) ne peut pas être utilisée par défaut sous Edgy. Elle peut cependant être installée parallèlement à Python 2.4.

#13 Le 13/12/2006, à 14:33

kaworu

Re : python vs perl

aleph a écrit :

Langages
Python, Perl ? : Python car globalement plus moderne.
Python, Ruby ? : blanc bonnet, bonnet blanc. Comprendre l'un, c'est comprendre l'autre. Par contre, connaître l'un n'est pas connaître l'autre.

Apprentissage
Peut-être un petit plus pour Python, on y trouve plus de consoles interactives dédiées, par ex IDLE.
Très bonne documentation. Commencer par le tutoriel Python écrit par Guido van Rossum lui-même.
(J'avoue que mes connaissances en Ruby sont assez minces.)

Si tu trouve que Python est plus moderne que Perl, alors on peut dire que Ruby est plus moderne que Python.
Par exemple les boucles while/until/for en Ruby sont quasiment inutiles, car le système d'itération de Ruby est très puissant et suffisant.

irb --simple-prompt
>> liste = ["foo", "bar", 12, "oni", 12.241]
=> ["foo", "bar", 12, "oni", 12.241]
>> liste.each { |element| puts element }
foo
bar
12
oni
12.241
=> ["foo", "bar", 12, "oni", 12.241]

ou encore

irb --simple-prompt
>> 10.times do puts "Ruby est sympathique!" end
Ruby est sympathique!
Ruby est sympathique!
Ruby est sympathique!
Ruby est sympathique!
Ruby est sympathique!
Ruby est sympathique!
Ruby est sympathique!
Ruby est sympathique!
Ruby est sympathique!
Ruby est sympathique!
=> 10

Ruby est aussi un language completement Orienté Objet (plus que Java), on peut faire par exemple :

>> 1.+(2)
=> 3

Finalement Ruby à été crée selon le principe de moindre surprise ce qui le rend vraiment cohérent.

J'aime beaucoup Python, je vous laisse essayer ce bout de code pour ceux qui ne connaissent pas encore wink :

python
Python 2.4.4 (#1, Dec  5 2006, 15:42:14) 
[GCC 4.1.1 (Gentoo 4.1.1-r3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import this

Mais Ruby... c'est Ruby ^^


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#14 Le 13/12/2006, à 16:11

aleph

Re : python vs perl

J'essaie d'être concis et clair pour aider pinballyoda et tu rentres dans une querelle de langage.
Relis bien mon message et pèse chaque mot.

#15 Le 13/12/2006, à 21:46

supergromz

Re : python vs perl

C'est inévitable que ce genre de question amène son lot de réponses qui conduisent à une guerre des langages. A l'inverse, il ne faut pas tout réduire à cela, et Kaworu apporte sa petite pierre à l'édifice (pour construire l'abri de jardin ou la piscine extérieure on va dire big_smile )

Moi aussi je dirai:
-> Python vs Perl? Python
-> Python vs Ruby? Une simple question de gout. Il faudra voir dans 2 ans ce que les nouvelles moutures valent (ruby 2 je crois et python 3).

Hors ligne

#16 Le 13/12/2006, à 21:51

supergromz

Re : python vs perl

Petit reproche aux morceaux de code de Mr Kaworu:
Selon moi, ca demontre surtout la particularité de Ruby par rapport à un langage plus "classique" et ca n'aide pas pour apprendre à programmer (au sens général du terme).
J'aurai pu aussi parler des compréhensions de liste en Python, ca aurait abouti au même lol

Bien a vous de cordialement.

Hors ligne

#17 Le 14/12/2006, à 00:01

kaworu

Re : python vs perl

supergromz a écrit :

Petit reproche aux morceaux de code de Mr Kaworu:
Selon moi, ca demontre surtout la particularité de Ruby par rapport à un langage plus "classique" et ca n'aide pas pour apprendre à programmer (au sens général du terme).
J'aurai pu aussi parler des compréhensions de liste en Python, ca aurait abouti au même lol

Bien a vous de cordialement.

Salut !
Loin de moi l'idée de vouloir rentrer dans une guerre des langages ^^
Tout à fait d'accord avec toi, les blocs de code / itérateurs sont pas très classique en Ruby, et pour commencer la prog Python me semble bien plus adapté (c'est d'ailleur mon conseil dans mon premier post) car plus "classique". De plus Python est un langage de script reconnu pour sa stabilité/performance.


"There are in order of increasing severity: lies, damn lies, statistics, and computer benchmarks."

Hors ligne

#18 Le 14/12/2006, à 00:53

JoelS

Re : python vs perl

supergromz a écrit :

Moi aussi je dirai:
-> Python vs Perl? Python
-> Python vs Ruby? Une simple question de gout. Il faudra voir dans 2 ans ce que les nouvelles moutures valent (ruby 2 je crois et python 3).

Moi je dirais:
-> Python vs Perl? ça dépend
-> Python vs Ruby? pareil :-)

Perso je préfère Perl, ça cadre bien avec les contours tordus de mon esprit :-(). Mais on peut aussi faire du code propre, et je pense sincérement qu'un certain nombre de mes scripts en Perl sont très faciles à maintenir.

Le fait est qu'il faut accepter la philosophie intrinséque du langage, celle qui l'a construit dès le début. Perl c'est plutôt Vous avez la possibilité d'aborder le problème et sa résolution de multiples manières. C'est ce que veut dire le There Is More Than One Way To Do It. Ca conduit à des choses très élégantes cotoyant des tas de bouses immondes, quelques fois faites par la même personne le même jour.

Python me parait plus dirigiste. Ruby encore plus. Dans tous les cas, l'argument sur l'élégance de la syntaxe entrainant une élégance dans l'algorithme est totalement faux: dès que le code dépasse une certaine quantité de ligne (100, 150, peu importe), c'est bien la façon d'aborder et de résoudre le problème qui sera central. J'ai aussi dû débugger du code Python particulièrement inbi...incompréhensible car les choix de conception des classes étaient vraiment...douteux (et non commentés en plus!!!).

Par contre, il est sûr que Python (et Ruby) te poussera à une syntaxe propre, alors que Perl te demande gentiment de le faire.

Allez, j'enrichi mon introduction:

-> Python vs Perl? Perl si tu fais des scripts d'admin système (point de vue perf, c'est vraiment sensass), Python si tu fais des applis plus lourdes
-> Python vs Ruby? Python, mais uniquement par ce que je ne connais pas vraiment Ruby...

Hors ligne

#19 Le 14/12/2006, à 10:31

supergromz

Re : python vs perl

J'en rajoute une (dernière?) petite couche:
Java pourrait être aussi un bon point de départ.
C'est un langage qui a l'avantage ET l'inconvénient d'être orienté objet à outrance.

Mais c'est une référence reconnue dans le domaine informatique industriel, et c'est aussi utilisable dans les téléphones de maintenant. Le langage vient de passer Open Source, ce qui devrait lui redonner aussi un petit coup de jeune dans la communauté libre.

Pas évident à maitriser dès le départ, mais il existe tellement d'ouvrages, de sites, de librairies, qu'on peut trouver moyen de s'en sortir.

Et contrairement à Perl/Python/PHP/Ruby/..., c'est un langage compilé, ce qui peut être intéressant à apprendre, bien que ce soit en décalage avec la programmation directe.

Commencer par Java pour acquérir de solides bases de programmation / compilation / maintenance, et passer ensuite à Python (/Ruby/...) pour apprécier de ne plus avoir à compiler big_smile

Hors ligne

#20 Le 14/12/2006, à 11:18

manatlan

Re : python vs perl

python est clairement le plus simple à appréhender (parmis perl, ruby, java ...)
python est interprété la première fois, mais il compile du bytecode, qui lui sera executé les fois suivantes ...
python a énormément de libs pour faire un peu pret tout et n'importe quoi ...

python a vraiment un bel avenir dans le dev web ... (des frameworks mvc, comme django surclassent le trop médiatisé RoR)

- youtube.com, est développé en python : http://mail.python.org/pipermail/python-dev/2006-December/070323.html
- reddit.com également ...
(2 grosses startups ayant changé de propriétaire recemment)

Des projets comme pypy lui promette un avenir plus que radieux (réimplémentation de python en python), permettant à terme de targetter n'importe quoi comme VM (java, .net, binaire ...)

Mais il existe déjà des implémentations java et .net de python .... comme jython, qui te permettra de faire des .class java ... ou ironpython qui te permettra de faire des assemblies .net/mono ...

C'est donc un language qui n'est pas perdu, dans le sens où en maitrisant ce language, tu pourra faire du python (script/progs), des binaires, du .net/mono, du java ... et autres ...
Dans tous les cas : c'est gagnant-gagnant ...

Maintenant, ubuntu donne la part belle à python (c'est aussi le language préféré du geniteur d'ubuntu) ...

Python part du principe "there should be only One Way To Do It", et "explicit is better than implicit", et "unittest driver". Une seule façon de faire, et tends à obliger d'être explicit ... ce qui, par nature, facilite grandement la re-lecture, la maintenabilité dans le temps, et le travail collaboratif .... bref, python est très très scalable ...(certes les objecteurs auront tendance à dire que ça laisse moins de liberté de programmation, mais ça permet surtout de se concentrer sur la fonctionnalité et non sur le code ... et surtout : ça reste lisible, même si tu reprends ton projet 2 ans plus tard, avec 2gramme dans le sang)

Si vous voulez des liens j'en ai encore tout plein tout plein (pour argumentations)...
si tu as qques notions de dev, je te conseille l'excellentissime http://diveintopython.adrahon.org/toc/index.html
et si tu veux un vrai gros IDE pour python : eclipse+plugin pydev

Dernière modification par manatlan (Le 14/12/2006, à 11:28)


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#21 Le 14/12/2006, à 12:48

aleph

Re : python vs perl

> manatlan

On sort un peu du sujet, mais c'est vrai que Python, de par sa conception, a un petit plus, difficilement définissable, qui fait que ce langage sort des sentiers battus.

Je suis sous Windows. J'ai développé un interpréteur/shell qui permet de faire son apprentissage (et même plus) Python sans même avoir une installation de Python sur sa platforme. Beaucoup d'échos positifs. C'est ici http://spinecho.ifrance.com/psi.html

#22 Le 14/12/2006, à 17:23

supergromz

Re : python vs perl

Cher monsieur Pinballyoda,

Alors convaincu? Ou encore des questions ?

Hors ligne

#23 Le 14/12/2006, à 18:32

doohan

Re : python vs perl

supergromz a écrit :

Cher monsieur Pinballyoda,

Alors convaincu? Ou encore des questions ?

en tout cas, moi je suis convaincu ! supergromz, je voulais savoir si c'etait toi tarek ziadé celui qui à ecrit programmation python ? parce que le début du livre, dans le chapitre : pourquoi python c'est tout toi ! lol

bon sinon pour dire que je suis en phase d'apprentissage, mon éditeur préférer  est gedit et un peu drpython, ça progresse doucement mais surement. 
A+

Hors ligne

#24 Le 14/12/2006, à 20:40

supergromz

Re : python vs perl

doohan a écrit :

en tout cas, moi je suis convaincu ! supergromz, je voulais savoir si c'etait toi tarek ziadé celui qui à ecrit programmation python

Non meme pas wink mais je prends ca pour un compliment. Je n'ai pas lu le bouquin du sieur Ziadé mais j'en ai entendu parler. Quand j'ai commencé à étudier Python, je suis parti du "Dive Into Python" (en anglais, mais il existe une VF je crois). Ca remonte a plus d'un an et demi maintenant...

Hors ligne

#25 Le 14/12/2006, à 21:14

doohan

Re : python vs perl

un tres bon livre en pdf  pour commencer en python pour les non anglophone
http://python.developpez.com/livres/?page=livresPython#L2841772993

Hors ligne