The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Сравнение эффективности 20 языков программирования, opennews (??), 03-Янв-24, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


9. "Сравнение эффективности 20 языков программирования"  –17 +/
Сообщение от наука_кандидатов (?), 03-Янв-24, 11:19 
C и C++ сразу отлетают в таком случае, поскольку вообще никак не умеют в юникодные строки. Задача "оставить в строке только буквы алфавитов X и Y" на этих языках нерешаема.
Ответить | Правка | Наверх | Cообщить модератору

13. "Сравнение эффективности 20 языков программирования"  –10 +/
Сообщение от пох.. (?), 03-Янв-24, 11:26 
за такую задачу надо сразу бить ее постановщика лопатой по хлебалу.

(в одном интересном языке принято записывать звуки, отсутствующие в алфавите, с помощью апострофа. Догадываешься что происходит при попытке ввести мои паспортные данные в такой вот хрени?)

Ответить | Правка | Наверх | Cообщить модератору

30. "Сравнение эффективности 20 языков программирования"  +9 +/
Сообщение от qetuo (?), 03-Янв-24, 11:42 
О как. А libicu на чем написана, напомните?
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

124. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (124), 03-Янв-24, 13:41 
Которая зачастую и используется во всяких других решениях чтобы работать нормально, в т.ч. для SQLite для нормального текстового поиска приходится пересобирать с ней
Ответить | Правка | Наверх | Cообщить модератору

141. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (4), 03-Янв-24, 14:16 
ICU это единственная адекватная реализация юникода. И, кроме того, универсальная. А так, на каждой проприетарной платформе свои собственные utf8/utf16.
Ответить | Правка | Наверх | Cообщить модератору

32. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Герострат (?), 03-Янв-24, 11:45 
Что значит "умеет в юникодные строки"? Чем юникодная строка отличается от любой другой?
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

38. "Сравнение эффективности 20 языков программирования"  +3 +/
Сообщение от Аноним (4), 03-Янв-24, 11:57 
Тем, что предсказать количество байт, необходимое под определённое число символьных единиц, а также, сколько будет каждая из них, невозможно. Это накладывает определённые ограничения на работу с текстом, но, на практике, строки бывают только такими. Если, конечно, это не UTF-32, там размер предсказуемый. Понятное дело, накладные расходы в любом случае довольно серьёзные, по сравнению с обработкой однобайтных строк.
Ответить | Правка | Наверх | Cообщить модератору

57. "Сравнение эффективности 20 языков программирования"  –5 +/
Сообщение от пох.. (?), 03-Янв-24, 12:16 
это не про unicode, это про utf8/16 - два самых уе6-щных в мире способа его кодирования.
виндовый ucs2 вполне себе fixed width.

Ответить | Правка | Наверх | Cообщить модератору

74. "Сравнение эффективности 20 языков программирования"  +2 +/
Сообщение от Аноним (4), 03-Янв-24, 12:29 
В венде, кстати, самый убогий и проблемный юникод, не понимаю, откуда твои восторги. Компромиссное решение конечно было, спасибо хоть теперь utf8 приняли. Но после этого перекодированый utf16 в utf8 может отправлять её в бсод. Когда в одних местах огрызок utf16 и в других местах огрызок utf8, это весело тоже.
Ответить | Правка | Наверх | Cообщить модератору

76. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (76), 03-Янв-24, 12:30 
> ucs2

но ведь там нет эмодзи !

Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

93. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от пох.. (?), 03-Янв-24, 12:43 
увы. Поэтому в современной венде тоже помойка из где-то 16, где-то 8, а где-то и вообще восьмибитных кодировок для совместимости.
Ответить | Правка | Наверх | Cообщить модератору

125. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (124), 03-Янв-24, 13:43 
В винде все "любят" BOM с которым проблемы и грабли в каждом втором кейсе, а в собственно кодировки нормально не умеют
Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

135. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от sena (ok), 03-Янв-24, 14:03 
> ucs2 вполне себе fixed width

Это только если выкинуть часть юникода.

Ответить | Правка | К родителю #57 | Наверх | Cообщить модератору

92. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (-), 03-Янв-24, 12:43 
В чистых сях, если предказать невозможно размер строки, используют 2 пути:
1. Используют аллокаторы.
2. Используют массив, превыщающий размеры вводимых данных, с дополнительной проверочной функцией выхода массива за пределы допустимого размера.

>Понятное дело, накладные расходы в любом случае довольно серьёзные, по сравнению с обработкой однобайтных строк.

Понятие "накладные расходы" пришло из языков высокого уровня, где программисты отучились соображать, как в оперативной памяти располагаются данные. Чисто-сишник не знает таких слов, как "накладные расходы. Он просто видит задачу, и её делает. А Си плюс-плюс объектно-ориетрированный язык, в нём проблем с работой со строками вообще не существует.

Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

121. "Сравнение эффективности 20 языков программирования"  +9 +/
Сообщение от Аноним (-), 03-Янв-24, 13:29 
> Чисто-сишник не знает таких слов, как "накладные расходы. Он просто видит задачу, и выходит за границы массива.

