OVH Cloud OVH Cloud

PEP 3131: support des identificateurs non-ASCII

77 réponses
Avatar
Eric Brunel
Bonjour à tous,

Une discussion fait rage en ce moment sur c.l.py concernant le PEP 3131
qui propose d'introduire le support des caractères non-ASCII dans les
identificateurs en Python. Par identificateurs, on entend bien sûr les
noms des variables, fonctions, classes, méthodes, etc... définis par
l'"utilisateur" (il n'est pas question de traduire les mot-clefs ou la
librairie standard).

Certains ont fait remarquer à juste titre que conduire cette discussion
sur un newsgroup 100% anglophone risquait de donner un résultat
franchement orienté - les personnes lisant et postant sur ce groupe ont
forcément un niveau d'anglais au moins correct - et qu'il serait bon de
"forwarder" (en voilà du français qu'il est bon) la discussion sur des
newsgroups non-anglophones.

Je ne vais toutefois pas traduire l'intégralité du PEP. Voici par contre
les questions à l'origine de la discussion, que j'essaie de traduire le
plus fidèlement possible:
- Est-ce que les caractères non-ASCII doivent être supportés dans les
identificateurs? Pourquoi?
- Si cette possibilité était offerte, l'utiliseriez-vous? Dans quels cas?

Voilà: battons-nous!

(NB: pour éviter d'éventuelles incompréhensions, je préfère donner mon
avis tout de suite: je suis résolument contre ce PEP. J'ai essayé de faire
en sorte que ça ne se voie pas dans ce qui précède, mais on ne sait
jamais; je préfère être clair.)
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"

10 réponses

1 2 3 4 5
Avatar
MCI, Shadok Gouroudoudou
Re !

J'espère au moins que tu avais lu le titre avant le message...





--
@-salutations

Michel Claveau
Avatar
Eric Masson
jean-michel bain-cornu writes:

Commencer un projet en anglais, c'est bien à condition que ça aie un
sens dans le contexte de la vie du projet, et c'est très réducteur car
un grand nombre de développeurs ne sont pas à l'aise en anglais.


Ben, bosser dans l'info et ne pas être à l'aise en anglais, comment
dire... La majorité des docs sont dans cette langue et dans le domaine
technique elle est beaucoup plus concise que le français.

Dans ce cas, il faut lacher Python et passer à Windev.

Notons que si le projet devient international (0,001% des projets ?), il
ne devrait tout de même pas être si difficile de scanner les sources et
d'angliciser les identificateurs !


Même une pme peut se faire acheter par un groupe étranger dont la langue
administrative n'est pas le français et dans ce cas l'anglais est le
dénominateur commun le plus courant.

Jeter une appli parce que l'équipe informatique de l'acquéreur n'a pas
envie de se fader du code avec lequel elle n'est pas familière est déjà
quelque chose de commun, alors si en plus le dit code est imbitable du
fait d'une localisation abusive, ça va devenir courant...

--
Monsieur gagnerait en credibilite en etayant ses accusations;
Tel quel, c'est minable. Bah, yaka attendre - on verra bien
a quel gaz est gonflee cette baudruche.
-+-TC in : <http://www.le-gnu.net> - Le neuneu se déballonne -+-

Avatar
Eric Masson
MCI, Shadok Gouroudoudou writes:

J'espère au moins que tu avais lu le titre avant le message...


Ah oui la fameuse balise [Troll]... En gros, je vous traite de gros cons
réacs, mais je rigole...

Assume pleinement tes propos ou abstiens-toi.

--
VDS cd avec + de 12 000 photos de culs en tous genres
c'est mon best of que j'ai glané sur Internet. quel que soit le sujet,
j'ai ! il y a vraiment de tout...
-+- art in <http://www.le-gnu.net> - Tu le sens mon gros neuneu -+-

Avatar
hg
MCI, Shadok Gouroudoudou wrote:

Bonsoir !


Je ne connais pas de projet qui n'ait pas une chance de se retrouver
un jour devant un programmeur non-francophone.


La plupart des programmes de gestion : payé, facturation, comptabilité,
liasses fiscales, etc. Ces logiciels dépendent trop des lois et
règlementations françaises pour aller à l'étranger.


Et puis, il y a le cheminement inverse : des logiciels ou langages en
anglais qui adoptent des mots-clefs français, pour pouvoir être
diffusés en France. Par exemple VBA, qui est quand même un des langages
informatique les plus répandus en France, bien que d'origine U.S.,
grâce à son adoptions des mots clefs français (entre autres).









--
@-salutations

Michel Claveau


Si les Français peuvent apprendre l'Anglais ou autre, alors quelque chose me
dit que les non-Français peuvent apprendre le Français: qu'elle est la
proportion de Francophones dans l'Europe d'aujourd'hui ?

Et puis ... quel est le plus compliqué: apprendre une nouvelle langue ou
apprendre un nouveau métier? (pour prendre ton exemple de la compta) ...
étant comptable entre autre et trilingue (c'est peu je sais); je suis
convaincu que le premier est plus difficile.

Je suis aussi convaincu qu'une entreprise intelligente ne fonctionne pas sur
des bases de protectionisme ... car elle ne peut évoluer dans ces
conditions.

Pour reprendre mon exemple de la délocalisation des US vers l'Inde ...
dois-je peut-être préciser qu'il y à aujourd'hui 23 langues officielles en
Inde !

Comme, semble-t'il ( ;-) ), une majorité des Français (et je n'ai pas voté
comme eux), je suis pour l'identité nationale; mais ne mélangeons pas les
genres: l'informatique en Anglais ne peut pas être détrimentale ... de plus
un ingé qui ne parle pas l'Anglais a des soucis à se faire de toutes les
façons ... j'irai même plus loin en disant que c'est un avantage que
s'adapter de la sorte: même les ricains (et je vis chez eux) commencent
_vraiment_ à réaliser qu'imposer une culture ne peut fonctionner à terme.


Je discute avec ma télé en appuyant sur des boutons ... ça me va .... et je
discute avec le CPU de mon PC dans un sous-ensemble de la langue
Anglaise ... ça me va aussi ... par contre je peux pas voir un film
Français en Anglais (ex: les Visiteurs 3)

hg


Avatar
Encolpe Degoute
Salut à tous !

Je me demande si ceux qui refusent les caractères non-Ascii n'auraient
pas, quelque part, peur d'être débordé, ou dépassés, par des caractères
"étrangers".


Eh, oh!
Le troll c'est le vendredi.

Et ce pourrait être interprété au-delà du simple conservatisme, jusqu'à
une sorte de xénophobie (pour ne pas employer un mot encore pire).


Vous nous préparez un point godwin ?

Evidement, cela se passe au niveau du subconscient, voire de l'inconscient.

S'il y a des fans de Jung, de Freud ou de Lacan dans la salle...


En effet, ce genre de raisonnement frise l'inconscience.
Il n'apporte strictement aucun argument technique sur la proposition que
vous défendez tout en insultant au passage une bonne partie de
l'auditoire au sujet de leur capacité intellectuelle et de leur morale.


--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales

Avatar
Encolpe Degoute
Bonsoir !

Est-ce que les caractères non-ASCII doivent être supportés dans les
identificateurs? Pourquoi?


OUI !


NON !

Pour avoir du reprendre du code écrit en polonais, ça fait rire cinq
minutes de voir les trois quart des commentaires en polonais, par contre
le nom des variables dans une langue inconnue c'est une horreur pour
comprendre les algorithmes.

Que d'autres langages de programmation le fassent n'est à priori pas un
point qui plaide en faveur non plus.
Le langage naturel est utilisé pour communiquer par voie orale, puis par
extension par voie écrite pour restituer une communication (qu'elle soit
imaginaire ou réelle). Les languages de programmation sont utilisés pour
écrire des algorithmes sous forme de pseudo-code qui sera ensuite
traduit en langage machine pour être exécuté. Le langage naturel n'a
rien à faire dans du pseudo-code en dehors des commentaires d'usage pour
expliquer le déroulement de l'algorithme et les choix pris en compte
pour l'écriture de celui-ci.

En parlant de critère de lisibilité, je voudrais qu'en plus de pouvoir
écrire n'importe quel symbole l'interpéteur puisse comprendre les
raccourcis type SMS pour mes identifiants pour rendre le code plus concis.

Dans les exemples que vous citer il n'y a aucun gain de lisibilité à
utiliser les accents. Par contre autoriser les accents cela permettrait
au programmeur débutants de prendre encore plus de mauvaises habitudes
qu'il ne le font déjà.

Question subsidiaire: Que représente ce code PHP ?

nom = 'toto'
prenom' = 'dupond'
${mail.${nom}.${prenom}} = ''


--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales


Avatar
Bruno Desthuilliers
jean-michel bain-cornu writes:

Commencer un projet en anglais, c'est bien à condition que ça aie un
sens dans le contexte de la vie du projet, et c'est très réducteur car
un grand nombre de développeurs ne sont pas à l'aise en anglais.


Ben, bosser dans l'info et ne pas être à l'aise en anglais, comment
dire... La majorité des docs sont dans cette langue et dans le domaine
technique elle est beaucoup plus concise que le français.


+1

Dans ce cas, il faut lacher Python et passer à Windev.

Plutôt aller élever des chèvres en corrèze.



Avatar
Eric Brunel
On Wed, 16 May 2007 12:31:25 +0200, jean-michel bain-cornu
wrote:
A une époque, on a eu un mal de chien à obtenir à ce que les systèmes
puissent être en français, pour tout un tas de (mauvaises ?) raisons
qu'on retrouve peu ou prou aujourd'hui ici.


Mais là on parle du code. Pas de l'interface présentée aux utilisateurs.

Commencer un projet en anglais, c'est bien à condition que ça aie un
sens dans le contexte de la vie du projet, et c'est très réducteur car
un grand nombre de développeurs ne sont pas à l'aise en anglais.


Je ne sais pas pour vous, mais moi, je ne suis pas devin: je n'ai pas la
moindre idée d'où en sera mon projet en cours ne serait-ce que dans 5 ans
ni par qui il devra être lu/compris/maintenu.

Faire de l'anglais dans un contexte régional, voilà qui serait peut-être
considéré comme irresponsable...


(En parlant de contexte régional, comment il vont faire, les Bretons, avec
leur "c'h" dans les mots? Parce que ça n'a rien à voir avec un "ch" et le
remplacer par ça pourrait donner des contresens. Ca veut dire qu'il faut
accepter les "'" dans les identificateurs aussi? Et le pire, c'est que je
suis presque sûr qu'il doit y avoir d'autre cas aussi pourris dans
d'autres langues...)

Notons que si le projet devient international (0,001% des projets ?), il
ne devrait tout de même pas être si difficile de scanner les sources et
d'angliciser les identificateurs !


Je ne sais pas d'où sort ce 0,001%, mais ça me paraît *très* sous-évalué.
A moins d'un script jetable auquel on ne touchera plus jamais, je dirais
au contraire que la plupart des projets ont une forte chance un jour de se
retrouver entre les mains de personnes ne parlant pas la même langue que
les codeurs d'origine, que ce soit dans un contexte
industriel/propriétaire ou open-source, et ce pour cause de rachat,
out-sourcing, "open-sourcing" ou autre...

Quant à l'"anglicisation tardive", elle ne paraît pas vraiment réaliste
pour des projets importants, parce que beaucoup trop coûteuse: on parle
quand même de remplacer *tous* les noms de variables, fonctions, classes
et méthodes. Le code a beaucoup plus de chances de passer à la benne, ou
de devenir une boîte noire non maintenue parce que non-maintenable.


En fait, le seul cas qui me paraît pertinent pour l'acceptation des
caractères non-ASCII est le contexte de l'enseignement de la
programmation, en particulier pour les enfants: ça ne paraît pas très
réaliste d'exiger d'eux d'avoir des notions d'anglais correctes avant de
pouvoir taper une ligne de code. Mais même si ce PEP est accepté, je pense
qu'il serait sain d'avoir un moyen d'imposer le caractère "ASCII
seulement" au niveau des sources (que ce soit au niveau des
identificateurs ou ailleurs, avec le plus de possibilités de réglage
possible), qui me semble absolument indispensable dans un contexte
industriel.
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"

Avatar
Bruno Desthuilliers
Salut !

arguments concernant l'accessibilité du langage pour non-anglophones


Perso, je n'ai jamais utilisé cet argument, mais plutôt une augmentation
de l'accessibilité de Python sur des trucs extérieurs (librairies dans
d'autres langages, SGBD, applications externes, etc.)


Personne ne m'a répondu, sur la possibilité de connecter une classe sur
des enregistrements contenant des champs accentués,


Tu veux dire des nom de champs contenant des champs accentués ?

que l'on pourrait
considérer comme des propriétés de la classe :
c = client()
c.numéro = 'CL001'
c.nom = 'Beatnik'
c.prénom = 'Bruno'
c.téléphone = '+331234567890'



En ce qui me concerne, je ne mets pas plus de caractères accentués dans
mes noms de champs que dans mon code...

c = Customer(customer_id='CL001',
lastname='Beatnik',
firstname='Bruno',
phone_number='+331234567890'
)


Avatar
Bruno Desthuilliers
Salut à tous !

Je me demande si ceux qui refusent les caractères non-Ascii n'auraient
pas, quelque part, peur d'être débordé, ou dépassés, par des caractères
"étrangers".

Et ce pourrait être interprété au-delà du simple conservatisme, jusqu'à
une sorte de xénophobie (pour ne pas employer un mot encore pire).
____ ____ ____ ____ ____ ____ ____

/ __) (____) (____) (____) (____) (____) (__
|_| |_|
_ _ _ _ _
| | / | _ __ ___ (_)_ __ | |_ | |
| | | | | '_ / _ | | '_ | __| | |
|_| | | | |_) | (_) | | | | | |_ |_|
_ |_| | .__/ ___/|_|_| |_|__| _
| | |_| | |
| | | |
|_| ____ _ _ |_|
_ / ___| ___ __| |_ _(_)_ __ _
| | | | _ / _ / _` / / / | '_ | |
| | | |_| | (_) | (_| | V V /| | | | | | |
|_| ____|___/ __,_| _/_/ |_|_| |_| |_|
_ _
| |__ ____ ____ ____ ____ ____ __| |
____) (____) (____) (____) (____) (____) (____/

1 2 3 4 5