[python] Co takhle identifikátory s diakritikou?

Pavel Reznicek pavel.jindrich na tiscali.cz
Pátek Srpen 5 01:39:34 CEST 2005


Ahoj všichni,

co byste tomu řekli, kdydby Python dovoloval psát také identifikátory - 
jména proměnných, funkcí a tříd - v národních kódováních a v unikódu?

Třeba takhle:

################################################

#!/usr/bin/env python
# -*- coding: utf8 -*-

žlutá   = u'žluťoučký'
zelená  = u'zeleňoučký'
modrá   = u'modroučký'
červená = u'červeňoučký'
hnědá   = u'hněďoučký'

class Kůň():
   def __init__():
     self.Barvička = žlutá
   def JeŽluťoučký():
     return self.Barvička == žlutá

# ... nějaký další kód
	
NovýKůň = Kůň()

if NovýKůň.Barvička == hnědá:
   print u'Nově najatý kůň vypadá docela zdravě.'
elif NovýKůň.JeŽluťoučký():
   print u'Nově najatý kůň je příliš žluťoučký '\
     'a pěje ódy na maďarské lány!'
else:
   print u'Nově najatý kůň je nějak '\
     'nepřirozeně %s a je úplně zticha!'%(NovýKůň.Barvička)

################################################


Nevím přesně, jak by to šlo uskutečnit, ale kromě zajetých stereotypů
v některých programmovacích jazycích by to snad nic vážně nerozhodilo.

Snad jen někteří nacionalisté by se snažili do světově používaných 
balíčků protlačit národní slova či znaky. To by ovšem i nadále nepatřilo 
k dobré etiketě. Jak si takový americký programátor může napsat třeba Ů 
s kroužkem, když i Čechům to občas dělá potíže? Nu, to je snad mimo diskusi.

Ale když už někdo píše do _soukromého_ kódu řetězce či komentáře
v národním jazyce, proč by nemohl použít národní znaky také
v identifikátorech, do nichž stejně patlá všelijak oholenou a pokosenou 
mateřštinu (v případě češtiny bez diakritiky)?

Obecně mám za to, že počítače a programy by se měly (pokud možno) spíše 
přizpůsobovat lidem, nikoliv obráceně.

A teď vezměme další věc - napadlo už někoho vytvořit programovací jazyk 
na jiném lidském jazyce než na angličtině? Co třeba latina, esperanto, 
interlingva či lojban?

Angličtina pochopitelně vede díky mocenské a ekonomické situaci po 2. 
světové válce (která umožnila rozvoj počítačů právě v USA). Ale 
angličtina je snad jediný (živý a přirozený) indoevropský jazyk, který 
nepotřebuje diakritiku (nebo unicode). Či se mýlím?

Vždyť podle počtu mluvčích by se mělo programovat v čínštině! A mělo by 
to své výhody - tolik jednoznakových identifikátorů a klíčových slov 
pohromadě jste ještě neviděli ;-D

No nic, to jsem trochu ulítl od thematu v této noční době.

Pokud by se našlo víc lidí, kteří by si přáli identifikátory
s diakritikou, popřípadě v jiných zemích, co myslíte, mohli bychom 
prosadit nějaký PEP (Python Enhancement Proposal = Příslib rozšíření 
Pythonu)?

Jen na okraj - i pouhý mrkvo$oftí VisualBasic 5.0 už uměl identifikátory 
s diakritikou (stýská se mi po nich) - nebuďme tedy pozadu ;-)


Pavel Řezníček



Další informace o konferenci Python