Sign in or Join FriendFeed
FriendFeed is the easiest way to share online. Learn more »
псы в рапиде
utf 8 - Why does modern Perl avoid UTF-8 by default? - Stack Overflow - http://stackoverflow.com/questio...
первая половина про Perl, зато вторая — чисто про Unicode. - псы в рапиде
They are not \p{Lowercase_Letter}, despite being both \p{Letter} and \p{Lowercase} - псы в рапиде
Вообще ответ эпический, в смысле формата тоже. - 9000
Code that assumes you can remove diacritics to get at base ASCII letters is evil, still, broken, brain-damaged, wrong, and justification for capital punishment. - אלף
Чёрт, если бы я прочитал это полтора года назад... :) - אלף
странно, парень приводит кучу примеров того, как новые дефолты сломают старый код, но почему-то ему не приходит в голову вариант применять новые дефолты только для помеченного как новый кода, и чинить старый по мере возникновения проблем. Почему нельзя сделать для его boilerplate алиас типа use utf8_everywhere? - arty
"парень", гы. "почему-то ему не приходит в голову", гы-гы. "Почему нельзя", гы-гы-гы. - псы в рапиде
Я фанат людей, которые своим обширным умом всего за 7 минут strike to the heart of the problem! - псы в рапиде
короче. во всех узлах AST делаем флажок "use_utf8_everywhere", я правильно понял? - псы в рапиде
нет, мысль была такая: для кода в файле, в котором присутствует use_utf8_everywhere умолчанием становится utf8 для всего. Если программист включил этот режим, но использует старые привычки типа [a-z], сам виноват. В подключенных старых библиотеках без use_utf8_everywhere умолчания старые. Могут вылезти проблемы от юникодных строк, переданных в неюникодный код, но если ему так важны подробности реализации строк, нужно его или чинить или искать правильную библиотеку. - arty
мне, честно говоря, остаётся только руками развести. - псы в рапиде
вот видимо поэтому язык, который используют десятки миллионов людей, и написан кем-то другим, кто _не_ знает, как включить везде utf-8, и при этом не использовать выражения типа "сам виноват", "могут вылезти проблемы" или "нужно чинить или искать правильную" - псы в рапиде
насильно мил не будешь. Я в своё время успешно перевёл пехапешный проект на юникод, починив по пути три библиотеки. Если в пятом перле для юникода нужно особенно активно плясать с бубном, сожалею. Удивительно, если в перле с этим хуже, чем в пехапе. Питон вон вроде тоже отлично себя с юникодом чувствует. - arty
Короче. Том Кристиансен (!) говорит: "It is way way way more complicated than people pretend. I’ve thought about this a huge, whole lot over the past few years. I would love to be shown that I am wrong. But I don’t think I am." - псы в рапиде
define "успешно". Я на джаве собрал примерно половину тех проблем, о которых написано, и искренне рад, что не собрал вторую. И это в джаве, где юникод таки насквозь с самого начала. - אלף
например, в питоне, который весь из себя стройный и компактный и в котором unicode как тип данных есть издревле, включение поддержки юникода по умолчанию произошло в версии 3, ломающей обратную совместимость. - 9000
если честно, мне почему-то кажется, что Том Кристиансен подумал о том, что можно сделать флажок "ЗДЕСЬ_ФСЁ_ОКЭЙ", и видимо решил, что это не сработает. я не понимаю, почему некоторые люди не дают другим людям совсем уж небольшого, крохотного кредита доверия, особенно если они его явно заслуживают. - псы в рапиде
кстати, для избавления от иллюзий, что в каком-то языке с юникодом "всё просто" помогает прочтение референса к ICU, который хоть и на плюсах, но в каком-то смысле language-neutral. - псы в рапиде
Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them.— Laurence J. Peter, Peter's Almanac - אלף
вообще это один из простых способов меня глубинно взбесить. - псы в рапиде
между тем, даже в джаве юникод кривой. char соответствует не честному unicode codepoint, а utf-16 символу, поэтому почти все методы будут криво работать на символах снаружи BMP. - zee
то есть, методы будут работать нормально, но будут возвращать совершенно неочевидные вещи - zee
^^^ такая же хрень и в питоне, и я на это один раз наступил. там, впрочем, честно написано про символы outside BMP. - 9000
в джавадоках тоже написано, но кто же их читает - zee
а я правильно понимаю, что критерий "успешной поддержки utf-8 в пыхе" — это когда strlen(uppercase("бля")) возвращает 3, а не 4? - псы в рапиде
@arty, вариант use_utf_everywhere для пятого перла, который работает в большинстве случаев, сделать просто, и у многих он включён в шаблоны. я, например, использую uni::perl им. Вовы Перепелицы. а в эпическом комменте tchrist как раз описаны исключительные ситуации. ну да, их типа много. - Alex Kapranoff
@squadette, популярный тип рассуждений «здесь настолько сложно предусмотреть все исключения, что лучше и не пытаться» тоже в общем должен глубинно бесить. tchrist в данном случае демонстрирует как раз его. - Alex Kapranoff
@kkapp, ты довольно точно описал моё впечатление от того комментария. Спасибо за ответ про рабочие варианты. @squadette, критерий успешной поддержки: в приличных размеров проекте все нужные буквы рисуются как надо, «битых» символов нигде не видно. Возможно, нам просто повезло не хотеть того, от чего возникают типовые глюки: менять регистр символов, поддерживать несколько разных денормализованных форм, сравнивать юникодные строки. Как-то так вышло, что и без этих совершенно необходимых вещей весь наш код прекрасно работал. - arty
я не понял вообще тогда, что именно вы делали с utf-8. Вы принимали строки из браузера, клали их в базу и показывали потом в HTML? - псы в рапиде
без тех трёх опасных операций можно делать очень и очень многое - arty
я не понимаю, что скрывается за этой формулировкой. - псы в рапиде
а по-настоящему хотите? © попробуйте подмешать в обычный алфавитный текст (латынь, кириллицу) какого-нибудь иврита и арабских, и поискать по тексту, повыдергивать подстроки и проч... похоже, упомянутые выше десятки миллионы пользователей имеют дело с упрощенным текстом и до настоящего секса по телеграфу никогда не доходили... «а извозчики на что?» - A. T.
@silpol они не сравнивали. То есть не искали. - אלף
мы не сравнивали в пхп. И поиском у нас занимался не пхп, а база. - arty
тогда я не понимаю, что означает " Я в своё время успешно перевёл пехапешный проект на юникод, починив по пути три библиотеки." Мне это представляется как "я успешно провожу научные и инженерные расчеты", если речь идёт о том, чтобы померять, сколько стоит лист фанеры 60см x 1м :-\ - псы в рапиде
Отдельно мне непонятно тогда, на основании чего именно Вы даёте Тому Кристиансену советы на тему того, как поддерживать юникод в Перле :-\ - псы в рапиде
Я не даю Тому Кристиансену советов. Я обсуждаю хорошо описанный @kkapp типа рассуждений Тома. Заодно выяснилось, что несмотря на все описанные Томом проблемы существуют устраивающие многих простые решения. - arty
Мои слова про проект на пхп означали вот что. В настройках пхп был установлен флаг, включающий для всех строковых операций режим работы с мультибайтными символами. В идеальном варианте этого было бы достаточно, только в html-шаблоне кодировку нужно было бы исправить и кодировку подключения к базе изменить. Надеюсь, вы не станете спорить, что изменение настроек — это идеальный вариант перехода на юникод? В неидеальном мире появились проблемы в нескольких местах, включая внешние библиотеки, где для работы с массивами байт использовались строковые операции, что и было исправлено. Я не заявляю, что эти сравнительно простые действия делают меня экспертом по юникоду. Я говорю, что есть пример того, что для перевода скриптов на юникод не требуются десятки тысяч человекочасов. - arty
<хныыыык-хныыыыык> - псы в рапиде
я, честно говоря, подозревал, что дело всего лишь в т. н. "мультибайтных символах", whatever it is. Но вера в людей, вера в людей… - псы в рапиде
Я, кажется, уже писал: Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them.— Laurence J. Peter, Peter's Almanac - אלף
"Я НИПАНИМАЮ ЗОЧЕМ ВЫ ТУТ НОКРУТИЛИ МАНАД???? ВЫ ЗОДРОТЫ ШТОЛЕ?????? Я НА ПЕТОНЕ НОПЕСАЛ ЧТЕНЕЕ ФАЙЛА И ВСЁ ОК!!!!111" - псы в рапиде
@alf, да в этом треде так устроено всё, что хорошую вещь можно и трижды повторить. - псы в рапиде
@squadette, а что должен сделать человек, чтобы не разочаровать вас, говоря "я перевёл проект на юникод"? - arty
такие люди уже знают, как не разочаровать меня. - псы в рапиде
окей, ваш фрф — ваши правила, как отвечать на вопросы - arty
@arty я переведу, наверное: формулировка «я перевёл проект на юникод» не значит вообще ничего. Для этого, видимо, и правда достаточно одной настройки. Поэтому «не разочаровать имярека, говоря "я перевёл проект на юникод"» в общем случае невозможно: говорить о плохо определённых действиях и сравнивать хорошо изученные проблемы с плохо определёнными проблемами, не глядя сваленными на базу — несколько некорректно. - אלף
@alf, спасибо. - arty
¤ю/ 2 > B = 5 ? > = 8 < 0 N , 7 0 G 5 < = C 6 = > 1 K ; > 4 5 ; 0 B L A 8 A B 5 < C = 0 A B > ; L : > A ; > 6 = C N , G B > 5 9 = 8 : B > , : @ > < 5 = 5 A : > ; L : 8 E 3 5 = 8 5 2 , ? > ; L 7 > 2 0 B L A O = 5 < > 6 5 B ? 5 : 0 @ A B 2 > (N = 8 : > 4 ) > : 0 7 0 ; > A L E C 6 5 , G 5 < 1 > ; 5 7 = L (< = > 6 5 A B 2 > = 5 A > 3 ; 0 A C N I 8 E A O : > 4 8 @ > 2 > : )! - мейстер Микал Миндшенти
ну просто это же адски интересная проблема — представление живых человеческих языков в компьютерном виде. это слияние истории человеческой, истории технологической, текущих ограничений технологии, обратной совместимости с накопленным корпусом кода и текстов, будущего развития технологии на все уровнях, вопросов natural language processing, типографики, традиций и ещё десятков вопросов. - псы в рапиде
на этом фоне влезать в тред со свежей новостью о том, что у кого-то там на пыхе "все работает без извращений" — ну ёб же твою мать, мальчик. как это офигительно интересно! как мы все рады! мы с интересом узнаем, что ваши сишные байндинги теперь знают, что байт не равен символу. ох ты господи! крутяк-то какой. - псы в рапиде
ну пожалуйста. "Что? Что? Мне скучно! Говорите интереснее!" (c) romochka - псы в рапиде
проблема очень интересная, и я с удовольствием дочитал комментарий Тома до конца. А потом я отмотал страницу по ссылке на начало, и решил, что автор темы просит простой инструмент для установки разумных значений по умолчанию. В этом контексте ответ Тома выглядел уже не так хорошо. Сейчас я понимаю, что влез обычными проблемами разработчика в тред восхищения сложностями юникода. Получилось неуместно, извините. - arty
@arty я прямо вижу эту простую проблему: "I wonder why most modern solutions built using Perl don't enable UTF-8 by default. <skipped> Why? Are there some reasons to avoid UTF-8 in modern Perl projects in the year 2011?" Какой простой инструмент? Какие разумные значения? - אלף
"обычные проблемы разработчика". не то что мы, задроты™ - псы в рапиде
чем собачиться, полюбуйтесь лучше на живой пример: http://nedbatchelder.com/blog... 8-bit-transparent != unicode-ready, alas. - 9000
этот случай описан в тексте Кристиансена, не понимаю, чем тут "любоваться". - псы в рапиде