Portál AbcLinuxu, 30. dubna 2025 21:17
Co takhle icu4r? Myslim ze uz nyni toho umi nekolikrat vice, nez slavna nativni unicode podpora v Pythonu. Nevim co si vlastne pod pojmem Unicode podpora predstavujete - jestli pouze to co je nativne v Pythonu (moc toho neni), tak hodne z toho umi Ruby nativne taky.
Info pro ostatni: osobne se snazim uz nekolik mesicu dokopat k dodelani vlastnimu icu bindingu - zatim nazvaneho libunicode-ruby, ktery bude co nejlepe zaintegrovany a bude tedy pracovat primo se Stringama, atd.. Snad pristi mesic konecne vydam prvni verzi...
Akorat, ze to vase "upozorneni" bych spis nazval utokem. Bohuzel jste tentokrat trochu minul...
Zacnete s tim, ze si prectete, co to vlastne je podpora unicode. Doporucuju zacit dokumentaci ICU. To vas tak na tyden zamestna. Potom mozna pochopite nasledujici:
* Na verzi 1.0, ktera bude umet vsechno co ICU, se projekt dostane po nekolika mesicich/letech vyvoje (0.1.0 znaci hlavne to, ze z icu podporuje desetinu funkcnosti).
* Protoze ICU umi vsechno, wrapper nemusi delat temer nic, takze chyby se velice jednoduse odladi a hlavne otestuji - testuje se pouze wrapper.
* I verze 0.1.0, ktera pouziva ICU, je nekolikanasobne lepsi, nez nativni podpora unicode v Pythonu.
* Nativni podpora unicode v Pythonu z pohledu ICU vubec nic neumi - dalo by se to definovat i tak, ze po srovnani s ICU se jevi jako temer nepouzitelna.
* Hodne z toho, co Python povazuje za podporu unicodu, lze v Ruby vyresit jiz davno iconvem a pomoci regularnich vyrazu (ktere umi UTF-8).
"...jak dolepit Unicode do Ruby namísto toho, aby to bylo v jazyce..."
Hmm, zajimave je, ze UString v icu4r (a jeho konverze ze Stringu) je reseny temer stejne jako v Pythonu (pouze toho umi 10x vice). Doufam ze jste tim nechtel naznacit, ze je Unicode do Pythonu dolepene.
Take si zkuste precist Why Python Unicode Sucks, kde je naznacen problem, kvuli kteremu jsem ja volil koncept uplne integrace se Stringem, misto specialniho unicodoveho stringu. Diky tomu, ze je Ruby plne objektovy jazyk, si totiz muzu dovolit Ruby rozsirit pomoci knihovny tak, ze to bude vypadat, jako normalni soucast jazyka a nemusim pridavat dalsi syntaxy.
Kdyz se dale zkusite podivat do zdrojaku Ruby, zjistite ze vsechny nativni typy v Ruby jsou delane stejnym zpusobem jako typy, ktere vytvori externi knihovna. Tzn. ze naloadovani icu4r ma temer stejny efekt, jako kdyby se podpora unicodu pridala primo do jazyka. Mozna potom konecne pochopite k cemu je ciste objektovy jazyk, a proc ho nekdo prosazuje.
"Určitě bych se na tohle spolehnul, kdybych chtěl něco vážného dělat."
Osobne se spoleham na svoji knihovnu (ktera ma verzi 0.15) - uz mi mnoho mesicu bez problemu beha na stovce serveru.
Take si zkuste precist Why Python Unicode SucksA potom Python Unicode Doesn't Really Suck od toho sameho autora :).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.