Юлик написал про свою любимую тему последнего времени -- юникод. На этот раз он предлагает посмеяться то ли над Trac, то ли над Django. То ли над "теми, кто считает что в Python хороший unicode support".
Мне думается, что такой пост способен ввести многих в заблуждение и создать неверный миф, поэтому я хочу уточнить: в Питоне на самом деле хорошая поддержка юникода. Там есть:
\w действительно умеет соответствовать русским буквам, а не только [a-zA-Z]Другими словами, такая поддержка юникода многим распространенным языкам и не снилась.
Другое дело, что поддержка юникода в Питоне не идеальна. В первую очередь тем, что она не работает "сама" или "автоматически", а про нее приходится думать. И именно из-за этого люди в ascii-язычном мире часто делают софт на Питоне, который с другими языками не работает, потому что большую часть времени разработки они не в курсе, что он не работает :-). Так, кстати, случилось, и с Django: когда он только выпустился, там были места, где длина строки в utf-8 считалась как len(value) без предварительной раскодировки в юникод. Но зато из-за того, что это Питон, все эти места оказалось возможным просто починить. А не ждать много лет, когда, наконец, хоть кто-нибудь напишет всю нужную многоязычную инфраструктуру.
Надо сказать, что сам Юлик тоже хотел внести лепту в улучшение отношений Django с юникодом. Но его патч, к сожалению, покинули. Как это часто, к сожалению, в Django бывает.
Но как бы то ни было... Заявлять отстойность языка только на основании того, что на нем написана программа с багом (вот редкость-то!) -- это просто несерьезно, IMHBCO.
Комментарии: 11
15.06.06 12:16
По поводу PHP вы неправы. Там есть функции работы с Unicode-строками (в виде модуля с префиксом mb_*), причём стандартные вызовы PHP можно заменить на вызовы mb_* автоматически, штатными средствами.
PCRE тоже работает с Unicode-строками - есть специальный ключ. Другое дело, что PHP не делает это нативно и тут есть свои проблемы (например, функция basename, которая отделяет имя файла не будет нормально работать), но в PHP6 ситуация должна измениться.
15.06.06 12:26
+1
15.06.06 18:15
а в PHP6, если верить всё тому-же Julik'у будет как раз самая правильная из возможных поддержек Unicode
15.06.06 20:08
Это отрадно!
Кстати, к новой большой версии и Питон избавится от байтовых строк, останутся только unicode. Как раз то, к чему все и призывают.
16.06.06 12:56
Никогда не испытывал проблем с юникодом. Наверно живу в однобайтовом сером мире ASCII =)
17.06.06 19:47
В php5 действительно есть mb, только регулярные выражения в этой библиотеке реализованы в posix формате. Горе тому, кто решится это использовать.
Ждем php6.
18.06.06 09:07
ага, подождем-подождем php6 - а потом он окажется таким-же мыльным пузырем как и php5.
18.06.06 23:16
Ну ладно уж подстебнуться нельзя ;-)
9.12.06 16:49
2Climenty:
PRCE в PHP поддерживают Unicode. Для работы с Unicode можно и нужно использовать их, а не mb_ereg*
9.12.06 16:50
2Alex Zhukov:
что значит "таким же мыльным пузырём как и php5"? Что вам не понравилось в PHP5? В нём достаточно много изменений для смены цифры.
25.12.07 13:26
Насчет регулярных выражений в PHP. Если надо использовать UTF-8, то достаточно добавить после ограничителей модификатор u и будет вам счастье. Например:
u - должна быть именно маленькая u, а не большая. Вообще я вижу такую проблему - люди осуждают язык (например, PHP), не разобравшись с ним. По-моему, это можно делать только узнав его в совершенстве и поняв все его минусы и плюсы. А рассуждения о том, что он в чем-то плох обычно ведется некомпетентными товарищами, которые нахватались основ.
Это применительно не только к PHP, но и к другим языкам.