Je connais le langage pour l'avoir pratiqué il y a quelques temps, mais ce détail m'avait échappé. Et je persiste sur le fait que ce langage est un langage "neuneu proof", et totalement pénible à utiliser lorsqu'on développe des trucs un peu conséquents. Je prends bien plus de plaisir à développer en Ruby qu'en Python.
J'ai typiquement le problèmes avec les parenthèses dans des formules à rallonge dans un tableur.
Oups, ce point m'a échappé. Comparons ce qui est comparable, il y a un monde entre formules de tableurs et python. C'est comme si je venais à te parler de macros M4 par exemple alors que ça n'a rien à voir.
class Toto:
def __initialize(self):
a=42
def test(self):
if (self.a == 42) :
print "a=42"
self.a=22
t=Toto()
t.test
Dans ce cas, Python ne rale pas. Ce genre de truc arrive assez souvent lorsqu'on modifie du code pour par exemple ajouter un test, ou suppression d'un nombre conséquent de lignes.
Par contre en ruby :
class Toto
def initialize
@a=42
end
def test
if (@a == 42):
puts("a=#{@a}")
@a=22
end
end
t=Toto.new()
t.test()
La tu as oublié de délimiter la fin de bloc, ça rale.
Sinon, tu remarqueras aussi la façon élégante et concise d'identifier une variable d'instance … Ca peut paraitre du détail, mais personnellement je n'aime pas me répéter, et passer mon temps à me trainer un self, ou devoir être explicite à l'excès alors que le contexte permet d'identifier clairement ce que je fais ou veux faire me gave au plus haut point.
Personnellement je ne comprends pas les arguments contre l'indentation. J'ai toujours détesté les "{" et les "}" ou autres "endif" ou "fi" ou "end" qui se baladent partout. Il arrive aussi d'oublier une accolade fermante, donc entre oublier l'indentation ou l'accolade, je vois pas ce que ça change…
C'est plus difficile à voir un oubli d'indentation qu'un oubli d'accolade. Quand tu oublies uune accolade fermante, ton compilo va raler. Quand tu oublies une indentation, parfois ça rale (et il est difficile de voir ou est le problème), parfois ça rale pas parce que le code est syntaxiquement correct, mais il ne fait pas ce que tu veux.
de toute façon tu indentes bien les codes que tu fais dans les autres langages non ?
Oui, pour la lisibilité. Mais si j'oublie de fermer mon accolade ou de positionner mon délmimituer de bloc, le compilo rale. En python, il peut considérer, si tu oublies une indentation, que tu es en fin de bloc et te faire des choses bizarres difficiles à débugger.
Donc du coup au lieu d'avoir uniquement de l'indentation, tu as de l'indentation + un caractère ou une expression fermante… ça fait double emploi je trouve.
Non, pas vraiment. Les deux n'ont absolument pas le même rôle. Au début, j'ai été séduit par ce concept. Mais j'ai vite déchanté lorsque j'ai été confrontés à ses inconvénients. Indentation obligatoire, pourquoi pas, pour forcer à la lisibilité, mais il faut un délimiteur de blocs en plus.
Certains langages ne te permettent pas de faire ça facilement (et je croyais que Python en faisait partie), et lèvent une exception si tu ne passe pas par un accesseur pour modifier ou lire la valeur de l'attribut.
Ah, et pour ammener la pelleteuse dans ton jardin, tu vas détruire tout ce qui est autour du trou à creuser ?
Sinon, si on reprends la comparaison avec la voiture, c'est comme si tu étais agriculteur et que tu allais faire tes courses ou ton trajet pour aller en vacances en prenant ton tracteur parce que tu passes tes journées dessus …
TILLLT !!!! Je crois que tu viens d'illustrer parfaitement (et malgré toi) un des reproches que je fais à Python. Tu n'auraos pas une indentation en trop dans ton second extrait de code ? :D
Sinon je viens de tester et il semble que Python ne définit pas d'encapsulation stricte comme en Ruby par exemple. Donc ma remarque vaut pour les langages autres que Python …
J'en suis pas convaincu, et ce n'est pas ce que je vois tout les jours. Tiens, un exemple
En plus de ça ton bloatware va nécessiter 2 CPUs sur 4 pour permettre aux donées de traverser les diverses couches que ces monstres mettent en oeuvre. Ce que tu me dis là, c'est comme si tu me disais que tu connais bien la pelleteuse et que tu vas t'en servir pour creuser toute sortes de trous, alors que parfois, une simple pelle sera bien plus efficace.
Un truc tout bête (mais qui n'est pas propre à Python, mais bien aux langages "objets" : la nécessité de créer des accesseurs spécifiques pour accéder aux attributs d'un objet : ce sont des déclarations répétitives assez lourdes. Autre exemple le self que l'on se traine systématiquement lors de la déclaration des méthodes. Je n'ai pas d'autres exemples en tête parce que ça fait un moment que je n'ai pas fait de python. Je suis passé depuis à Ruby qui permet de se simplifier la vie et d'éviter le code répétitif.
Je l'ai indiqué dans un message plus haut : trop explicite : quand tu dois développer du code et te répéter sans cesse, à la longue ça devient usant et tu as l'impression de te répéter sans cesse. Pour ton utilisation, c'est parfait. Par contre quand tu commences à développer du code un peu conséquent, ça devient vite usant.
Si je résume la philosophie de python par rapport à Perl et Ruby (et en y introduisant la fameuise voiture - c'est pas simple à résumer par écrit) :
En perl :
c'est à moi ( la personne qui dit ça montre la voiture du doigt : le contexte permet de déterminer de quoi il parle)
en python : La seule voiture verte de marque XXX, immatriculée YYY, No de série ZZZZZ qui est arrêtée sur le parking servant à garer des véhicules à l'arrêt est ma voiture qui m'appartient à moi (on est obligé de tout préciser parce que la personne en face est trop neuneu pour comprendre)
en ruby : La voiture verte garée sur le parking m'appartient.
Java? Un langage "neuneu"? Et pourquoi pas Ada tant qu'on y est ? On aura tout entendu. Java est loin d'être un langage à neuneu. C'est le langage du "pourquoi faire simple quand on peut faire compliqué en associant le langage à du xml dans tous les sens dans les outils censés augmenter la productivité des développeurs". Après ces idiots vont aller mettre du XML dans tous les fichiers de conf (ah ben oui, pas le temps de développer une GUI ou une CLI afin de faciliter le paramétrage).
Plus sérieusement, Ruby est assez sympa avec les inconvénients de Python en moins. Suffisamment explicite pour pouvoir relire ton code ou celui d'un autre sans prise de tête (contrairement à Perl par exemple), mais pas trop contrairement à Python par exemple. De plus tu n'as pas l'aberration de la délimitation de bloc par des indentation (lourd pour débugger : il m'est arrivé de passer plus de 2h à débugger un problème à cause de ça).
Je viens de voir qu'il y a aussi php/tk Je suis pas fan de PHP, mais je préfère quand même ça a l'immonde serpent.
[^] # Re: Mauvaise interprétation
Posté par totof2000 . En réponse au journal Systemd dans Debian. Évalué à 9.
si t'aimes pas le mode texte
[^] # Re: Mauvaise interprétation
Posté par totof2000 . En réponse au journal Systemd dans Debian. Évalué à 3.
Tu sais, FreeBSD, c'est bien aussi. Et si c'est trop compliqué pour toi, essaie PC-BSD.
[^] # Re: Mauvaise interprétation
Posté par totof2000 . En réponse au journal Systemd dans Debian. Évalué à 10.
Ya pas plus user friendly que cron : ne nécessite qu'un éditeur de texte pour être utilisé.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 0.
Je connais le langage pour l'avoir pratiqué il y a quelques temps, mais ce détail m'avait échappé. Et je persiste sur le fait que ce langage est un langage "neuneu proof", et totalement pénible à utiliser lorsqu'on développe des trucs un peu conséquents. Je prends bien plus de plaisir à développer en Ruby qu'en Python.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
Euh …
Dans ce cas, Python ne rale pas. Ce genre de truc arrive assez souvent lorsqu'on modifie du code pour par exemple ajouter un test, ou suppression d'un nombre conséquent de lignes.
Par contre en ruby :
class Toto
t=Toto.new()
t.test()
La tu as oublié de délimiter la fin de bloc, ça rale.
Sinon, tu remarqueras aussi la façon élégante et concise d'identifier une variable d'instance … Ca peut paraitre du détail, mais personnellement je n'aime pas me répéter, et passer mon temps à me trainer un self, ou devoir être explicite à l'excès alors que le contexte permet d'identifier clairement ce que je fais ou veux faire me gave au plus haut point.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 4.
C'est plus difficile à voir un oubli d'indentation qu'un oubli d'accolade. Quand tu oublies uune accolade fermante, ton compilo va raler. Quand tu oublies une indentation, parfois ça rale (et il est difficile de voir ou est le problème), parfois ça rale pas parce que le code est syntaxiquement correct, mais il ne fait pas ce que tu veux.
Oui, pour la lisibilité. Mais si j'oublie de fermer mon accolade ou de positionner mon délmimituer de bloc, le compilo rale. En python, il peut considérer, si tu oublies une indentation, que tu es en fin de bloc et te faire des choses bizarres difficiles à débugger.
Non, pas vraiment. Les deux n'ont absolument pas le même rôle. Au début, j'ai été séduit par ce concept. Mais j'ai vite déchanté lorsque j'ai été confrontés à ses inconvénients. Indentation obligatoire, pourquoi pas, pour forcer à la lisibilité, mais il faut un délimiteur de blocs en plus.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
Certains langages ne te permettent pas de faire ça facilement (et je croyais que Python en faisait partie), et lèvent une exception si tu ne passe pas par un accesseur pour modifier ou lire la valeur de l'attribut.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
Ah, et pour ammener la pelleteuse dans ton jardin, tu vas détruire tout ce qui est autour du trou à creuser ?
Sinon, si on reprends la comparaison avec la voiture, c'est comme si tu étais agriculteur et que tu allais faire tes courses ou ton trajet pour aller en vacances en prenant ton tracteur parce que tu passes tes journées dessus …
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2. Dernière modification le 07 février 2013 à 16:09.
Ah j'allais oublier : en Ruby pour définir un accesseur, tu as juste à le déclarer de la façons uivante :
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
TILLLT !!!! Je crois que tu viens d'illustrer parfaitement (et malgré toi) un des reproches que je fais à Python. Tu n'auraos pas une indentation en trop dans ton second extrait de code ? :D
Sinon je viens de tester et il semble que Python ne définit pas d'encapsulation stricte comme en Ruby par exemple. Donc ma remarque vaut pour les langages autres que Python …
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 3.
J'en suis pas convaincu, et ce n'est pas ce que je vois tout les jours. Tiens, un exemple
En plus de ça ton bloatware va nécessiter 2 CPUs sur 4 pour permettre aux donées de traverser les diverses couches que ces monstres mettent en oeuvre. Ce que tu me dis là, c'est comme si tu me disais que tu connais bien la pelleteuse et que tu vas t'en servir pour creuser toute sortes de trous, alors que parfois, une simple pelle sera bien plus efficace.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
Peut-être, mais java en lui même est loin d'être un langage que je qualifierais de simple.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 1.
Un truc tout bête (mais qui n'est pas propre à Python, mais bien aux langages "objets" : la nécessité de créer des accesseurs spécifiques pour accéder aux attributs d'un objet : ce sont des déclarations répétitives assez lourdes. Autre exemple le self que l'on se traine systématiquement lors de la déclaration des méthodes. Je n'ai pas d'autres exemples en tête parce que ça fait un moment que je n'ai pas fait de python. Je suis passé depuis à Ruby qui permet de se simplifier la vie et d'éviter le code répétitif.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 1.
Je l'ai indiqué dans un message plus haut : trop explicite : quand tu dois développer du code et te répéter sans cesse, à la longue ça devient usant et tu as l'impression de te répéter sans cesse. Pour ton utilisation, c'est parfait. Par contre quand tu commences à développer du code un peu conséquent, ça devient vite usant.
Si je résume la philosophie de python par rapport à Perl et Ruby (et en y introduisant la fameuise voiture - c'est pas simple à résumer par écrit) :
En perl :
c'est à moi ( la personne qui dit ça montre la voiture du doigt : le contexte permet de déterminer de quoi il parle)
en python : La seule voiture verte de marque XXX, immatriculée YYY, No de série ZZZZZ qui est arrêtée sur le parking servant à garer des véhicules à l'arrêt est ma voiture qui m'appartient à moi (on est obligé de tout préciser parce que la personne en face est trop neuneu pour comprendre)
en ruby : La voiture verte garée sur le parking m'appartient.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
Java? Un langage "neuneu"? Et pourquoi pas Ada tant qu'on y est ? On aura tout entendu. Java est loin d'être un langage à neuneu. C'est le langage du "pourquoi faire simple quand on peut faire compliqué en associant le langage à du xml dans tous les sens dans les outils censés augmenter la productivité des développeurs". Après ces idiots vont aller mettre du XML dans tous les fichiers de conf (ah ben oui, pas le temps de développer une GUI ou une CLI afin de faciliter le paramétrage).
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 3.
Et j'oubliais le fameux self qu'on se traine tout le temps dans la déclaration de méthodes.
[^] # Re: Si tu ne sais pas quoi en faire ....
Posté par totof2000 . En réponse au message Que faire avec un Raspberry pi ?. Évalué à 3.
Je l'ai dit avant, donc c'est à moi qu'il revient de droit … :)
[^] # Re: pyqt
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
Oui mais si plus de GTK+, plus de xfce ….
[^] # Re: HTML / JS (ou Qt si vraiment tu veux un client lourd)
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 3.
Ben par définition c'est du HTML donc "c'est mieux"
[^] # Re: pyqt
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 1.
??? Ya plus que le mobile et les MAC dans la vie ?
Moi j'ai toujours mon FreeBSD et/ou mon NetBSD avec son XFCE a toujours besoin de GTK+.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
Plus sérieusement, Ruby est assez sympa avec les inconvénients de Python en moins. Suffisamment explicite pour pouvoir relire ton code ou celui d'un autre sans prise de tête (contrairement à Perl par exemple), mais pas trop contrairement à Python par exemple. De plus tu n'as pas l'aberration de la délimitation de bloc par des indentation (lourd pour débugger : il m'est arrivé de passer plus de 2h à débugger un problème à cause de ça).
Je viens de voir qu'il y a aussi php/tk Je suis pas fan de PHP, mais je préfère quand même ça a l'immonde serpent.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 0.
Simple : tout SAUF python.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 2.
Non, il y a une tempo il me semble pour modifier le commentaire. En tout cas je n'ai pas vu la possibilité de modifier.
[^] # Re: Tk, averc n'importe quel langage par dessus.
Posté par totof2000 . En réponse au message débutant cherche piste pour apprendre a faire de petite gui. Évalué à 4.
Argh, lancé de troll raté !!!!! Je voulais dire je te déconseille Python. Tant pis, je tenterai une autre fois … :D