ЯИ>Я в своих проектах реализую склонения, а Дуров — нет.
ГСМная дизайнерщина не нужна. "Подписчиков: 123456"
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Здравствуйте, Marty, Вы писали:
ЯИ>>Я в своих проектах реализую склонения, а Дуров — нет.
M>Для всех поддерживаемых языков, а их ты поддерживаешь как минимум несколько десятков?
Я думаю, что имелся в виду русский — родной для и Явиста и для Дурова.
Здравствуйте, alpha21264, Вы писали:
ЯИ>>>Я в своих проектах реализую склонения, а Дуров — нет.
M>>Для всех поддерживаемых языков, а их ты поддерживаешь как минимум несколько десятков?
A>Я думаю, что имелся в виду русский — родной для и Явиста и для Дурова.
Логично добавлять универсальный механизм, работающий для всех языков, через небольшие пресеты в конфигурации для каждого из языков. Если Явь-истъ наколбасил склонения для одного или двух языков, но не сделал универсальной поддержки любого языка — Явь-истъ — плохой программист.
Если Дуров просто не запаривался по этому вопросу — это не значит, что Дуров — плохой программист.
Здравствуйте, Marty, Вы писали:
M>>>Для всех поддерживаемых языков, а их ты поддерживаешь как минимум несколько десятков?
A>>Я думаю, что имелся в виду русский — родной для и Явиста и для Дурова.
M>Логично добавлять универсальный механизм, работающий для всех языков...
А ты вообще в своей жизни видел хоть один "универсальный механизм, работающий для всех языков"?
Универсально неработающий я видел, но я спрашиваю про "универсально работающий".
Ты вообще знаешь, какие на нашей планете языки бывают?
Евреи пишут справа налево, японцы и китайцы сверху вниз,
у нас падежи, у противных англичан — расположение слов,
у испанцев — акценты и склеивание глаголов с дополнением.
Ну успехов тебе с "универсально работающими механизмами".
Здравствуйте, wl., Вы писали:
wl.>насколько я знаю, Павел никогда и не программировал, он продает. Программирует его брат
А по моим сведениям Павел вполне себе программировал раньше. Сейчас наверное уже нет.
Здравствуйте, alpha21264, Вы писали:
M>>Логично добавлять универсальный механизм, работающий для всех языков...
A>А ты вообще в своей жизни видел хоть один "универсальный механизм, работающий для всех языков"? A>Универсально неработающий я видел, но я спрашиваю про "универсально работающий". A>Ты вообще знаешь, какие на нашей планете языки бывают? A>Евреи пишут справа налево, японцы и китайцы сверху вниз, A>у нас падежи, у противных англичан — расположение слов, A>у испанцев — акценты и склеивание глаголов с дополнением.
Нет проблем сделать для каждого из случаев использования, типа данного
A>Ну успехов тебе с "универсально работающими механизмами".
Могу сделать для тебя, раз ты сам не осилил, но, само собой, это не бесплатно
Здравствуйте, alpha21264, Вы писали:
A>Ну успехов тебе с "универсально работающими механизмами".
Вообще, судя по этому твоему тексту, ты тоже не умеешь программировать.
Для данного случая всё делается тривиально. Заводятся диапазоны величин, внутри диапазонов заводятся правила, всё сводится к нескольким вариантам текста.
Точно так же производится анализ для других случаев/фраз.
Здравствуйте, Marty, Вы писали:
M>Для данного случая всё делается тривиально. Заводятся диапазоны величин, внутри диапазонов заводятся правила, всё сводится к нескольким вариантам текста.
Да? Для тебя-то русский родной? В каком диапазоне будет 21? А 31? А 11?
Надеюсь, что ты не очень дорого берешь за свою работу...
Здравствуйте, VladFein, Вы писали:
M>>Для данного случая всё делается тривиально. Заводятся диапазоны величин, внутри диапазонов заводятся правила, всё сводится к нескольким вариантам текста.
VF>Да? Для тебя-то русский родной? В каком диапазоне будет 21? А 31? А 11?
В диапазоне N%10 == 1
VF>Надеюсь, что ты не очень дорого берешь за свою работу...
Здравствуйте, Marty, Вы писали:
M>>>Для данного случая всё делается тривиально. Заводятся диапазоны величин, внутри диапазонов заводятся правила, всё сводится к нескольким вариантам текста.
VF>>Да? Для тебя-то русский родной? В каком диапазоне будет 21? А 31? А 11?
M>В диапазоне N%10 == 1
VF>>Надеюсь, что ты не очень дорого берешь за свою работу...
M>Ещё один ПТУ-шник от программирования отметился
Не надо себя так строго, с кем не бывает.
Но с 11 ты, конечно, прокололся. Но дурак — Дуров... Прошу прощения за каламбур
Здравствуйте, graniar, Вы писали:
M>>В диапазоне N%10 == 1
G>И даже в руском сразу косяк
G>11 подписчиков G>21 подпсичик
Потому что я не занимался аналитикой этого вопроса, а просто на скорую руку привёл пример правила. Но тому, кто хочет это реально реализовать, да, придётся несколько дней заниматься исследованием вопроса.
G>А что уж говорить про другие языки. В том же кхмерском, к примеру, 6 праммуй = пятьодин.
Это всё можно формализовать, и не слишком сложно. Надо просто выделить недельку, может две, на этот вопрос.
Здравствуйте, Marty, Вы писали:
M>Для данного случая всё делается тривиально....
Мне кажется, что ты никогда не занимался локализацией. В ином случае, у тебя бы от одного этого слова начало ломить локти, и ты просто не стал бы ничего писать в этой теме.
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Marty, Вы писали:
VF>>Но с 11 ты, конечно, прокололся
M>Не было цели сделать полностью рабочий код, была цель показать идею
Цель была — показать, что "Дуров не умеет программировать", я — ПТУшник, а ты — ма-ла-дец.
А по делу — писать десятки if-then-else это так себе идея.
Имея AI chip прямо на телефоне, спроси его как будет по-русски 11 "пользователь". Это — идея! Дарю. Безвозмездно.
Здравствуйте, VladFein, Вы писали:
VF>А по делу — писать десятки if-then-else это так себе идея.
Не надо писать десятки if-else
Достаточно один раз создать механизм, по которому будет выбираться нужно слово, и описать данные для каждого языка для работы этого алгоритма.
VF>Имея AI chip прямо на телефоне, спроси его как будет по-русски 11 "пользователь". Это — идея! Дарю. Безвозмездно.
Здравствуйте, Marty, Вы писали:
VF>>А по делу — писать десятки if-then-else это так себе идея.
M>Не надо писать десятки if-else M>Достаточно один раз создать механизм, ..., и описать данные для каждого языка для работы этого алгоритма.
Отлично!
Ты, наверное, начальник?
В это предложение можно подставить любую задачу, и тех задание готово! Выполняйте!
Здравствуйте, Marty, Вы писали:
M>Логично добавлять универсальный механизм, работающий для всех языков, через небольшие пресеты в конфигурации для каждого из языков. Если Явь-истъ наколбасил склонения для одного или двух языков, но не сделал универсальной поддержки любого языка — Явь-истъ — плохой программист.
Блин, да я безо всяких склонений опасаюсь вот так просто работать с текстом на Unicode. Просто потому что не представляю полного набора фич сего стандарта. Тут уже писали про написание справа-налево. Только вот какие символы Unicode всё это регулируют, полный набор — я не представляю. Как ставят меня в тупик ситуации, когда в одной строчке будут перемешаны кусочки с написанием слева-направо, и справа-налево.
Для меня ещё открытием было, что там в Unicode существуют halfwidth и fullwidth forms.
Плюс есть фишка, что в некоторых языках применяются свои собственные закорючки для десятичных цифр. В арабском и тайском — это точно, что я знаю. И может ещё в каких, про которые я не знаю.
И вот представь себе задачу написать функцию isdigit() для Unicode символа. Сразу задаёшься вопросом — как она должна работать для символов, помимо обычных стандартных арабских 0-9. Тех же арабских и тайских? А ещё если вспомнить, что Unicode символ может задаваться сразу комбинацией нескольких codepoint-ов, становится ещё веселее.
Или вот например, ты создаёшь язык программирования, на котором идентификаторы могут быть произвольными unicode строчками... Просто чтобы можно было бы обозначать переменные как тебе удобнее. Встаёт вопрос — а эти идентификаторы должны быть case sensitive или insensitive? Или даже не идентификаторы, а имена файлов в операционке. Тут-то и начинается. Задумываешься над вопросами — а вообще на всех ли языках в Unicode такое в принципе есть: различие регистров? Вряд ли. Это может в русском, английском есть. Но я не могу поручиться уже за все европейские языки, т.к. я их не знаю. А уж про иероглифы, иврит, арабские, и массу других?
И почему сразу только про отличие регистров мы говорим? Отчего бы в других языках не было бы таких особенностей, которые нужно обязательно принять во внимание, когда прописываешь правила для именования идентификаторов? Но ты про такие особенности даже и не слыхивал. Тебе что, штудировать весь стандарт, чтобы дать определенный ответ?
Одних только видов пробелов в Unicode навалом.
Здравствуйте, VladFein, Вы писали:
VF>Отлично! VF>Ты, наверное, начальник? VF>В это предложение можно подставить любую задачу, и тех задание готово! Выполняйте!
Упаси господь от таких начальников. Они сначала будут требовать ахинею. А потом, когда получат бредовый код, ещё будут предъявлять претензии, почему оно работает не так, как им видится в своём воспалённом сумеречном воображении. Сами толком не знают, чего хотят. Но всё должно быть готово уже вчера.
Здравствуйте, jamesq, Вы писали:
M>>Логично добавлять универсальный механизм, работающий для всех языков, через небольшие пресеты в конфигурации для каждого из языков. Если Явь-истъ наколбасил склонения для одного или двух языков, но не сделал универсальной поддержки любого языка — Явь-истъ — плохой программист.
J>Блин, да я безо всяких склонений опасаюсь вот так просто работать с текстом на Unicode. Просто потому что не представляю полного набора фич сего стандарта. Тут уже писали про написание справа-налево. Только вот какие символы Unicode всё это регулируют, полный набор — я не представляю. Как ставят меня в тупик ситуации, когда в одной строчке будут перемешаны кусочки с написанием слева-направо, и справа-налево.
По склонениям — не проблема. Механизм сделал, написал конфиги — и всё. А как в конфигах склонения забиты — это забота лингвиста, чтобы они там правильно были сделаны.
J>Плюс есть фишка, что в некоторых языках применяются свои собственные закорючки для десятичных цифр. В арабском и тайском — это точно, что я знаю. И может ещё в каких, про которые я не знаю. J>И вот представь себе задачу написать функцию isdigit() для Unicode символа. Сразу задаёшься вопросом — как она должна работать для символов, помимо обычных стандартных арабских 0-9. Тех же арабских и тайских? А ещё
Есть. Я в курсе. Не вижу проблемы. Зависит от от задачи, которую ты хочешь решить. И в Юникоде есть всякие разные атрибуты у символов, и есть системы, в которых юникод поддерживается, и можно получить атрибуты символа, в том числе, является ли он цифрой.
J>если вспомнить, что Unicode символ может задаваться сразу комбинацией нескольких codepoint-ов, становится ещё веселее.
Не каждый. Это относится ко всяким диакретикам. Некоторые алфавиты основаны, например, на латинице, и имеют в своей базе подобные символы, которые имеют свой отдельный код поинт в Юникоде, но могут быть представлены комбинацией базового латинского символа и диакретиков. В винде для этого есть функции, и с этим нет никаких проблем. Можно разложить на базу с диакретиками, можно из базы с диакретиками собрать обратно. Я немного запаривался с выводом юникодного текста, немного в курсе.
J>Или вот например, ты создаёшь язык программирования, на котором идентификаторы могут быть произвольными unicode строчками... Просто чтобы можно было бы обозначать переменные как тебе удобнее. Встаёт вопрос — а эти идентификаторы должны быть case sensitive или insensitive? Или даже не идентификаторы, а имена файлов в операционке. Тут-то и начинается. Задумываешься над вопросами — а вообще на всех ли языках в Unicode такое в принципе есть: различие регистров? Вряд ли. Это может в русском, английском есть. Но я не могу поручиться уже за все европейские языки, т.к. я их не знаю. А уж про иероглифы, иврит, арабские, и массу других?
В юникоде для каждого символа есть куча признаков, в тч upper/lower, и ссылка на соответствующий парный символ, если он существует.
В стандарте Юникод каждый кодовый пункт (code point) имеет свойство регистра (uppercase/lowercase), определяемое в базе данных символов Юникода (Unicode Character Database). Пару (строчную-прописную) находят, используя официальные таблицы соответствия символов
В винде это есть из каропки через винапи, во всяких линупсах должно быть через i18 или как-то так. Самому колхозить нет вообще никакого смысла. Я на эту тему колхозил только, когда мне нужно было транслитерировать в латиницу, с учётом различных схем транслитерации.
J>И почему сразу только про отличие регистров мы говорим?
Я не знаю, почему ты завёл речь про отличие регистров
J>Отчего бы в других языках не было бы таких особенностей, которые нужно обязательно принять во внимание, когда прописываешь правила для именования идентификаторов?
Всё можно описать правилами, сделать парсер правил, и создать правила для интересующих тебя языков. Если правила для языка у тебя нет, идёшь по захардкоженной схеме. Всё просто.
J>Но ты про такие особенности даже и не слыхивал. Тебе что, штудировать весь стандарт, чтобы дать определенный ответ?
Родной, я забыл по этой теме больше, чем ты когда-либо знал.
Здравствуйте, Marty, Вы писали:
M>Потому что я не занимался аналитикой этого вопроса, а просто на скорую руку привёл пример правила. Но тому, кто хочет это реально реализовать, да, придётся несколько дней заниматься исследованием вопроса.
G>>А что уж говорить про другие языки. В том же кхмерском, к примеру, 6 праммуй = пятьодин.
M>Это всё можно формализовать, и не слишком сложно. Надо просто выделить недельку, может две, на этот вопрос.
В хорошем делают фичи, которые нужны пользователям. Прям вот нужны, и за которые они готовы платить.
А в плохом смотрят на склонения и следят, чтобы правильно написать "подписчиков", и на другие вещи, которые никого не волнуют.