что значит залипать в расте

Что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

Ну а теперь, давайте разбираться, что делать, когда Раст лагает и фризит на мощном ПК?

Для начала, предположим, что ваш компьютер соответствует всем требованиям и абсолютно исправен, но игра все-равно периодически лагает, особенно при стрельбе, полетах на коптере и открытии инвентаря:

Ну или просто фризит в высоконагруженных локациях вроде лагеря бандитов:

В этом случае вам может помочь консольная команда gc.buffer. Именно об этой команде я уже снимал видео и не буду сейчас детально описывать принцип её действия. Если вам интересны подробности, можете посмотреть то видео:

Итак, в зависимости от объёма оперативной памяти, вводим в консоль или добавляем в параметры запуска следующую команду:

И наслаждаемся игрой без лагов! Метод проверенный и помог уже сотням и тысячам растеров! Только не забудьте, что если вы вводите команду через консоль, а не в параметрах запуска, то делать это придётся при каждом входе в игру

Следующая возможная причина лагов — это жёсткий диск. Раст это очень нагруженная текстурами и объектами игра, которая постоянно оперирует огромным количеством данных, задействуя при этом жесткий диск вашего ПК и, если жёсткий диск не справляется, вы будете наблюдать лаги в игре.
Чтобы решить эту проблему, в первую очередь убедитесь, что в вашем компьютере установлен современный SSD диск, а не древний и медленный HDD.

Кстати говоря, даже в минимальных системных требованиях для Раста указано, что SSD диск крайне рекомендуется!

Также не лишним будет проверить состояние вашего диска, поскольку они тоже имеют свойство изнашиваться и терять скорость. Для проверки можно использовать любую из сотен предназначенных для этого программ, ну например MHDD [www.mhdd.ru] или Victoria [hdd.by]

Если проверка показывает наличие ошибок или значительное снижение скорости, то пора задуматься о замене диска!

Третья причина фризов в Расте — это оперативная память. Притом речь сейчас идёт не о её объёме, а о том, как она работает.

Возможно, для многих это будет открытием, но оперативка тоже может работать с ошибками и выходить из строя, притом зачастую это может происходить практически незаметно для пользователя. Я уже несколько раз наблюдал ситуацию, когда у моих подписчиков Rust лагал именно из-за ошибок в работе оперативной памяти, более того, я сам недавно с этим столкнулся, когда на стриме у меня резко снизился фпс и игра стала какой-то дерганой.

Для проверки работы памяти на вашем компьютере я могу порекомендовать бесплатную утилиту OCCT [www.ocbase.com] Кстати, этой же программой можно проверить ваш процессор и убедиться, что он тоже работает без ошибок и не перегревается. Прогоните в ней тест памяти, и если программа найдёт ошибки, то попробуйте почистить контакты модулей памяти спиртом и поменять их местами в слотах на материнской плате, а если не помогло, то снижайте частоту памяти в BIOS.
Только очень вас прошу, если вы не разбираетесь в компьютерах, то лучше попросите кого-нибудь из знакомых вам помочь, или вызовите мастера!
Если же все эти манипуляции не помогают и тест всё равно выявляет ошибки – оперативку пора менять

Ну и последняя причина, из-за которой Раст частенько лагает – это интернет, а точнее стабильность его работы. Бывает такое, что всё вроде бы нормально и проблем при работе с браузером вы не замечаете, да и при выборе сервера Раст показывает вполне нормальный пинг.

Но, в тоже время в игре вы можете наблюдать как вас периодически откидывает назад и фризит по несколько секунд. Эти проблемы в первую очередь указывают на нестабильную работу вашего интернета.

Чтобы убедиться в этом, достаточно ввести в консоль команду global.perf 4, которая отобразит в левом нижнем углу экрана различные показатели вашей игровой сессии и в том числе пинг:

Именно за этим параметром следует некоторое время понаблюдать. Если вы заметите, что пинг постоянно скачет в большом диапазоне, например от 50 поднимается до 500 и выше, а затем падает обратно, значит проблема и правда связана с каналом передачи данных.

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

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

Тем не менее, надеюсь, он помог вам решить проблемы с игрой, и если это так, то не забудьте пожалуйста поставить лайк, поделиться им с друзьями и написать в комментариях о своём опыте решения проблем с лагами в Расте!

Источник

Что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

