Pull to refresh
38
1

Жопа котика

Send message

Как мы сломали стену между разработкой и дизайном

Заголовок звучит словно вы разрабов заставили дизайн верстать

Прошлой осенью по тому же принципу в яндекс зазывали из разных агенств.

Самое странное собеседование было в какую-то околотелеком кампанию. Собес на английском, разница с рекрутером в несколько часов, поэтому у меня уже на часах в районе 8 показывает. Рекрутер начинает говорить максимально монотонным голосом, что в какой-то момент я начинаю понимать, что её речь действует на меня как запись съезда КПСС и я едва ли не начинаю клевать носом, пытаясь сконцентрироваться на том, что она в какие-то моменты иногда задаёт вопросы. Никогда не думал, что такое бывает.

Вот, например, топологическую сортировку делают. Для перемещения можно использовать std::mem::swap или std::mem::replace

iota(n, m) -> (n..m), с баундчеком n < m.

stride -> iter::step_by

reverse -> iter::rev

flat map или zip(rng1, rng2 к примеру)

Есть и zip и map/flat_map, да ещё и в парарллель. Причём буквально с релиза в 2015. В то время как простой string_view появился в 17 стандарте, а прочие view только в 21, да и те не все. Кстати не без влияния ржавчины.

Так что вас ограничивает только отсутвие функций в стандартной библиотеке, принимающих итераторы на вход - сортеров, миксеров, траверсеров и прочих алгоритмов. Для этого люди пишут отдельные крейты, да.

Строго говоря в Rust стандартные сортировки сейчас гвоздями прибиты к вектору/слайсу. Также как и по всей стандартной либе есть несколько вариантов map/flat_map и прочие проблемы в том же духе. Ничто не мешает написать собственную функцию `sort(impl Iterator)`,и сортировать как хочется. Но утверждать при этом, что итераторы у раста какие-то ненастоящие как минимум странно. Ну, а отсутвие генерик сортировщиков и прочих обобщённых алгоритмов в стандартной библиотеке компенсируется экосистемой крейтов.

Без превращения в линейный кусок памяти - никак. То есть .collect::<Vec<_>>().sort_by(sorter). Ровно также будет вести себя сортировка и в плюсах.

Потому что поддержка на самом деле так и не появилась. Клочки модулей есть по разным компиляторам, но полноценной поддежки пока нет ни у кого, насколько мне известно. Под какие-то из этих имплементаций в CMake внедряется поддержка оных, но пока что всё довольно плохо с ними. Потому никто и не спешит

У раста несколько слоёв кодогенерации и на каждом есть некоторое количество оптимизаций, включая в том числе и этап оптимизации LLVM IR.

интересно, кто у кого подсмотрел, С++ у Rust или наоборот.

Емнип питон первый завёз их в виде f-string. Раст это дело облагородил по своему и тоже добавил. Где-то между двумя этими событиями появилась плюсовая библиотека fmt, которая завезла такое форматирование в плюсы. Ну и не так давно похожий синтаксис попал и в стандарт js. За остальные языки не скажу.

Модули пока ещё не завезли. В 23+ оно будет схоже с java и c#.

как минимум код ругнётся на то что list - это такое ключевое слово.Ну и в вашем случае будет генератор, который станет бесполезен после использования. Если цепочка трансформаций вырастает, то кода будет заметно больше. Можно ли склонировать генератор, чтобы использовать его в нескольких независимых вещах это отдельный вопрос.

impl Iter for Octree {
  fn next() -> Option<Self> {}
} 

Ничто не мешает вам сделать так. Ровно то же самое что придётся сделать и в плюсах, разве что только на самой структуре. Для графов есть Box/RefCell. Тот же Bevy вполне успешно работает с графом сцены и прочими. Самое забавное, что для того чтобы иметь нормальную производительность для больших игр вам придётся приводить все эти графы к некоторому линейному виду и не сильно принципиально на каком языке вы это делаете. Без совсем сырых указателей конечно больно, но Rust именно для этого и был придуман.

Грубо говоря compile time выражения включая трейты пока ещё в процессе, это верно, но оно и в плюсах не сказать чтобы давно появилось. Можно конечно попробовать такое на макросах провернуть, но в среднем композиция была выбрана чтобы избежать подобной ереси как выше.

Всё ещё не вижу проблемы. `.entry` делает ровно это же

map
.entry(key)
.and_modify(use)

вью на Vec которое reversed или deque из С++

vec.into_iter().rev().map(use)

Или я чего-то не понимаю?

Так а что мешает использовать уже сейчас?

Стандартный менеджер пакетов == монополия, монополия == плохо.

Единственный источник пакетов - это монополия. А стандартный менеджер пакетов это очень даже отличный план. Сравните с прочими языками - python, js, ruby, go, да даже D .

переставив возвращаемый тип функции в конец,

я конечно понимаю, что у многих до сих пор остался Сишный фетиш на спиральные определения, но не очень понимаю чего он так вас подрывает.

Человек сделал препроцессор, который избавляет от многих болезненных точек и добавляет больше безопасности, при этом не отламывая совместимость с плюсовым кодом. Ну то есть буквально

с возможностью писать как можно меньше кода,

Ну, а про

очередного убийцу плюсов

Саттер - это человек который слишком любит плюсы, чтобы действительно писать убийцу плюсов. Фактически это Core Guidelines воплощённое в суперсете синтаксиса плюсов. Да ещё и экспериментальная, в первую очередь.

А есть инфа когда починят "Пометить как прочитанное"? Вчера оно случайным образом помечало примерно 80% трекера и слало ошибку про запрос.

Будет ли фильтр по непрочитанному? Ну то есть хотелось бы иметь возможность видеть сначала непрочитанные, а не просто хронологию с непрочитанным где-то на восьмисотой странице.

Когда починят прочтение личных сообщений? До сих пор уведомления висят пока дважды в сообщение не зайдешь.

какой-то искусственный этот субфакторион, он зависит от системы счисления

Так фактически десятичные субфакторионы это лишь часть более общего класса n-субфакторионов, что вас не устраивает? Живут же люди с p-адиками при конкретных p и прекрасно себя чувствуют. Ну а так-то вся математика довольно искуственная.

Information

Rating
1,375-th
Date of birth
Registered
Activity