Я поправил, не благодари)

Ответить | Правка | Наверх | Cообщить модератору

174. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (174), 03-Янв-24, 16:13 
Полная фигня. В сях есть 2 путя:
1) нуль-терминировнная строка, начиная с некоторого адреса
2) адрес на начало буфера со строкой и его длина в байтах

Размер данных нужно не предсказывать, а декларировать, иначе вы что-то не так делаете.
Можно ещё работать с потоком, но это просто наворот логики над вторым случаем.

И, кстати, кодировка текста вообще иррелевантна для непосредственно передачи данных.

Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

333. "Сравнение эффективности 20 языков программирования"  –2 +/
Сообщение от Илья (??), 04-Янв-24, 08:10 
Чем бы дитя не решилось, лишь бы не брать c#
Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

514. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от _kp (ok), 01-Фев-24, 15:52 
>>В чистых сях..

В смысле "чистых"? без библиотек, в стиле велосипедостроения? Так оно нерационально.

>> А Си плюс-плюс... в нём проблем с работой со строками вообще не существует.

И там реализация работы со строками не в языке, а в библиотеках. Ладно, в том числе в стоковых. Кстати, если не "шашечки, а ехать", то и в Си проблемы нет.

И в заключение не могу не упомянуть, про "проблемы не существует", что в С++ для контроллеров встроенные С++ библиотки вполне могут быть и наикривейшими, с мешком неочевидных проблем, в том числе со строками, что всё равно вынуждает использовать сторонние компоненты.

Ответить | Правка | К родителю #92 | Наверх | Cообщить модератору

147. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от YetAnotherOnanym (ok), 03-Янв-24, 14:42 
Пффф... тоже мне проблема.
Ответить | Правка | К родителю #38 | Наверх | Cообщить модератору

59. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (59), 03-Янв-24, 12:17 
«От любой другой» — это от ASCII? Примерно всем.
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

126. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (124), 03-Янв-24, 13:45 
При одном и том же наборе символов примерно ничем) А потом выясняется что ASCII в реале тебе не хватает и начинается цирк с теми, кто изначально использовал ASCII only подход
Ответить | Правка | Наверх | Cообщить модератору

49. "Сравнение эффективности 20 языков программирования"  +5 +/
Сообщение от Аноним (49), 03-Янв-24, 12:07 
> C и C++ сразу отлетают в таком случае, поскольку вообще никак не умеют в юникодные строки

Звездёж наглый. https://en.cppreference.com/w/cpp/language/string_literal u8 и https://en.cppreference.com/w/cpp/locale/codecvt_utf8 .

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

64. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (447), 03-Янв-24, 12:22 
std::codecvt_utf8
(deprecated in C++17)
(removed in C++26)
Ответить | Правка | Наверх | Cообщить модератору

150. "Сравнение эффективности 20 языков программирования"  +2 +/
Сообщение от Аноним (150), 03-Янв-24, 14:51 
Преобразование между кодировками юникода и wide character string != "вообще никак не умеют в юникодные строки". В юникод C++ умеет, как ты можешь убедиться открыв эту страничку в написанном на C++ Google Chromium. Там, где нужны преобразования между кодировками, рекомендуется использовать ICU (в Chromium используется именно эта библиотека). Остальным хватит https://en.cppreference.com/w/cpp/language/character_literal

P.S. А теперь можешь попробовать рассказать, как твой любимый ЯП X поддерживает Юникод на уровне ICU.

Ответить | Правка | Наверх | Cообщить модератору

52. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от Аноним (52), 03-Янв-24, 12:11 
Не то чтобы гуру в си юникоде, но даже без libicu всё работает нормально. Сами по себе строки и регексы в них - без проблем вообще.
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

90. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Netcat (?), 03-Янв-24, 12:42 
wchar_t нет?
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

106. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (-), 03-Янв-24, 13:03 
>wchar_t нет?

Есть. А он имеет ввиде резиновый utf8.

Ответить | Правка | Наверх | Cообщить модератору

151. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (150), 03-Янв-24, 14:55 
Забудь про эту нестандартную гадость. Либо char32_t, либо UTF-8.
Ответить | Правка | К родителю #90 | Наверх | Cообщить модератору

128. "Сравнение эффективности 20 языков программирования"  +/
Сообщение от Аноним (128), 03-Янв-24, 13:50 
>C и C++ сразу отлетают в таком случае, поскольку вообще никак не умеют в юникодные строки.

С++20 имеет юникодные типы.

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

182. "Сравнение эффективности 20 языков программирования"  +1 +/
Сообщение от fidoman (ok), 03-Янв-24, 17:06 
C вообще "в строки" не умеет, если уж на то пошло, использовать функции стандартной C библиотеки для работы со строками - это надо быть наглухо отшибленным.
Но это не значит, что нельзя реализовать работу со строками, просто используя C как продвинутый ассемблер.
Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру