Guido van Rossum, le concepteur du langage Python, a accepté de répondre à mes questions pour linuxfr.org. Cette dépêche est donc l'occasion de vous proposer de participer à l'interview, en posant les vôtres en commentaires. J'essaierai d'en reprendre le maximum.
Le thème de l'interview est relativement libre, donc toutes les questions sont les bienvenues.
Pense-t-il intégrer de base le système graphique Wxpython ?
Idle en restera-t-il à ce stade, ou peut on rêver d'un véritable éditeur dédié à la programmation sous python ?
Ou en sont les efforts pour accélérer l'execution de programme python ?
Que pense-t-il de Parrot http://www.parrotcode.org/(...) , une machine
virtuelle utilisée pour exécuter efficacement du bytecode pour
des langages interprétés.
Idéalement, ce bytecode pourrait-il devenir un langage d'assemblage cible commun à Python, Perl 6, Ruby et Php .
Je pense que la programmation par contrat (introduite par Eiffel avec les notions d'assertions/pre-post conditions/invriants, reprise par GNU nana pour le C ) est la meilleure pour développer rapidement des programmes sans bugs (ajoutons y aussi les tests de régression). http://www.artima.com/intv/pycontract.html(...)
assert fait partie de python, mais je crois que le typage faible fait que un grand nombre d'appels d'une fonction ne respectant pas le cahier des charges de cette fonction (envoi par erreur d'objets de nature completement différente de celle attendue) ne sont pas détectés automatiquement par l'interpréteur (et nécessitent donc l'écriture d'assertions supplémentaires).
Est-il prévu d'améliorer le support de la programmation par contrat dans Python ?
(typage + fort en option, notions de pre/post/invariant, ...)
Concernant la compilation de python: est-il prévu d'améliorer la vitesse d'exécution de Python par la compilation (executables, librairies) ou par des techniques à la hotspot ?
Comment voit-il Python par rapport à Java ?
Je ne connais qu'un serveur d'application en Python : Zope ; comment voit-il l'avenir de Python dans le monde client-serveur face à J2EE ou à .NET?
Quelle est est son opinion sur les deux concurents directs (ie Perl et Ruby) ?
Quelles sont leur forces et leur faiblesses comparées à Python. Les bonnes idées à reprendre et les ecueils à éviter ?
La voie que prend ceux ci, Perl avec Parot et une démarche similaire pour Ruby avec une VM sera ette adoptée par Python ?
L'identation comme seule moyen de délimiter les blocs reste elle une bonne idée avec le recul ?
Une des choses que j'aime bien en Perl c'est la declaration optionnelle des variables: use strict et my $toto;
Cela évite les erreurs suivante:
ma_variable = 2
ma_varialbe = ma_variable + 1
# ma_variable vaut 2 et non pas 3 ici!
Ce genre d'erreur est tres difficile a retrouver!
Pourquoi ne pas rajouter un use strict et une déclaration de variable en Python?
Si cela n'a pas grand interet pour les petits scripts mais pour les gros programme , je prefere de loin m'ennuyer a declarer les variable que rechercher ce genre de faute stupide..
PS:
Limbo a une déclaration de variable tres elegante:
a:=5 (déclare et définit a comme un entier qui vaut 5)
a:int (équivalent à a:=0 déclare et définit a comme un entier qui vaut 0)
Ceci sans séparer la declaration et l'utilisation des variables pas comme en Pascal..
pychecker peut éventuellement t'aider. http://pychecker.sourceforge.net/(...)
Notamment parce que le genre de problème que tu évoque implique que la variable n'est pas utilisée.
Je ne sais pas pourquoi mais il ne détecte rien si c'est des variables globales, avec -g non plus :
Et l'interet (c'est mon avis perso), c'est de pouvoir se reposer sur du preexistant en Java, et non plus en C. Ca permet aussi de prototyper/tester rapidement des developpement en Java.
Certains disent aussi que l'execution est aussi rapide, voir plus, que celle de Python/C (mouais...).
Quel est la situation de python vis a vis de tout ce qui est embarqué et handled devices (pda, smartphone)?
Est-il prévu d'avoir une version de python adaptée ou bien ce n'est pas (encore?) un but visé?
J'essaye de me servir de Python pour apprendre a scripter simplement a des non-informaticiens qui n'ont pas l'ambition de le devenir.
D'autres programmes (Blender, PaintShopPro, Gnumeric) l'utilisent pour la meme chose: l'écriture de macros
Une limite que je rencontre c'est la langue: tout le monde n'est pas (encore!) anglophone, et une partie de la facilité de lecture de Python est perdue pour les non-anglophones.
Dans un passé lointain non monopolistique (circa Excel 5), Microsoft avait sorti une version de tous ses langages de script en français, espagnol,... avec une traduction "automatique" entre les diverses langues.
Pensez-vous qu'une solution du même genre soit possible et souhaitable pour Python ? le principal problème que je vois c'est avec les bibliothèques, __doc__
Plus généralement, quelle est l'influence de "python comme premier langage" sur le design de Python.
Quel est l'état actuel de l'initiative CP4E? une chance que cela continue ?
---
I try to use Python to teach everyday people without any background in C.S. (and no intention to get any) how to script simple things.
Other softwares (blender,psp, gnumeric) seem to use Python for the same things: basic macros.
One problem I have, though, is that to a non english-speaking person (yes, they still exist!), the easy syntax of Python is kind of lost.
A long time ago, in a far away non monopolistic galaxy, Microsoft used to have localized scripting languages for Excel 5, WinWord... And a same script could be translated into various languages (french, spanish, english).
Do you think something similar could be done for Python ? could it be good for Python ? the main problem I see are with libraries,__doc__.
For a more general question, what is the influence of "Python as a first language" on Python's design ?
What about CP4E ? will it be active again ?
> Dans un passé lointain non monopolistique (circa Excel 5), Microsoft avait sorti
> une version de tous ses langages de script en français, espagnol,... avec une
> traduction "automatique" entre les diverses langues.
Quelqu'un de l'INRIA, si mes souvenirs sont exacts, a traduit tous les mot-clefs de Python en français. Ca marche, mais malheureusement il ne supporte alors plus l'anglais (conséquences faciles à imaginer).
Voir les archives de python@aful.org, l'info a dû y passer voilà deux ans à peu près.
Comme ça a l'air d'être un sujet qui revient dans les questions (la vitesse de Python), qu'est-ce qu'il pense du projet Psyco (http://psyco.sourceforge.net/(...)) ?
- Pourquoi d'aprés lui python est moins populaire que perl, php , java ou vbs comme langage de script alors qu'il présente beaucoup d'avantages par rapport à ceux-ci .
J'aimerai savoir en tout cas s'il est au moins aussi compréhensible que le Perl, php ou java et surtout s'il permet de faire des choses que les autres ne savent pas faire sinon il y a redondance, j'ai pas envie d'apprendre 36000 langages pour le plaisir...
Python est, de loin (imho), plus lisible, plus facilement maintenable et plus élégant que perl, php, etc.. Enfin là n'est pas l'endroit certainement pour discuter de ça. Voir www.python.org et la mailing list où on pourra trouver d'innombrable threads sur python vs perl vs java... Ceci dit son apprentissage est enfantin et l'essayer c'est l'adopter :)
- Est-il prévu de développer un plugin Eclipse-Python digne de ce nom ? (il existe bien pyeclipse mais il est dans l'état pré-alpha)
- La technologie des ZPT est très intéressante mais lente ! Une ré-écriture en C est-elle dans les cartons ?
Je supporte la question sur IDLE : A quoi est ce que l on peut s attendre dans le futur ?
What is the status of unicode ? I see there are some improvments for 2.3, are they any plan to merge unciode and str , maybe that makes sens in Python. I feel I spend a lot of time dealing with string conversion.
Et Tkinter ? tous le monde parle d un replacement, est ce qu il y a qlqchose de commence ?
Pouquoi est ce que PIL est un package a part ? je milite pour son integration comme library standard :-) . il ya toujour une image a manipuler meme si c est juste un logo
Est-ce que Python a du succès sur le web, ou est-ce que c'est encore jeune ?
Quel est le niveau pour développer des applis qui tiennent la route ?
(s'il faut juste être débrouillard sans trop connaître ou vraiment expert en prog)
Qu'est-ce qu'il pense du Python stackless ? (http://www.stackless.com,(...) pour ce que j'en sais, c'est toujours un projet séparé du python officiel - c'est cette version qui est utilisée par Eve-Online, le jeu vidéo massivement multi joueur)
Est-il envisageable de développer des modules avancés de programmation par contrainte, voir les intégrer dans les modules de base pour en assurer le développement. Il existe quelques implémentations pour python mais elles restent très limitées. (Logilab)
Certains langages utilisent pleinement la programmation par contrainte. http://www.mozart-oz.org/ Celle-ci peut-être vraiment très utile pour la résolution de problème complexes: tracé de graphes, problèmes de stocks, résolution de problèmes avec beaucoup d'inéquations, ...
Fabien Pinckaers (pinky)
quand serons nous débarrassé des inepties telles que len(o) qui appelle en fait o.__len__() ?
pense t'il revoir l'api C pour pouvoir créer des types directement en C plus simplement, sans passer par un module _bidon pour ensuite creer l'objet en python par dessus dans un module bidon ?
regarde t'il frequemment les évolutions des autres langages ?
Apres GCJ peut on envisager directement un frontend GCC?
Si un des reproches de python est sa vitesse d'éxécution, un code compilé ne peut il réconcilier les fans du dév rapide et ceux du code suroptimisé a coup de -fomit-frame-truc -march=cray2? (j'en oublie je sais);)
Bon , c'est dommage car j'avais une ou deux petites questions, mais je me réveille un peu tard :
- Comment selon lui, combiner la conception UML et les designs patterns et Python ?
- Ne pense-t-il pas qu'il faudrait pousser pour faire integrer fortement Python dans des IDE comme Eclipse (et tous les outils qu'il propose comme UML, test, etc)... ?
# Re: Vos questions à Guido van Rossum (Python)
Posté par Julien Duponchelle (site web personnel) . Évalué à 10.
# Re: Vos questions à Guido van Rossum (Python)
Posté par kagouou . Évalué à 10.
Idle en restera-t-il à ce stade, ou peut on rêver d'un véritable éditeur dédié à la programmation sous python ?
Ou en sont les efforts pour accélérer l'execution de programme python ?
Merci
Vivement l'interview :)
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 3.
# Re: Vos questions à Guido van Rossum (Python)
Posté par jmfayard . Évalué à 10.
virtuelle utilisée pour exécuter efficacement du bytecode pour
des langages interprétés.
Idéalement, ce bytecode pourrait-il devenir un langage d'assemblage cible commun à Python, Perl 6, Ruby et Php .
# Typages/contrats et compilation
Posté par free2.org . Évalué à 10.
Je pense que la programmation par contrat (introduite par Eiffel avec les notions d'assertions/pre-post conditions/invriants, reprise par GNU nana pour le C ) est la meilleure pour développer rapidement des programmes sans bugs (ajoutons y aussi les tests de régression).
http://www.artima.com/intv/pycontract.html(...)
assert fait partie de python, mais je crois que le typage faible fait que un grand nombre d'appels d'une fonction ne respectant pas le cahier des charges de cette fonction (envoi par erreur d'objets de nature completement différente de celle attendue) ne sont pas détectés automatiquement par l'interpréteur (et nécessitent donc l'écriture d'assertions supplémentaires).
Est-il prévu d'améliorer le support de la programmation par contrat dans Python ?
(typage + fort en option, notions de pre/post/invariant, ...)
Concernant la compilation de python: est-il prévu d'améliorer la vitesse d'exécution de Python par la compilation (executables, librairies) ou par des techniques à la hotspot ?
[^] # Re: Typages/contrats et compilation
Posté par Xavier Antoviaque (site web personnel) . Évalué à 3.
# Re: Vos questions à Guido van Rossum (Python)
Posté par printakilla . Évalué à 3.
Je ne connais qu'un serveur d'application en Python : Zope ; comment voit-il l'avenir de Python dans le monde client-serveur face à J2EE ou à .NET?
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 3.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par golum . Évalué à 3.
http://webware.sourceforge.net/(...)
# Re: Vos questions à Guido van Rossum (Python)
Posté par Cédric Foll . Évalué à 3.
Quelles sont leur forces et leur faiblesses comparées à Python. Les bonnes idées à reprendre et les ecueils à éviter ?
La voie que prend ceux ci, Perl avec Parot et une démarche similaire pour Ruby avec une VM sera ette adoptée par Python ?
L'identation comme seule moyen de délimiter les blocs reste elle une bonne idée avec le recul ?
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par reno . Évalué à 9.
Cela évite les erreurs suivante:
ma_variable = 2
ma_varialbe = ma_variable + 1
# ma_variable vaut 2 et non pas 3 ici!
Ce genre d'erreur est tres difficile a retrouver!
Pourquoi ne pas rajouter un use strict et une déclaration de variable en Python?
Si cela n'a pas grand interet pour les petits scripts mais pour les gros programme , je prefere de loin m'ennuyer a declarer les variable que rechercher ce genre de faute stupide..
PS:
Limbo a une déclaration de variable tres elegante:
a:=5 (déclare et définit a comme un entier qui vaut 5)
a:int (équivalent à a:=0 déclare et définit a comme un entier qui vaut 0)
Ceci sans séparer la declaration et l'utilisation des variables pas comme en Pascal..
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Alain Tésio . Évalué à 8.
http://pychecker.sourceforge.net/(...)
Notamment parce que le genre de problème que tu évoque implique que la variable n'est pas utilisée.
Je ne sais pas pourquoi mais il ne détecte rien si c'est des variables globales, avec -g non plus :
$ cat > toto.py
def f():
ma_variable = 2
ma_varialbe = ma_variable + 1
$pychecker toto.py
Processing toto...
Warnings...
toto.py:4: Local variable (ma_varialbe) not used
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 3.
# Re: Vos questions à Guido van Rossum (Python)
Posté par swapon . Évalué à 6.
Vivement l'interview
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par esprit . Évalué à 4.
Et l'interet (c'est mon avis perso), c'est de pouvoir se reposer sur du preexistant en Java, et non plus en C. Ca permet aussi de prototyper/tester rapidement des developpement en Java.
Certains disent aussi que l'execution est aussi rapide, voir plus, que celle de Python/C (mouais...).
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 2.
# Python et embarqué
Posté par martinc . Évalué à 8.
Est-il prévu d'avoir une version de python adaptée ou bien ce n'est pas (encore?) un but visé?
[^] # Re: Python et embarqué
Posté par Xavier Antoviaque (site web personnel) . Évalué à 4.
http://www.riverbankcomputing.co.uk/zaurus/index.php(...)
http://opie.net.wox.org/python/(...)
...
# Python comme premier langage
Posté par jm . Évalué à 7.
D'autres programmes (Blender, PaintShopPro, Gnumeric) l'utilisent pour la meme chose: l'écriture de macros
Une limite que je rencontre c'est la langue: tout le monde n'est pas (encore!) anglophone, et une partie de la facilité de lecture de Python est perdue pour les non-anglophones.
Dans un passé lointain non monopolistique (circa Excel 5), Microsoft avait sorti une version de tous ses langages de script en français, espagnol,... avec une traduction "automatique" entre les diverses langues.
Pensez-vous qu'une solution du même genre soit possible et souhaitable pour Python ? le principal problème que je vois c'est avec les bibliothèques, __doc__
Plus généralement, quelle est l'influence de "python comme premier langage" sur le design de Python.
Quel est l'état actuel de l'initiative CP4E? une chance que cela continue ?
---
I try to use Python to teach everyday people without any background in C.S. (and no intention to get any) how to script simple things.
Other softwares (blender,psp, gnumeric) seem to use Python for the same things: basic macros.
One problem I have, though, is that to a non english-speaking person (yes, they still exist!), the easy syntax of Python is kind of lost.
A long time ago, in a far away non monopolistic galaxy, Microsoft used to have localized scripting languages for Excel 5, WinWord... And a same script could be translated into various languages (french, spanish, english).
Do you think something similar could be done for Python ? could it be good for Python ? the main problem I see are with libraries,__doc__.
For a more general question, what is the influence of "Python as a first language" on Python's design ?
What about CP4E ? will it be active again ?
[^] # Re: Python comme premier langage
Posté par Jerome Alet (site web personnel) . Évalué à 6.
> une version de tous ses langages de script en français, espagnol,... avec une
> traduction "automatique" entre les diverses langues.
Quelqu'un de l'INRIA, si mes souvenirs sont exacts, a traduit tous les mot-clefs de Python en français. Ca marche, mais malheureusement il ne supporte alors plus l'anglais (conséquences faciles à imaginer).
Voir les archives de python@aful.org, l'info a dû y passer voilà deux ans à peu près.
[^] # Re: Python comme premier langage
Posté par Xavier Antoviaque (site web personnel) . Évalué à 2.
# Re: Vos questions à Guido van Rossum (Python)
Posté par Jiba (site web personnel) . Évalué à 6.
cf http://aosd.net/(...)
Jiba
# Re: Vos questions à Guido van Rossum (Python)
Posté par Nicolas Roard (site web personnel) . Évalué à 5.
# Performances de Python
Posté par tinou . Évalué à 3.
# Re: Vos questions à Guido van Rossum (Python)
Posté par bricabrac . Évalué à 3.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par xsnipe . Évalué à -2.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par bricabrac . Évalué à 1.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Pascal Terjan (site web personnel) . Évalué à 1.
J'en reste à PHP et j'ai toujours le projet de me mettre à ruby quand j'aurai le temps
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Jerome Alet (site web personnel) . Évalué à 2.
change de boulot, alors.
# Re: Vos questions à Guido van Rossum (Python)
Posté par maxoub . Évalué à 4.
# Re: Vos questions à Guido van Rossum (Python)
Posté par Jean-Louis Berliet . Évalué à 6.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 1.
# Re: Vos questions à Guido van Rossum (Python)
Posté par ord . Évalué à 5.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 1.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 1.
# Dot GNU
Posté par Etienne Juliot (site web personnel) . Évalué à 4.
cf http://www.dotgnu.org/(...)
# Re: Vos questions à Guido van Rossum (Python)
Posté par zorg . Évalué à 8.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 1.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 1.
# Re: Vos questions à Guido van Rossum (Python)
Posté par XHTML/CSS inside (site web personnel) . Évalué à 2.
Quel est le niveau pour développer des applis qui tiennent la route ?
(s'il faut juste être débrouillard sans trop connaître ou vraiment expert en prog)
# Re: Vos questions à Guido van Rossum (Python)
Posté par Sidoine de Wispelaere . Évalué à 8.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 1.
# Re: Vos questions à Guido van Rossum (Python)
Posté par Sidoine de Wispelaere . Évalué à 5.
# Programmation par contrainte
Posté par pinky . Évalué à 4.
# Re: Vos questions à Guido van Rossum (Python)
Posté par Ramso . Évalué à 6.
# Re: Vos questions à Guido van Rossum (Python)
Posté par lorill (site web personnel) . Évalué à 5.
pense t'il revoir l'api C pour pouvoir créer des types directement en C plus simplement, sans passer par un module _bidon pour ensuite creer l'objet en python par dessus dans un module bidon ?
regarde t'il frequemment les évolutions des autres langages ?
# Re: Vos questions à Guido van Rossum (Python)
Posté par golum . Évalué à 5.
car utiliser un artifice du style:
while 1:
...
if not condition: break
me parait aller à l'encontre de la philosophie
de python qui prône la simplicité.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 1.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par golum . Évalué à 1.
et je n'ai trouvé aucune réponse à la question:
Pourquoi n'ya t'il pas de boucle do...while ou repeat...until en python ?
Pourrais tu être plus précis concernant la référence à la FAQ.
Merci et Bon interview
# Re: Vos questions à Guido van Rossum (Python)
Posté par \o/ . Évalué à 0.
# Re: Vos questions à Guido van Rossum (Python)
Posté par . Takhi . Évalué à 1.
Si un des reproches de python est sa vitesse d'éxécution, un code compilé ne peut il réconcilier les fans du dév rapide et ceux du code suroptimisé a coup de -fomit-frame-truc -march=cray2? (j'en oublie je sais);)
# Re: Vos questions à Guido van Rossum (Python)
Posté par Xavier Antoviaque (site web personnel) . Évalué à 1.
[^] # Re: Vos questions à Guido van Rossum (Python)
Posté par Laurent Hausermann . Évalué à 1.
- Comment selon lui, combiner la conception UML et les designs patterns et Python ?
- Ne pense-t-il pas qu'il faudrait pousser pour faire integrer fortement Python dans des IDE comme Eclipse (et tous les outils qu'il propose comme UML, test, etc)... ?
N'hésitez pas à lire :
http://www.artima.com/intv/guido.html(...)
Pour ceux qui n'attendrait pas l'interview sur LinuxFR.org !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.