Добро пожаловать в Rust. К слову, вы можете присоединиться к этим дикарям, чтобы повысить шансы своего выживания, либо попытать удачу с более адекватными людьми. В любом случае, впереди вас ждёт куча ошибок, от которых не застрахованы даже самые опытные геймеры. Именно о таких ошибках и пойдёт сегодня речь.

Забудьте о добрых и бескорыстных людях из реальной жизни и других мультиплеерных игр, ведь мир Rust – это суровое и жестокое место. И здесь категорически не советуется доверять каждому встречному. Вас ведь учили в детстве не общаться с незнакомцами и уж тем более не брать у них сладости?

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

Этот пункт, конечно, слегка противоречит предыдущему, ведь для игры в компании потребуется как минимум несколько человек, которым вы доверяете. Дело в том, что возведение построек и переход на новые этапы развития (камень, дерево, металл) в Rust занимают немало времени и сил. А если в компании с вами играет ещё несколько человек, то гринд станет менее изматывающим, да и к тому же вам будет проще отбиваться от незваных гостей.

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

К слову о разочарованиях – если не изучать особенности архитектуры и строительства в Rust, то ваши постройки начнут разваливаться буквально на глазах. И это не говоря уже о случаях с впустую потраченными ресурсами, когда, к примеру, стены оказываются слишком высокими, а их стороны – перепутанными.

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

Итак, вы, наконец, построили себе внушительную цифровую крепость, полную сокровищ, и думаете, что сможете жить в ней по-королевски со своим приятелем? Увы, понятие комфорта в Rust полностью отсутствует. Если кто-нибудь из игроков заметит, что у вас дела идут лучше, чем у него, вы автоматически попадаете в его прицел.

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

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

Лень – это ещё одна серьёзная проблема всех игроков в Rust, даже несмотря на то, что игровой процесс фактически построен на гринде. К примеру, некоторым игрокам лень крафтить собственные предметы, поэтому они предпочитают пользоваться чужими благами. А если вы привыкли хранить все свои предметы в одном месте, то вам наверняка вскоре наглядно покажут, почему это плохая идея.

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

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

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

(UPD: Данный способ подходит для начального выживания только с друзьями, если вы играете одни, то в ключе нет необходимости!)

Первые минуты игры в Rust – это самая тяжёлая часть геймплея. Вы оказываетесь посреди ночи во враждебном мире без еды, воды и одежды, а потому тепло и уют, исходящие от факела, кажутся настоящим спасением. Но это не так. Свет привлекает всех вокруг, включая гриферов.

Они радостно нападают на всех новичков, решивших зажечь факел. В большинстве случаев это приводит к неминуемой гибели, ведь, разжигая факел, вы фактически сообщаете всему миру в Rust, где именно можно вас найти. Поэтому лучше прищуриваться в темноте, как это делали наши предки, чем освещать себе путь.

Главная ошибка всех новичков в Rust заключается в том, что они воспринимают игру как экшн-шутер. Конечно, скрафтив свой первый автомат, легко почувствовать себя неуязвимым, но велика вероятность того, что вы наткнётесь на более опытного геймера, который быстро расправится с вами.

Источник

Чем Rust отличается от «плюсов»: откровение ветерана С++

Rust часто называют преемником C++. Дмитрий Свиридкин рассказал на суровом программистском языке, так ли хорош любимчик пользователей Stack Overflow.

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

Программист. Разрабатывает на C++ и Rust решения для платформы компьютерного зрения в Arrival. Автор сборника материалов по C++.

Я решил попробовать Rust, потому что устал отлавливать на код-ревью (и не только) одни и те же ошибки в «плюсах». Обязательно кто-нибудь объявит статик-лямбду и захватит в неё по ссылке нестатический временный объект. А когда код с такими ошибками коммитят, он проходит тесты, предполагающие однократный запуск. Программа попадает в продакшен, где запускается пару раз и падает. На поиск и отладку багов уходит много сил и времени.

В Rust нет бардака с библиотеками

У С++ всегда было две проблемы: недостаточная квалификация разработчиков и отсутствие нормальных пакетных менеджеров.

Раньше приходилось гуглить, копировать и компилировать исходники библиотек — та ещё головная боль. Бывало, найдёшь исходники, а компилятор не подходит, потому что он слишком старый, хедеры протухшие или версии зависимостей не совпадают. Тогда вместо готового решения придумывали своё — и это своё всегда заканчивалось кучей багов.

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

Например, я видел реализации std::optional, которые не вызывают деструктор, даже если тип нетривиально деструктурируемый. Тогда как стандартная реализация — это куча boilerplate-кода, который даже командой из трёх-четырёх человек невозможно отладить.

