ruby, web April 5, 2006 9:52 am (Save post)
Nel mondo moderno sembra che finalmente ci stiamo adattando ad usare utf-8 come quasi-standard, sebbene questo si porti dietro un corredo di teorie basate sul sentito dire riguardo agli encoding ed ai character set, spesso con dimostrazione per giustapposizione.
Ad esempio utf-8 è compatibile con ASCII e quindi è a grandezza fissa e quindi non comprende tutti i caratteri UCS-4, piuttosto che java usa utf-16 perché è una codifica di dimensioni fisse che comprende tutti i caratteri anche gli ideogrammi.
Ora, questo post è solo per ricordare che, come al solito, abbiamo una visione terribilmente occidentale su Unicode.
Siccome il discorso su codifica/charset/collation/glifi/codepoint/caratteri è mooooolto al di là delle mie capacità di comprensione, posso provare a dare una versione elementare dei fatti per come li ho capiti:
- ci sono dei charset, insiemi di caratteri. Alcuni sono piccoli, come ASCII, altri hanno 4 miliardi di caratteri, come Unicode
- poi ci sono delle codifiche dei vari charset, utf-8/32/16BE/16LE sono tutte codifiche dello stesso charset ovviamente ottimizzate per scopi differenti
- Unicode è il prodotto delle Multinazionali Malvage, e quindi all’inizio faceva schifo, poi quando si sono resi conto che un giapponese/cinese/vietnamita/koreano usando Unicode non avrebbe avuto accesso ad alcune cose lo hanno cambiato
- come tutte le toppe messe ex post, la soluzione attuale è a dir tanto subottimale, ma funziona
- per essere felici in occidente basta supportare unicode, per essere felici in oriente pure, ma per essere corretti in oriente ci sono un fottio di altri charset e codifiche da supportare
- in giappone fanno dei port dei software per fargli supportare i loro encoding, ad esempio esistono vari emacs giapponesi. Una delle ragioni per cui esiste ruby è che perl non gestiva la codifica che serviva a matz
Ora, perché questo discorso? Beh, perché secondo me è interessante, e poi mi permette di introdurre il link ad un post su ruby-talk dove viene annunciata la disponibilità in inglese di nuovi capitoli della Ruby Hacking Guide e c’è la traduzione di una presentazione fatta da matz a YAPC::Asia.
Il collegamento è nel fatto che parrot/perl6 sarà, come python attuale, fondamentalmente basato su Unicode, mentre Rite/Ruby2.0 sarà basato su un concetto di totale indipendenza dalla codifica.
È evidente che è una soluzione per un problema al quale l’occidentale medio (ma neanche il cinese medio) neanche pensa, non per malvagità ma solo perché è fuori dal suo mondo.
Per concludere, un paio di link utili a capire il discorso su unicode:
Unicode Revisited, Han Unification, Unicode in Japan, TRON MultiLanguage Environment (sapevate che TRON è il sistema operativo più usato al mondo?)
E per concludere una citazione, sul fatto che alcune codifiche siano un po’ troppo stateful:
the Khmer area contains a pair of non-printing characters whose role was to switch between religious and non-religious mode

