Derniers journaux de haypo :
- [11/09@12:51] 500 portables XO (projets OLPC) distribués sur l'île de Niué
- [03/09@13:10] Sortie de Fusil le fuzzer en version 1.0beta3
- [01/06@19:25] Conférences Pycon FR 2008 en ligne
- [31/05@16:41] Sortie de la bibliothèque Hasard version 0.2
- [22/04@23:45] Antispam pour blog et forum
- [08/04@23:38] Comment comparer les licences de logiciel ?
- [11/02@12:38] Nouvelles du noyau Linux : SMACK, PSS, mais pas de kgdb
- [27/11@23:01] Fusillez vos applications (Fusil le fuzzer)
- [15/04@01:33] Nouvelle version de hachoir-metadata tolérante aux erreurs
- [16/01@02:03] hachoir-subfile : extrait les fichiers contenu dans un autre fichier
- [29/11@22:01] hachoir-metadata cherche des testeurs
- [07/11@15:35] Déshabillez Flash (du son maintenant)
- [05/11@04:10] Déshabillez Flash
- [25/10@21:55] Rejouez chez vous les plus grandes batailles de la guerre du libre
- [24/09@13:47] Les hommes sont des fourmis (Men are ants)
- [11/09@23:15] Dernière avancées du Hachoir (il peut écrire !!!)
- [08/09@02:15] MultiDeskOS et Jayce dans Wikipédia
- [10/07@22:54] Hachoir 0.4
- [16/06@11:03] Progrès dans l'équipe de traduction du jeu Wormux
- [30/05@17:48] Hachoir 0.3 et les méta-données
ChangeLog complet : http://www.python.org/download/releases/3.0/NEWS.txt
Documentation : http://docs.python.org/dev/3.0/
Par rapport à 3.0rc1, il s'agit essentiellement de corrections de bugs. D'ailleurs, vu la quantité de bugs critiques (qui n'étaient -forcément- pas prévus), Python 3.0 a pris beaucoup de retard sur son planning. L'équipe Python préfère corriger tous les bugs plutôt que de sortir une version boguée qui dégoûterait les gens de Python 3.
Par rapport Python 2.5, Python 3.0 inclut tous les changements de Python 2.6. Piqûre de rappel :
http://linuxfr.org/2008/10/02/24556.html
http://docs.python.org/whatsnew/2.6.html
La version 3.0rc1 est sortie le 17 septembre et la version finale est prévue le 3 décembre.
Selon moi, le changement majeur de Python3 est le passage intégral à Unicode : par défaut les fichiers sont ouverts en mode texte en unicode, un script python est en utf-8 (unicode), on peut utiliser des identifiants en unicode (libre à vous d'écrire en japonais, français ou anglais, après ça dépend avec qui vous souhaitez travailler), et utilisation d'unicode dans la grande majorité des modules (la bibliothèque standard).
> Lire le journal (20 commentaires, moyenne: 2,6).
English vs other languages
, on peut utiliser des identifiants en unicode (libre à vous d'écrire en japonais, français ou anglais, après ça dépend avec qui vous souhaitez travailler)
Question : est-ce vraiment une bonne pratique d'utiliser autre chose que de l'anglais dans le code d'un programme ? Question d'autant plus importante dans le contexte des logiciels libres où le code est amené à être réutilisé...
-
[^]Re: English vs other languages
Posté par msieur_happy (Jabber id, ) le 07/11/2008 à 16:36. (lien). Évalué à 2.Aller hop, tout le monde programme en esperanto !
-
[^]Re: English vs other languages
Posté par guiral Lacotte (Jabber id, ) le 08/11/2008 à 12:05. (lien). Évalué à 1.Encore mieux le lojlan
http://xkcd.com/191/--
Il relève de la responsabilité du lecteur de contrôler, par tous moyens, l'adéquation du message à ses besoins et de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
-
-
[^]Re: English vs other languages
Posté par Victor STINNER (page perso, ) le 07/11/2008 à 16:49. (lien). Évalué à 5.Je pense que la fonction vise plutôt les formations dans la langue maternelle des élèves ou les entreprises qui développent du logiciel propriétaire. Pour un logiciel libre, bien que l'espéranto soit séduisant, l'anglais est la langue la plus répandue dans l'informatique. Un petit exemple pour la route :
>>> nom = input("Nom ?")
Victor
>>> prénom = input("Prénom ?")
Stinner
>>> print("Bonjour {nom} {prénom}".format(nom=nom, prénom=prénom))
Bonjour Victor Stinner
Équivalent Python 2.x :
>>> charset = "UTF-8"
>>> nom = unicode(raw_input(u"Nom ?"), charset)
Victor
>>> prenom = unicode(raw_input(u"Prénom ?"), charset)
Stinner
>>> print(u"Bonjour {nom} {prenom}".format(nom=nom, prenom=prenom))
Bonjour Victor Stinner
C'est tout de suite plus laid non ? :-) L'orthographe ne peut pas être respectée, c'est dommage. Et encore, mon heuristique pour déterminer le charset du terminal est pourrite : c'est toujours UTF-8 :-) Il faudrait utiliser une fonction pour ça qui n'est pas incluse de base de dans Python 2.x :-/-
[^]Re: English vs other languages
Posté par Archibald (page perso, ) le 07/11/2008 à 18:54. (lien). Évalué à 3.>> print("Bonjour {nom} {prénom}".format(nom=nom, prénom=prénom))
Je ne connais rien à Python, mais j'ai quand même une question : pourquoi faut-il écrire 3 fois 'nom' et 3 fois 'prénom' alors que, dans certains langages, un simple 'print Bonjour $nom $prenom' (ou quelque chose de ressemblant) suffit ?-
[^]Re: English vs other languages
Posté par champi (page perso, ) le 07/11/2008 à 20:03. (lien). Évalué à 2.Un truc dans le genre:
>>> print("Bonjour {nom} {prénom}".format(**locals()))
devrait marcher mais j'ai pas de python 3 sous la main pour tester.
-
[^]Re: English vs other languages
Posté par David Kremer (Jabber id, ) le 07/11/2008 à 21:20. (lien). Évalué à 1.>>> print 'bonjour' + ' ' + nom + ' ' + prénom-
[^]Re: English vs other languages
-
[^]Re: English vs other languages
Posté par Nicolas Ternisien (page perso, ) le 08/11/2008 à 10:48. (lien). Évalué à 4.Taratata ;-)
print "Bonjour %s %s" % (nom, prenom)
-
-
[^]Re: English vs other languages
Posté par Guillaume Bouchard (page perso, ) le 08/11/2008 à 11:18. (lien). Évalué à 4.En fait tu peut écrire facilement :
>>> print("Bonjour {0} {1}".format(nom,prenom))
L'idée de la fonction format c'est :
1) soit tu passes les arguments par ordre, et tu les références par ordre "{0}".format('hibou')
2) soit tu passes les arguments par mot clé et tu références par mot clé
"{toto}".format(toto="hibou")
3) evidemment, le passe par mot clé, c'est juste le passage d'une table de hashage (dictionnaire en python)
hash = dict(nom='Bouchard',prénom="Guillaume")
print("Bonjour {prénom} {nom}".format(**hash))
(le ** est un peu magique, je n'ai jamais aimé...)
-
[^]Re: English vs other languages
Posté par Guillaume Bouchard (page perso, ) le 08/11/2008 à 11:31. (lien). Évalué à 3.Je m'auto répond à moi même.
1) s/passe/passage
2) il est possible de mélanger les deux méthodes (ordre et mot clé)
dico = dict(nom="Bouchard",prénom="Guillaum")
"{0} ! {prénom} {nom} est un {0}".format("hibou",**dico)
3) cela permet d'introduire des formatages (je vous renvoi à la doc pour plus d'info [0])
4) la raison qui fait que il n'y a pas d'interpolation de chaîne directe comme en PHP (echo "Bonjour $prenom $nom") est simple :
a) Cela aurait demandé une modification du parseur. Ici il n'en est rien, ce n'est donc pas une notion du langage, mais seulement un outil de la librairie standard, le langage ne se complexifie pas (Python se veut simple). Si demain la fonction format doit évoluer, le parseur ne sera pas touché. De plus en tant que méthode, elle peut être surchargée sans syntaxe particulière.
b) Cela évite de devoir introduire des chaînes interpolées et des chaînes sans (en PHP le " et le ' différencie ces deux types de chaîne). Python se veut éxplicite, donc on supprime cela (j'ai beaucoup rie à mes débuts en PHP quand j'ai écris echo "$nom est ".$nom; ce n'était pas du tout ce que j'attendais.
J'aime vraiment cette fonction format de python ;)
[0] http://docs.python.org/whatsnew/2.6.html#pep-3101-advanced-string-formatting
N'hésitez pas à corriger mon orthographe, c'est comme cela que j'apprend ;)
-
-
[^]Re: English vs other languages
Posté par Victor STINNER (page perso, ) le 08/11/2008 à 12:36. (lien). Évalué à 4.pourquoi faut-il écrire 3 fois 'nom' et 3 fois 'prénom'
Euh, c'était juste pour l'exemple :-) Pour montrer que Python3 autorise unicode partout : aussi bien dans les chaînes de caractères sans avoir à les préfixer par "u" (unicode), dans les noms de variables, dans les noms d'arguments, etc. Habituellement, j'utilise "Bonjour %s %s" % (nom, prenom) (compatible avec toutes les versions de Python) ou "Bonjour {0} {1}".format(nom, prenom) quand je hacke Python 2.6 ou 3.0 :-) En fait c'est faux, je n'écris jamais nom, mais plutôt name :-)
-
[^]Re: English vs other languages
Posté par wilk (Jabber id, page perso, ) le 06/12/2008 à 09:54. (lien). Évalué à 1.>>> from string import Template
>>> print Template('bonjour $nom $prenom').substitute(nom='archi', prenom='bald')
bonjour archi bald
-
[^]Re: English vs other languages
Posté par reno () le 06/12/2008 à 12:26. (lien). Évalué à 2.Parce que Python est mal fichu?
Désolé, mais je considère que la gestion des 'template string' est pas terrible dans plein de langage y compris Python.
En C, tu as printf: avantage les format string sont puissants, inconvenient: pas typesafe, les variables sont toutes regrioupées a la fin.
Pour moi l'idéal serait:
puts "salut %{nom} tu as %02d{age}\n";
la lisibilité de mettre les variables au milieu de la chaine et la possibiité d'avoir quelque conversion simple pour l'affichage comme printf permet.
-
-
[^]Re: English vs other languages
Posté par Sylvain Sauvage () le 08/11/2008 à 07:59. (lien). Évalué à 4.L’inversion du nom et du prénom, c’est :
— une erreur ;
— de l’espéranto ;
— une obligation dans Python 3 ;
— Kenobi Obi-Wan ?
-
-
[^]Re: English vs other languages
Posté par David Kremer (Jabber id, ) le 07/11/2008 à 21:23. (lien). Évalué à 2.Je pense qu'il vaut mieux utiliser l'anglais dans un cadre professionnel (opensource). Pour une application scolaire, le français suffit.
Le fait de gérer les identifiants avec des accents est rare dans le domaine des langage de programmation, c'est une première pour Python je crois.-
[^]Re: English vs other languages
-
-
[^]Re: English vs other languages
Posté par Laurent Pointal (page perso, ) le 08/11/2008 à 22:56. (lien). Évalué à 1.Tu peux faire des recherches sur les discussions qui ont amené à autoriser unicode pour les identifiants. Perso j'étais a-priori contre (et je pense continuer à me limiter aux jeu de caractères actuels), par contre les arguments de certains m'ont paru tout à fait recevables (ex typique, l'enseignement de l'informatique dans des écoles asiatiques, ou encore, l'utilisation d'identificateurs correspondant à des noms de données - genre des noms de colonnes dans des tables).
Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.