Получается полный бардак. Часть кода покрывают тестами, она кое-как работает, а когда начинаешь детально тестировать — тут дедлок, там use-after-free и так далее. В Rust эти заботы можно частично переложить на плечи компилятора, но с ним иногда приходится бороться: богатая система типов требует более педантичной работы.

Чтобы писать на Rust, мне не пришлось менять IDE. Просто подключил к VS Code code-assistant rust-analyzer (это что-то вроде майкрософтовского IntelliSense). На прошлой работе писали в CLion от JetBrains. У неё есть неплохой плагин для Rust, но при рефакторинге он может наделать делов и оказать медвежью услугу. Так что IDE от JetBrains научили меня не доверять авторефакторингу — обязательно что-нибудь да сломается. Поэтому стараюсь аккуратно рефакторить сам.

Система типов в Rust защищает от ошибок

Бизнес-логика — именно то, что нужно писать на Rust, потому что с ним тяжело ошибиться. Ещё на прошлой работе мы запилили плагин — в качестве proof of concept того, что на Rust вообще можно создавать плагины к большому SDK. Логика была примитивная: принять список слов и проверить, совпадает ли с ним input.

Почему такой простой плагин? Потому что больше никто в команде не знал Rust. Язык молодой, и пока на нём мало кто пишет. Создавать проекты, которые может поддерживать только один разработчик, невыгодно. Проще найти «плюсовиков», поэтому C++ никуда не исчезнет.

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

На новой работе я перевожу часть проекта с «плюсов» на Rust. Язык подкупил меня мощной системой типов, которая позволяет выразить зависимости между временами жизни объектов. В языках с ещё более мощными системами типов, например с зависимыми типами, можно проверять статически рантаймовые ограничения. Например, запретить функции принимать пустые строки — компилятор проверит.

Однако у таких мощных языков есть общая проблема: вы замучаетесь доказывать компилятору, что код работает правильно и ничего в нём не нужно исправлять. К счастью, Rust не совсем такой, это золотая середина: с одной стороны, его система типов достаточно строгая, чтобы защитить вас от распространённых ошибок. С другой — не настолько строгая, чтобы приходилось мучиться с ней лишнего.

Программы на Rust без стороннего кода сравнимы по скорости с «плюсовыми»

На прошлой работе я переписывал большой графовый алгоритм — без unsafe-кода, с контейнерами из стандартной библиотеки.

По производительности программа была всего на 10% медленнее «плюсовой». При этом обошлись без стороннего кода. Считаю, что результат хороший. Под C++ пришлось три месяца искать hashmap и перебирать варианты: в одной выравнивание как-то хитро сконфигурировано и приводит к segfault, в другом exception вылетает, если хеш плохой, третий вообще уже четыре года не поддерживается.

Что же касается бенчмарков, то всегда можно подобрать тест, где выиграет нужный язык — хоть С++, хоть Rust. Достаточно знать тонкости работы с памятью в конкретном языке. Я, например, могу написать пример кода на Rust без лишних аллокаций, а в «плюсах» у аналогичной программы они будут, потому что организовать там safe по-другому нельзя. В общем, обсуждать производительность нужно на конкретном примере.

Code-assistant rust-analyzer отлично работает с шаблонами

В последнее время я оборачиваю небезопасные библиотеки языка С, чтобы подцепиться к каноническому Rust API. Если бы сразу начал писать на «плюсах», уже давно бы закончил и общался с железом, к которому эта библиотека поставляется. А так как пишу на Rust, то пришлось целую неделю аккуратно оборачивать код в канонические Rust-структуры. Столкнулся с тонкостями системы типов: вариантностью ссылок, контравариантностью типов. Если не обращать на них внимания, то safe-обёртка над C API будет некорректной.

Оборачивать низкоуровневый unsafe-код в safe на Rust довольно долго, но оно того стоит. «Плюсовой» IntelliSense вряд ли сравнится с мощным rust-analyzer и справится далеко не со всем кодом, особенно с шаблонами.

Возможно, с появлением стандарта С++20 появятся хинты и IntelliSense научится подсказывать внутри шаблонного кода, если в параметрах указать концепт. Думаю, раньше всех эту фичу внедрит в свои IDE JetBrains — если уже не начала втихаря над ней работать. Шаблоны без концептов в «плюсах» всегда работали плохо: стоит поставить неподходящий аргумент — и компилятор выдаёт огромные сообщения об ошибках. Пока у анализаторов Rust гораздо больше возможностей, да и писать шаблонный однотипный код на нём получается гораздо быстрее.

