До всего этого в результате всё равно доходят. В том же Расте раз строки в std на хипе - появляются всякие smallvec с векторами и строками на стеке, например (не совсем то же самое, но тем не менее).
Ну и Vec там, вокруг которого строятся и строки, один фиг имеет поле длины usize, что 64 бита обычно. Для всех практических целей этого достаточно.
Но, очень часто, на это пофиг - хочется, например, просто обрезать длинную строку текста какой-нибудь ошибки до Х байт, чтобы логгировать например. И, чтобы при этой простой операции ничего не взрывалось :)
В Си никаких уникодов нет и не было, особенно когда эти null-terminated изобретались.
А сейчас да, до сих пор умудряются проблемы не этом получать. К примеру в Расте есть у String (который хранит UTF-8) безобидный метод truncate(n), который работает не по кодовым точкам, а блин по байтам (чтобы быть O(1)) и если ему указать байт посреди кодовой точки - просто паникует.
Хотя могли бы сделать вот что-нибудь такое и оно было бы тоже O(1):
pub fn truncate(s: &str, n: usize) -> &str {
let n = s.len().min(n);
let m = (0..=n)
.rfind(|m| s.is_char_boundary(*m))
.unwrap_or_default();
&s[..m]
}
Различия просто в том как делать: length-value или null-terminated.
Да, когда памяти кот наплакал - хочется сэкономить. Но, как и с nil-ами, кроилово ведёт к попадалову. Вместо того, чтобы сделать заголовок из пары байт - получили вот это, с нулём в конце... и все проблемы с этим связанные.
В книгах про Эндера у Карда была концепция, что деревья на какой-то планете - это следующая форма существования местных живых существ. И думали они медленно, но как-то с ними там можно было общаться :)
Реки все уже и так перегородили условно. А лишняя генерация есть от других источников, типа ветра и солнца.
Уже построили: https://www.swissinfo.ch/eng/sci-tech/inside-switzerland-s-giant-water-battery/46915530
Ну, кому то быстро но недолго. Кому-то медленно, но верно.
Хороший баланс - E-Foil, но там свои приколы.
А он и не помрёт, ибо дофига легаси. И даже новые проекты активно появляются. Плюс весь геймдев.
Но ниша его сужается активно. Го вытеснил из сервисов всяких и веба, Раст из системного программирования потихоньку давит.
Как в том анекдоте "Ну и вы рассказывайте..."
До всего этого в результате всё равно доходят. В том же Расте раз строки в std на хипе - появляются всякие
smallvecс векторами и строками на стеке, например (не совсем то же самое, но тем не менее).Ну и
Vecтам, вокруг которого строятся и строки, один фиг имеет поле длиныusize, что 64 бита обычно. Для всех практических целей этого достаточно.Ну, графемы порежутся, да.
Но, очень часто, на это пофиг - хочется, например, просто обрезать длинную строку текста какой-нибудь ошибки до Х байт, чтобы логгировать например. И, чтобы при этой простой операции ничего не взрывалось :)
Я думаю тут имелось в виду, что мозг потребляет столько же в абсолюте и у офисного планктона и у батрака.
Но у батрака физ-затрат сильно больше, чем у просиживателя штанов - поэтому в % затраты мозга ниже.
Ещё больше Чебурнетии... Расщепление Certificate Authority на скрепный и все остальные.
Их бессовестная вражеская цензура.
Наши скрепные, родные, по многочисленным письмам трудящихся, блокировки для защиты неокрепших умов граждан.
Надо понимать разницу!
Факты? Факты будут когда покажут что это ИИ-поделие работает, его легко поддерживать и так далее. А не просто куча `unsafe {}` блоков повсюду.
Угу, сжечь токенов но 100 миллионов долларов и получить в конце кусок говна :)
Тут одни уже Bun переписывали на Расте...
В Си никаких уникодов нет и не было, особенно когда эти null-terminated изобретались.
А сейчас да, до сих пор умудряются проблемы не этом получать. К примеру в Расте есть у
String(который хранит UTF-8) безобидный методtruncate(n), который работает не по кодовым точкам, а блин по байтам (чтобы быть O(1)) и если ему указать байт посреди кодовой точки - просто паникует.Хотя могли бы сделать вот что-нибудь такое и оно было бы тоже O(1):
Резало бы по ближайшей кодовой точке.
Ничего там не переписывается. Добавили тулчейн чтобы можно было писать что-то в ядре на Расте да и всё.
Переписать всё ядро - понадобится, небось, миллион человеко-лет.
Мне кажется кодировка тут ортогональна.
Различия просто в том как делать: length-value или null-terminated.
Да, когда памяти кот наплакал - хочется сэкономить. Но, как и с nil-ами, кроилово ведёт к попадалову. Вместо того, чтобы сделать заголовок из пары байт - получили вот это, с нулём в конце... и все проблемы с этим связанные.
В книгах про Эндера у Карда была концепция, что деревья на какой-то планете - это следующая форма существования местных живых существ. И думали они медленно, но как-то с ними там можно было общаться :)
А разбирать проблемы с тучей библиотек, реализующих HTTP, но не знающих про QUERY - лучше?
Ну, я тоже "не местный" давно, но у меня есть друзья и родственники, которых всё это касается.
Так что приходится держать руку на пульсе...
Там, в приведённой цитате написано даже, что это прокси для Телеграма.
В наше, изнасилованное РКН и прочими чекистами, время даже моя мама знает что такое прокси для Телеграма и зачем он нужен.
А уж аудитория Хабра и подавно должна. А если не знает - может потратить 5 минут на изучение вопроса, а не писать комментарии.
Сочуствую