У Rust настоящая zero-cost abstraction

Помимо Rust, я присматривался и к другим языкам. Три года назад, когда впервые сменил работу, думал погрузиться в светлый мир JVM и написать что-нибудь на Kotlin. Но языки вроде Scala, Java и Kotlin можно применять далеко не везде. Виртуальные машины создают дополнительную нагрузку и для встраиваемого ПО в микрокомпьютерах не подходят. В таких системах пишут на чистом С, С++ или совсем страшных штуках вроде MISRA C.

У Rust, скомпилированного в native, нет дополнительного рантайма. RAII, деструкторы, конструкторы как в «плюсах». Только у Rust линейные типы и zero-cost с ними настоящий, а у C++ — нетривиальный деструктор у типа, и хоть убейтесь, но не получится передать его значение через регистры.

Ещё есть Zig — он очень похож на Rust. Там, например, тоже есть проверка lifetime, но организована она иначе, и то, как это сделано в Rust, мне нравится больше. Других языков с проверкой lifetime я не знаю, а в языках со сборщиками мусора она не нужна: если есть ссылка на объект, значит, он точно живой.

В Go механизм похожий, но там есть сборщик мусора. Мне предлагали перейти на него четыре года назад. Я попробовал, и синтаксис меня рассмешил. Стоит автоформатеру неправильно перенести строки, и программа не скомпилируется. А всё из-за неявной расстановки точек с запятой.

С похожей проблемой я сталкивался, когда мы в первый раз подключали сторонний форматер для «плюсов» — кажется, это был Uncrustify. Он убрал лишние фигурные скобки, и размер критических секций у меня резко вырос. Да уж, отличный форматер — поменял поведение программы. Мог бы просто весь код снести.

В Rust более лаконичный синтаксис, но к нему нужно привыкнуть

Вообще, синтаксис Rust меня вначале сильно раздражал, но я уже почти смирился с ним.

Раздражает символ ; в конце expression, который меняет возвращаемый тип на аналог сишного void. Поставил точку с запятой — программа перестаёт компилироваться. А компилятор молотит type-чекером, который занимает целое ядро, чтобы rust-analyzer и IDE написали красным: «Смотри, у тебя тут типы не сошлись».

Хорошо хоть в экосистеме Rust пофиксили много ошибок и в поставке уже есть официальный форматер, который всё делает правильно. Конечно, тоже есть проблемы. Например, если вы хотите сделать что-то серьёзное с пакетными менеджерами, например сложить собранные артефакты в каталог, то придётся вручную писать поверх скрипты, например на Bash. Штатными средствами это сделать либо нельзя, либо они unstable.

В целом я свыкся с упоротым синтаксисом и краткими ключевыми словами, но всё равно считаю, что они должны состоять хотя бы из трёх символов. Я люблю называть свои переменные fn, а мне его предлагают в качестве ключевого слова. С другой стороны, минималистичный синтаксис — это хорошо.

Лямбды можно писать кратко и без ключевого слова return — это экономит кучу времени. Зато когда после этого переключаешься на С++, то всё время забываешь писать return и, указав тип возврата, получаешь функции с неопределённым поведением. В С++ синтаксис лямбд вообще напоминает синтаксис обычных функций, только trailing return type сделали — ну, и на том спасибо, что уж там. А скобки и return нужно писать обязательно, иначе будете ждать от функции int, а она ничего не вернёт.

При этом Rust не панацея

Тех, кто только планирует погрузиться в Rust, предупреждаю: это не панацея от всех болячек C++. Он защищает вас от гонки данных через проверку borrow checker, но пропускает дедлоки. Защищает от use-after-free, но только в safe-подмножестве. Если же работаете с unsafe — у вас, по сути, будет тот же С++, только с более продвинутой стандартной библиотекой.

что значит залипать в расте. Смотреть фото что значит залипать в расте. Смотреть картинку что значит залипать в расте. Картинка про что значит залипать в расте. Фото что значит залипать в расте

Хотя и здесь не всё так однозначно. Многие важные фичи, например для разработки драйверов или встроенного ПО, остаются нестабильными, а значит, писать на Rust серьёзные проекты пока рискованно. По этой причине от Rust часто отказываются в пользу C++, где всё давно stable и unsafe.

обложка: Polina Vari для Skillbox Media

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *