Это копия, сохраненная 4 июля в 13:03.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Rust — невероятно быстрый язык для системного программирования без segfault'ов и с гарантиями потокобезопасности.
Ссылка на официальный сайт: https://www.rust-lang.org/
В этом ИТТ мы можем объяснить базовые и продвинутые концепции языка, и программирования в целом, поможем вкатывающимся, подскажем что выбрать для веба, игр или, прости Абу, блокчейна.
IDE для Rust: https://areweideyet.com/
GUI для Rust: http://www.areweguiyet.com/
Web для Rust: https://www.arewewebyet.org/
GayDev для Rust: https://arewegameyet.rs/
Что еще есть для Rust?
- Посмотри сам: https://wiki.mozilla.org/Areweyet
Основная литература:
Rust Book(версия на русском языке): https://doc.rust-lang.ru/book/
Rust Book: https://doc.rust-lang.org/book/
Rustlings (упражнения чтобы привыкнуть к расту): https://github.com/rust-lang/rustlings
Rust by Example: https://doc.rust-lang.org/rust-by-example/
The Rustonomicon(для продвинутых анонов): https://doc.rust-lang.org/nomicon/
Programming Rust: https://www.oreilly.com/library/view/programming-rust/9781491927274/
Ресурсы на русском:
https://rust-lang.ru/
Отдельное спасибо автору этого гитхаба(старому ОПу). Здесь вы сможете найти много полезной информации: https://gist.github.com/TatriX/183c816f1346d418f969c4576c2b9b41
Предыдущий >>3030908 (OP)
Усложнять будут конечно же. Джава очень простой язык.
Отвечая на твой вопрос, Ну вот смотри, фаерфокс большой проект? Цель создания раста переписать фф, например.
Хз я вообще не понял нахуй оно нужно на самом деле
>Раст пригоден для крупной разработке по типу что пишут джависты? Такое ощущение эти костыли с лайфтамими и чекерами будет очень сильно усложнять большую промышленную разработку?
https://github.com/firecracker-microvm/firecracker
https://github.com/vectordotdev/vector
Это достаточно крупная разработка?
Формо/крудо-шлёпить на расте будет сложнее чем на джаве, байтоёбить/экономить такты или память - проще.
Ну можно, наверное, уже и свой линкер написать, а не 10 лет тянуть всю инфраструктуру вижуал студию с IDE?
Для установки Раста нужно сделать sudo apt install rustup или аналог на твоем дистре, зачем тебе вижуал студия?
Это прокатит только для одного процента говна, нормальные люди собирают мощные пеки чтобы еще играть и поэтому овер 60% сидят на швиндовс.
Не повод жрать говно, линукс удобен в плане сопровождения серверов, но как десктоп - калище еще то. Нормально писать под линукс не на линуксе, но линукс как рабочая станция, это мерзость. мимо 18 лет красноглазого опыта
Очень аргументированно, издалека видно что ты очень умный. Что тебе на декстопах не нравится, убогий? Хоть бы расписал для приличия
Смердопроблемы, что то хуйня, что другое хуйня но шинда вс линукс я определенно выбираю линупс
Мимо макос господин
Ты понял неправильно. Берешь биндген и делаешь как тебе надо. Олсо, а в чем костыльность? Там вроде голый вулкан, только енумы обернуты.
Просто в С ты можешь сразу учить vulkan по учебникам, а для раста нужно учить обертки и костыли. Наверно, новичку лучше изучать вулкан через Си, чтобы не запутаться в обертках?
Новичку не стоит трогать Вулкан, потому что заебется и дропнет после первого треугольника. Это как гуи хреначить через голый winapi. А если понимаешь, что делаешь, то немного другое название функции никак не помешает.
Unity
>расте нельзя напрямую использовать vulkan
можно конечно, вулкан это же С апи
просто готовься что многие функции - unsafe
В идеале бы с чего-то вроде OpenGL 3.3, но для него на расте обертки только уровня того же vulkano. Остаётся wgpu. Там тоже куча дрочева, которое никак не связано с рисованием, но самые душные моменты моменты скрыты.
>отдельные api под каждую платформу
что ты под этим имеешь ввиду?
vulkan - кросс платформенное апи, хоть на линуксе
https://www.reddit.com/r/rust_gamedev/comments/p2ihhz/comment/h8kgek3/?utm_source=share&utm_medium=web2x&context=3
>If they don't want to learn how to use individual APIs on different platforms, then they want something like wgpu that can abstract it a little bit
Такой комментарий встретил. Какие API имелись ввиду?
На Xbox, MacOS и iOS нет Вулкана из коробки, видимо про это. Но есть врапперы, так что на самом деле плевать.
Бинари для Vulkan на Винде поставляются с драверами видеокарт. На Иксбокс их, скорее всего, нет. Но опять же, качаешь первый попавшийся враппер над DX12 и забываешь.
Вот пример крупного проекта https://github.com/zed-industries/zed
> Раст пригоден для крупной разработке по типу что пишут джависты?
Да, есдинственное что нет полноценного ООП с наследованием и паттерны не попишешь. С другой стороны заебись без фабрик
>Такое ощущение эти костыли с лайфтамими и чекерами будет очень сильно усложнять большую промышленную разработку?
В каком-то месте усложняют, в каком-то упрощают. В любом случае большое приложение ты разбиваешь на слои или как в zed на несколько крейтов которые независимы друг от друга. С другой стороны концепция владения практически всегда заставляет тебя передавать ссылку, а не значение, что положительно сказывается на потреблении памяти.
Есть ли у комьюнити какой-то устоявшийся логгер? В джава-подобных языках уровень логгера можно указать по уровню вложенности пакетов (где-то заглушить, где-то увеличить информирование), в расте что-то подобное есть?
> 18к коммитов
> крупный проект
Как будет пол ляма, так и приходи со сказками про крупный проект с долгой разработкой. По факту это даже на средний не тянет, с его 10 мб исходников.
Да пока странно выглядит, с учетом доступности только на маках. Напоминает те проекты операционных систем, которые живут на мотивации и потом чахнут.
Мне интересует больше промышленное программирование. И дело не в мемах про фабрики, а в том что между системным кодером и промышленным обычно большая пропасть недопонимания, понятно что ООП не в почете, но хороший логгер, IoC и прочее плюшки позволяют писать код годами, разными людьми.
Пока ничего мхом в полляма коммитов и сроком в десятки лет не покрылось, ide вполне такой неплохой проект для языка который в продакшене всего пару лет. А так в основном пилят бекенд, крипту, консольные утилиты, софт для всяких коробочек в основном промышленных и драйвера в ядре.
Ты бы хоть на примере показал какой КРУПНЫЙ проект есть на жабе, который соответствует твоим критериям, чтобы понять о какой промышленности ты тут говоришь. А то у нас недопонимание.
>>061291
>Да пока странно выглядит, с учетом доступности только на маках. Напоминает те проекты операционных систем, которые живут на мотивации и потом чахнут.
Это пилят разработчики Atom, которые связаны с гитхабом. Выкатили бета версию пока для маков, под линукс еще пилят там открыты конкретные ишью что осталось допилить.
>И дело не в мемах про фабрики,
Это не мемы, я проходил стажировку на спринге и на себе ощутил эти упражнения в паттернах которые со временем становятся антипаттернами
> ООП не в почете
Это у сишников такой загон
Ты случаем не тот самый шиз из предыдущих тредов?
Драйвер видеокарты? Лолнет, нельзя.
>Ты бы хоть на примере показал какой КРУПНЫЙ проект
Любое легаси, которое пилили годами слой за слоем. Но при этом это еще можно сопровождать, благодаря ООП и некоторым соглашениям.
Раст пытаются натянуть на веб, стало интересно как на процедурном коде это все ляжет (без логгера с настройкой вложенности, без IoC). Просто, если без обид, то системные программисты обычно плохо разбираются в архитектуре, им смешно, забавно, а многие вещи буквально вытягивают сопровождение в таких "слоенных" проектах как в энтерпрайзе.
> Вот пример крупного проекта https://github.com/zed-industries/zed
Ну нет, вот держи пример крупного проекта на крестах, 430к коммитов. И количество форков тоже хороший показатель вовлеченности людей в разработку - у zed 900 каких-то трапов, у пикрилейтеда 48к.
Более трех лет пилят редактор на маке в глубокой бете, при условии существования всяких LSP.
Не про это ли говорил анон, что разработка на расте долгая?
А где ссылка-то, болезненый
Как эпл, сделала metal для себя.
Зачем графическое апи на компилируемом в машкод языке? Тебе нужно кнопки быстро-быстро рисовать? С гуями и петухон справится.
Бессмысленный вопрос.
Стоит ли начинать изучение низкоуровнего программирования с Rust, если не разу не писала на C/C++?
Чем в rust заменить безусловный переход (типо goto)?
Учу rust и пытаюсь написать прогу по гипотезе коллатца
Какие цели, если байтики в ардуинке дергать, то раст идет лесом, если веб, то раст идет лесом. Если пишешь бд, бразер, графический редактор, то может быть, но скорее всего всосешь по либам и докам.
Да, раст еще труднее читать, чем писать. Так что 10 раз подумай.
Очередное подтверждение, что на расте пишут одни небинарные одноногие LGBTQ+ BLM активисты.
Хочу моды на S.T.A.L.K.E.R. делать.
Одна ошибка и ты ошибся.
>пруф хотя бы в том, что единственный, помимо обвязки, кусок кода на расте в ядре сейчас, это драйвер https://github.com/torvalds/linux/blob/master/drivers/net/phy/ax88796b_rust.rs - типа, смотрите, как надо.
Один единственный драйвер в мэйнлайне на расте, при этом 1 в 1 с кодом на Си.
Лол
Покажи мейнкун драйвер на go или на плюсах.
Да, одному. Остальным он напоминает перл.
В голос.
Возьми да напиши
Может ли компания Х начать развивать раст в своем видении без мнения Rust Foundation?
Зачем
Не хочу форк, хочу чтобы это был типа rust++
Это не форк. Это ребрендинг.
Да
>С другой стороны концепция владения практически всегда заставляет тебя передавать ссылку, а не значение, что положительно сказывается на потреблении памяти.
А это вообще к чему было? В той же джаве ты в 99% случаев ссылки перекладываешь
Наверное вывернуться можно. Вот только зачем? Будешь писать на джаве так же кропотливо как на расте - и работать будет примерно как на расте. Так уж проще писать на джаве.
Конечно, ведь на много проще изучать изучать концепции владения, трейты и функциональщину, чем язык в котором из конструкций - функция, структура и указатель.
Хайпующие вкатуны совсем обезумели.
Я тот самый хайпующий вкатун. Да, я стану мастером Раста будучи вкатуном вкатившимся на хайпе. Весь этот итт тред будет мною восхищаться. Точка.
Ну так он уже 5 лет и хайпует потихонечку. Всё правильно. Скуфидон, будь попроще
Нет, когда раст только появился - хайпа не было. Это только сейчас стали на самоподдуве его разгонять.
> это просто неудобно
Безопасность всегда была неудобной. Длинный пароль из цифр, букв и спецсимволов, без возможности его записать, с требованием менять на новый каждые две недели - тоже неудобно, зато безопасно. Так и тут. Боров на борове и чеком погоняет. Неудобно, зато если скомпилировалось уже не упадёт. Если ансейфами себе в ногу не настрелял, офк. И офк, если не накачал крейтов с ансейфами внутре, ты такой весь сейфный, но с крейтами, но в код крейтов не заглядывал.
>зато если скомпилировалось уже не упадёт
У джава-шорпистов ничего не падает, но меньше ошибок не становится - то есть, тесты все равно писать, даже если плюсовик и растер, но на ресте еще трахаться чтобы в парадигму код пропихнуть. на зиге можно передать тестовый аллакатор, который укажет где ты накакал в памяти.
И да, refCell тебе за щеку.
Раст никак не решает системную сложность, 100500 картинок которые были в треде тому подтверждение, лови новую.
сложные пароли группируются в кей-менеджер, поэтому хватит графоманить.
Просушил штаны и вернулся, шиз
Долбоёб, который писал только лабы на Си, ты? В Си хуилион подводных камней, в связи с чем конпелятор постоянно тебе пытается воткнуть нож в спину, а также тут хуилион вопросов с тулингом, в пидорасте пространство аналогичных вопросов гораздо меньше - вкатуну будет проще
>концепции владения
В Си они тоже есть, но мы уже поняли про уровень твоей компетенции.
адекват
Си это буквально самый простой язык из всех возможных
В языке буквально пару семантик и легчайший синтаксис
неговоря еще о том что большинство либ с которыми ты будешь работать это С api, и лучше знать их чем какие то обертки на расте
Как будете оправдываться?
> почему? а что юзать?
Чо ты у меня спрашиваешь, у анб узнавай
Они там целый документ на этот счёт выкатили
> почему тогда Ghidra на плюсах?
Ху
>анб говорила
Ага тысячи зависимостей, хер пойми от кого и откуда, безопасненько. Че морду скрючил, иди обновляй бэкдоры.
Я писал: компиляторы, ядро ОС, эмуляторы. Недостаточно для знания Си?
А прошивки для космолётов писал?
>В Си они тоже есть, но мы уже поняли про уровень твоей компетенции.
А твой уровень компетенции? Сколько лет в коммерческой разработке на С и что пишешь?
> В Си хуилион подводных камней
Если ты знаешь UB стандартной библиотеки, их резко мало. SAST быстро находит большую часть неочевидного, DAST оставшуюся.
Не смотрел, но разве не на джаве?
>In a new report, the White House Office of the National Cyber Director (ONCD) has called on developers to use "memory-safe programming languages,"
>Java is considered a memory-safe language
>В Си хуилион подводных камней
Конечно, каждый кто пытается научиться программировать с программы-калькулятора натыкается на баги в компиляторе
>почему тогда Ghidra на плюсах?
https://github.com/NationalSecurityAgency/ghidra
>Java 85.9% C++ 6.9%
Узнаешь ссылочку? Перейди и посмотри статистику по языкам, только чистые штанишки приготовь сразу, а то задрищешь
>Я писал: компиляторы, ядро ОС, эмуляторы.
Писал или написал? Где можно посмотреть на твой компилятор?
Да, чел, написал компилятор уровня llvm в одиночку, щас скину тебе за щеку
У меня все физруки в универе были именно МС, кто-то по боксу, кто-то по лыжам, в ПТУ да, были просто люди с улицы.
компилятор си это буквально легчайший из возможных
литерали задача уровня курсовика для 3 курсника
Я гениален и знаю побольше вашего. Можешь и дальше биться от бессильной злобы и зависти.
Говно, твои слова это мусор. Просто дай ссылку на свой профиль на гитхабе.
Чтобы так пиздеть, как ты, надо хоть что-то из себя представлять. Пока что ты просто 🤡.
Линукс
О, доктор пришел, этот чудесный человек по всем тредам ходит и ищет какого-то шиза. не понимая, что шиз это он
Зачем ты меня преследуешь?
Ну я буду сюда и за советами приходить.
Куча петпроектов
Нужно еще оставшиеся биты инвертировать
https://ru.wikipedia.org/wiki/Дополнительный_код#Представление_отрицательного_числа_в_дополнительном_коде
Нет конечно, расскажи очень интересно!
Попробуй отправлять команды на смену обоев через std::process::Command. Разные оси можно указывать через cfg
То есть, мне нужно написать приложение, меняющее обои например на си, а затем, мне надо будет написать на расте приложение, создающее приложение, чтобы я менял обои, пока меняю обои? Хмм... Нет.
То есть ты знаешь как написать программу на си которая меняет обои, но не понимаешь как это сделать на расте?
Охуеть кто голос подал!
Ошибки такого уровня у меня сейчас
Хочу на расте писать и точка.
>>073180
Создай нужные функции, например
pub fn owu6ka<T: Debug>(msg: T) -> async_graphql::Error {
warn!("Пишу в лог {:?}", msg);
async_graphql::Error::new("Пишу клиенту что у него owu6ka")
}
А уже в коде перед самой отправкой на клиент используй map_err:
let user = self
.models
.user()
.find_by_email(email)
.await
.map_err(owu6ka)?;
На клиент по сути надо обощенную ошибку, чтобы ничего не выплюнуть лишнего, а остальное в логах пишешь как надо. Мы используем anyhow и где надо добавляем контекст в итоге в логах написана вся красота
Правда теперь надо засунуть логирование и энихау, но это уже следующим шагом
Да, на доступных языках HTML, CSS и JS.
>имеет смысл прогу написать консольной, а гуй-обертку написать на более доступном языке?
Имеет смысл пойти нахуй и тупорылые вопросы не задавать!
Попробуй tauri, у тебя будет WebView, в котором ты гуй на любом JS фреймаорке можешь написать.
Ну или Slint есть хочешь qt-like декларативщины.
А в чем минусы сторонних оберток, это плохо работает или что?
Вот к примеру https://github.com/kannagi0303/yt-dlp-gui гуй на шарпе, а софтина на питоне.
> а гуй-обертку написать на более доступном языке?
Гуй-обёртку зачем на языке писать? Гуй-обёртку надо в дизайнере форм формошлёпить. Не? Саый лучший из виденных мной дизайнеров форм - это дельфи и его клон лазарус (который уже не нужен, ибо нынешние владельцы дельфи опомнились и выпустили бесплатную версию, но было поздно, ахаха).
Посоветуй.
Смотря что ты пишешь, зачастую бывает неудобно выстраивать взаимодействие между двумя процессами, особенно если много разных методов нужно вызвать и структуры передавать сложные. Если что-то простое и прямолинейное, то почему бы и нет, если работает и быстро можно наваять.
На расте вообще туго с любыми либами.
>>073454
> Попробуй tauri
Веб-параша, причём очень кривая, лучше уж электрон взять, он хоть работает быстро и без графических багов. Я с полгода назад пробовал его в очередной раз чекать, всё так же блевотина.
>>073490
> это дельфи и его клон лазарус
Они устарели насколько вообще можно, со времён ХР там ничего не менялось, ещё и паскаль вместо ЯП. У майков есть формошлёпство на шарпе, даже удобнее лазаруса хуяк-хуяк делать, есть мультиплатформа для линуксоидов/мака даже. Под виндой так же есть свежий WinUI, на крестах, по скорости и красоте гуя это вообще топ, отрисовка сильно производительнее qt.
>>073530
Потому что оно ЦП жрёт адово, ещё и надо с рендерингом ебаться. Использовать immediate гуй для пары кнопочек - это совсем пиздец. А ещё у юзеров без видеокарты будут сюрпризы, смотря какое графическое API возьмёшь - в лучшем случае будет тормозить как сука, в худшем вообще не запустится. Если реально надо пару кнопочек сделать, то лучше уж на голом winapi - будет легковесно, быстро и работать у всех.
> формошлёпство на шарпе
Мы вроде как в треде системного компилируемого языка находимся, а не в треде скриптовой дотнетопараши. Ваще поебать, насколько оно там удобно, если в результате ты получаешь жирный вендорлок.
> свежий WinUI, на крестах
Вот это уже интереснее, в контексте связки с бэком на расте.
> компилируемого язык
Так и шарп компилируется уже в нативный код, лол. Уже две версии дотнета как там есть AOT-компилятор вместо JIT. Поддержка формошлёпства правда пока частичная, но допил идёт.
> компилируется уже в нативный код, лол
> AOT-компилятор вместо JIT
Не разбираюсь в сортах говна.
Вот раст искаропки компилируется в нативный код и мне не надо ничего гуглить.
гугли qt, gtk
>не читающему шапку
Сложно не жопой прочитай изначальный мой пост. Уровня qt и gtk фрейворков на расте нет и не будет. Только недокостыли для связывания с++ библиотек с растом.
>На расте вообще туго с любыми либами.
Вот на этом и мрут 99% новых инновационных языков из-за отсутствия экосистемы. Жить могут только языки, поддерживаемые корпорациями типа гугл.
Так что, похоже, кодинг C/C++ будет существовать до второго пришествия, каким бы он уебищным не был.
>ты получаешь жирный вендорлок.
Ну да, у нас тут есть стандарт, с десяток компиляторов и сотни сайтов репозитарий. Никакого вендерлока.
>Так что, похоже, кодинг C/C++ будет существовать до второго пришествия, каким бы он уебищным не был.
Опыт зига показал, что людям нужен скорее язык с полным интеропом и кросскомпиляцией и люди, в этом случае, даже готовы брать бета язык.
А для проблем с памятью достаточно тестового аллокатора.
> Веб-параша, причём очень кривая, лучше уж электрон взять, он хоть работает быстро и без графических багов. Я с полгода назад пробовал его в очередной раз чекать, всё так же блевотина.
Пользуюсь им, сделал пару утилиток для хакинга для себя, проблем никаких. Может у тебя руки не из того места?
Опыт написания todo-app-cli
Выложи.
А там можно сделать split screen, поделить экран на независимые части или, если подключены несколько мониторов, на каждый монитор выводилась свое окно/фуллскрин?
По любому на Mac и разных окружениях Linux это можно сделать через команды. Если нет, то можно просто менять конфиги (путь к картинке)
Твердо и четко?
Rust уже используют эти самые большие корпорации. Он уже достаточно жирный, чтобы существовать самостоятельно. По крайней мере, в нём полно всяких врапперов для различных библиотек с плюсов.
Нет, нужно всё переписать, и плюсы должны уйти в забытье.
Алсо, там где в тс обычно Промисы, в расте обычно Результы. А resolve, rej - это тупо Ok(), Err
учтить раст как 1ый язык норм?
знаю лишь чуток го и с++ и питон, до уроков с массивами и поинтерами. все. опыта 0. гитхаб не знаю.
матеку и геомешу люблю очень
хочу делать
а) 500к в месяц(баксов... мб питон ML качать и в Долину - это наибыстрейший способ, нет/да?)
б) работу без стресса, любивую, 40ч в неделю за по верху рынка но готов 60ч за 350% от рынка
в) для души - хотел бы делать ААА игры чтобы продавались по 20 млн копий, на все платформы, типа Гта и ведьмака но круче, чтобы 4 измерения, дееткив и мистика, парарлеьные миры, 8 разлитчных веток сюжета(НЕ пересекающиеся. т.е.начав на 20% прохождени игры играть скажем РЕНЕГАДОМ а не ГЕРОЕМ - у тебя будут иные миссии(в тех же местах), иные сцены, иные разивтия персонажей...
почему... ((
Это не троллинг, кстати, это ребёнок-даун добрался до компа. Не смейтесь над больным.
На расте нет своих библиотек
да
Опыт зига это реализация bun.js? Потому, что других извстных решений я не знаю. И если это так, то этот опыт пока нельзя считать релевантным.
Всё так. Ещё пару лет такими темпами и отказаться от языка и вернуться к тем же плюсам будет очень сложно. Единственный современный конкурент это Mojo, но и там надо релиза ждать, чтобы нормально сравнивать.
щас бы сравнивать жопу с пальцем
>Mojo
Это нишевая хуйня для МЛ и питонистов, там даже костыли для питоновского синтаксиса ввели, чтобы тупо копипастить питоновский код. А так тот же раст без владения и лайфтаймов, со структурами и трйетами без полноценного ООП, но в питоновском стиле
>>3075836
В расте вообще нельзя без "безопасных" обёрток использовать низкоуровневые либы, религией запрещено.
Поясни
> Это же та же сишка, но с расширениями
Вот именно поэтому. Плюсы котируют там где пишут на них не как "на сишке с расширениями".
мда
>вскод
Лучше поставь растровер , там интроспекция глубже.
>учить by example
опыт в программировании на других языках есть? Может ну его, этот раст?
>хочу работу скорее найти
Пока что количество программистов, которые в восторге от раста, сильно превышает запросы работодателей, так что тут надо быть ниибаца каким бородатыч сеньором в свитере с крестами в анамнезе. Свитер есть у тебя?
Сашенька, сперва уроки, потом движок.
Модный? Модный-то сишарп. А раст, он как шахматная задачка для продвинутых шахматистов.
> напиши программу, чтобы е два е четыре, мат в два тика, и ходить можно только конём, если пытаешься походить ладъёй - прога отказывается компилиться.
И чё, бля, и чёёёё???
Ну ты и фантазер.
Есть.
> но это кок-пок биндинги!
По такой логике, приложение на расте вообще запускается в ОС, написанной на си. Надо начинать не с "графической апишки", а с написания ОС на расте. Тогда троллинг удастся.
>Есть
Нет, нету. Ты не видишь разницы между нативным апи и прослойками?
>вообще запускается в ОС, написанной на си
Аналогия некорректна. ОС поддерживает разные языки, компилятор всё переводит в машинные коды, и на низком уровне нет разницы в языках.
Можно собирать программы из модулей, написанных на разных языках, но это хуйня какая-то.
>троллинг удастся.
хуюлинг, додстер.
>Нет, нету. Ты не видишь разницы между нативным апи и прослойками?
>
> компилятор всё переводит в машинные коды, и на низком уровне нет разницы в языках
Ты буквально сам опроверг собственный тезис.
Если я оберну функцию malloc функцией yoba_malloc, означает ли это, что я больше не пользуюсь стандартной либой C?
ты такой забавный
Поставленный анус не проходит проверку борова-чекера как заимствованный, поэтому вангование не компилируется.
Язык безопасный, а идеального кода никто не обещал. Баги есть. Баги отлавливаются. Так и живём.
Да. Иди развивать.
Зачем индюкам опенсорс? Им главное чтобы куча фич и бесплатно.
Нет ты
1. Данные автоматически удаляются при выходе из блока. Это понятно?
2. При вычислении некоторого выражения в некотором блоке, ты хочешь вернуть вычисленные данные. Такое бывает?
3. В расте ты вычислил данные, пытаешься их вернуть, но они удаляются согласно пункту 1.
Твои действия?
Ответ: надо как-то пометить возвращаемые данные, чтобы они могли пожить некоторое время, при выходе из блока, в вышестоящий блок и этой пометкой и является лайфтайм.
Да, я когда до этого дочитал в растбуке, тоже приуныл. Сначала всё было хорошо, а потом пошло: а-штрих, бэ-штрих...
Надо было как-то элегантнее сделать.
Ладно.
Возвращаешь данные, а не ссылку на данные.
Костылизация, оказывает владение сложнее хеллоу-ворда плохо ложится на реальным мир разработки. Дальше будет хуже.
Один раз раст и вот ты уже пидораст.
Двачую. Вернулся опять на шарп. Мечтаю о нативном шарпе без дотнета (НО НЕ СИ!!). ИТТ сижу по привычке. Вдруг случится чудо и раст... Впрочем, нет.
Я всё прекрасно осилил, просто пока что мне надо формошлёпить КРУДы, на шарпе мне привычнее и быстрее. Как появятся системные задачи - я раст в уме держу.
> бубубу, яскозал!
Ладно-ладно ржавошиз. Держу в сердечьке, главное не нервничай, успокойся, положи нож на место, блядь!
Раст написан на юните и на сишарпе
Раст не сложный, он скорее неудобный, неприятный. Я осилил, но положил болт, просто не комфортно писать, не получаю удовольствие, особенно после котлина, где меня просто избаловали.
Ну знаешь есть понятие цветных функций, а из лайфтаймов появляются еще цветные несовместимые типы. Эти костыли rc, refCell, fnMut итд. Само по себе владение, костыль, потому как работаешь с ссылками, а там другой раст. Магия макросов, само по себе трудное чтение кода, процедурное программирование зло. То есть, банально больше 3-4 параметров в функции уже зло, а писать в объектном стиле понадобиться и IoC, а там уже и геттеры/сеттеры, в общем, процедурное программирование мертво. Опшены это просто операция ветвления. Для промышленного кодинга эта хрень не годится точно, нужен стектрейс ошибок и иерархия ошибок.
Много еще от чего у меня бомбило, но я уже не помню, одно только отсутствие GC не выкупает все это говно.
> одно только отсутствие GC не выкупает все это говно
> рили не выкупил
Мы вас выслушали. Мы вам перезвоним.
https://finance.yahoo.com/video/blackrock-drops-esg-approach-transition-225945468.html
> процедурное программирование мертво
...
> банально больше 3-4 параметров в функции уже зло
уже даже в си эту проблему решили, посмотри как апи в вулкане том же устроен
перепиши вулкан на раст, не будет лапши
>особенно после котлина
Хах, я на котлине не могу после раста. Хуй пойми откуда ждать иксепшон, енумы какие-то стрёмные, туплы ебануто реализованы. Но удобнее голой жабы, это да.
>Хуй пойми откуда ждать иксепшон
Сразу видно вкатуна, который никогда не работал. В 90-99% случаев ты не можешь восстановить контекст и просто логируешь сообщая о сбое, поэтому и ручная обработка, она же checked exception, была признана моветоном и исключена из котлинов и шарпов. Но зумеры вернули их в го, расте, вроде в свифте.
Я конечно понимаю, что раст низкоуровневый, но радоваться долбежки в ошибки на каждой строчке, такое себе удовольствие. Исключительные ситуации на то и исключительные, что не являются нормальным процессом работы и требуют отдельного внимания.
внутри там вобще всё что угодно может лежать, хоть глобальные переменные или синглтон
конкретно в этом коде происходит намного больше чем просто структурку заполняют
>вместо миллиона параметров, есть простая структура данных, где поля это и есть параметры
>код становится читаемее во много раз
Прикинь на расте можно также, добавь Default к структуре и ты можешь делать тоже самое нихуясе, да?
Только так лучше не делать, а более православный путь с билдером вот это >>087302 там ты можешь например провалидировать каждое значение и проверить на обязательные, а остальные оставить дефолтными.
> Прикинь на расте можно также
а я говорил что на расте нельзя? или ты про что?
просто анон говорил что миллион параметров в функции это плохо, а я ответил что даже в си эту проблему уже решили
> более православный путь с билдером вот это
в сишке к сожалению такого не сделать макросы даже не рассматриваются как вариант
>а я говорил что на расте нельзя? или ты про что?
Не, всё ок, я думал ты другой анон, которому неудобно.
LLVM - это широко используемая инфраструктура для разработки компиляторов, предоставляющая набор библиотек и инструментов для создания оптимизирующих компиляторов и генерации машинного кода. Многие известные проекты, такие как Clang, Rust, Swift и другие, используют LLVM в своей основе.
Автор комментария, судя по всему, негативно относится к LLVM и считает, что зависимость от этой инфраструктуры делает проект менее самостоятельным или качественным. Он называет LLVM "блотвером", проводя аналогию с вредоносным ПО, видимо, намекая на его "паразитический" характер или негативное влияние на проекты, которые его используют.
Однако такое сравнение некорректно, так как LLVM является легитимным и широко признанным инструментом в разработке ПО, а не вредоносной программой. Использование LLVM само по себе не делает проект хуже, а зависимость от тех или иных библиотек и фреймворков - обычная практика в разработке программного обеспечения.
Это в целом про раст, так что и llvm там к месту. Компилятор крестов не смогли за 10 лет написать, пусть теперь пидорастам дымоход чистят.
>и просто логируешь сообщая о сбое
Ага, допустим. Вот только ты не знаешь, откуда ждать этот сбой. Каждую подозрительную строчку в try оборачивать и логировать?
Ну и, что касается практики - писал торгового бота на расте, там возможность обработки ошибок очень помогала.
А это важно? Если какая-то операция может завершиться с двумя результатами - это не сбой, нужно оба состояния обрабатывать как обычно. Сбой это когда произошла какая-то неведомая хуйня - тут уже неважно что и где, т.к. нет гарантий что этот сбой не поломал ещё что-то. В try оборачивается блок кода, который пойдёт по пизде в случает сбоя внутри - в большинстве случаев этот блок всё равно надо будет рестартить заново с учётом произошедшего или вообще ронять весь рантайм. Условно, если ты собираешься читать файл, то надо чекнуть что это можно сделать и потом уже читать, а не читать на похуе и ловить эксепшены.
Что за бред, не знаешь что ловить, лови общий Exception "на верху". Сидеть и долбиться в подобие if..else, тоже не радость.
Самый простой пример, из того же трейдинга: нужно мне получить цену лота. В одном случае для меня это не критично, например, когда надо обновить данные в таблице (пикрил), в другом критично - когда хочу сделать ставку. Соответственно, я
а) всегда знаю, где может случиться ошибка
б) могу варьировать поведение в зависимости от : хочу - unwrap с паникой, хочу - наверх проброшу, а могу и просто заигнорить.
г) легко могу собрать, сортировать, посчитать и как угодно обработать ошибки, которые, суть, обычный вариант от enum.
Это вам не
>лови общий Exception "на верху"
>>090395
>Если какая-то операция может завершиться с двумя результатами - это не сбой
ага, вот только в котлине это всё пиздец как неудобно. А если с тремя, а если с четырьмя? Что там нам предлагается, с кодами ошибок изъёбываться или отдельный класс под возврат каждой функции пердолить?
Исключительная ситуация, это ситуация выходящая за бизнес логику, если тебе надо вернуть управляющие данные, то возвращаешь данные со статусами, а не придумываешь херню.
Для самых маленьких:
try {
//бизнес логика.
} сatch {
// не бизнес логика, исключительная ситуация, не гадящая в основную логику.
}
Я же тебе, дурачку, показал конкретный пример. Есть функция, которая может вернуть ошибку. В зависимости от контекста вызова меняется поведение при возникновении ошибки. Если у тебя глобально один try / catch на всё, то, ну, ну сам понимаешь.
>>090511
Я не изъёбываюсь, это всё где-то под капотом. Ты не видишь разницы: изъёбываться самому или доверить это дело языку и компилятору?
часто вижу программы, которые наполовину написаны на си, а другая на плюсах. Типа автор не определился на чем он хотел писать?
Там либы сишные, а код на крестах.
РАСТ не взлетит вообще. Я так думаю.
Ну... 1 главная причина: он уродливый. Его ОЧЕНЬ сложно читать. Даже если ты сам пишешь или переписываешь чей-то проект. А представьте 10 или 100 или 1000 человек работающих над N программами. Какая же мозгоебка.
Окей, где важна скорость и безопасность, самая база ОС, может быть, может быть написана на Расте.
Но если мы говорим о будничном софте, то я не вижу причин, почему кто-то будет тратить N месяцев на разработку проги на расте, когда конкурент за N/2 время будет такое же хорошее приложение сходной по размеру и компетенциям командой делать. Раст тупо не конкурентен там, где время разработки/скорость поддержки(апдейтов, улучшений) имеет немалый вес
Почему бы не Аде писать? Всяко лучше чем пидораст
>1 главная причина: он уродливый
Уродливым я бы не назвал, скорее причудливым.
>Его ОЧЕНЬ сложно читать
Нет если код написан профессионалом.
>когда конкурент за N/2 время
А конкуренты кто? C++ ближайший конкурент. И на нём в 2 раза быстрее писать код? Да ладно?
>Раст тупо не конкурентен
Спорный аргумент основанный на домыслах. В реальной жизни ты не пробовал, но думаешь что так будешь.
мимо-дед
> сколько места эта хуита занимает
И сколько же?
> С чего начать?
С растбука. Только читай честно, без скипов и с выполнением ДЗ.
10 гигов папка с проектами на расте.
>Если написан профессионалом
Хуя нихуя, код на ЛЮБОМ языке лучше читается если написан профессионалом, вот только уже люди не тупые и начали делать языки по принципу гайдлайнов для читабельности вроде го и зига, потому что не-профессионал - это то, на кого стоит ориентироваться создателю языка.
Вообще у раста нет идеи как таковой, его спиздили меилручнули-майкрософточипировали у создателя, он идет курсом как ветер занесёт, и через пару-тройку лет станет теми же плюсами с кучей нахуй ненужных фич которыми никто не умеет пользоваться, только это будет еще приправлено огромными бинарниками, уебищным ллвм-овским тулингом и десятками memory-leak'ов в std да и в простом safe.
У раста есть возможность спастись только одним путем - сделать форк стабильной версии, направить все ресурсы на оптимизацию и устранение проебов в памяти и уже МОЖЕТ добавлять фичи по необходимости, а этот железный корабль под именем "Ржавчина" пусть окисляется у майков на зарплате, пока не наиграются.
> добавлять фичи
Лучше бы убирали и боролись с репитативностью синтаксиса.
Вот возьмём обработку ОДНОЙ ошибки от чела выше, что в ней видим:
> 9 открывающихся-закрывающихся скобочек
> лямбда
> дженерик
> енум
> монада
Против примитивной конструкции с if или циклом для заполнения векторов. Куда, блять, ещё сильнее замусоривать этот кал.
А в чем проблема-то? Конкретно здесь это выглядит как выебоны, но лямбды так-то половину GoF делают ненужной хуйней.
Любая книга по rust'у, миллион примеров.
>>091334
Это уже не проблема самого языка. Язык не отвечает:
1) За количество вакансий.
2) За пользователей
3) За зарплату
И т.д.
Тоже самое может произойти с любым наикрутейшим фреймворком. Ты щас возьми любой супер-пупер язык, придёт рукожоп и сделает говно. Любой инструмент в руках долбоёба будет плохо работать. Ты щас дай скрипку Страдивари за 16 миллионов нюфагу и он её или сломает или сыграет полную хуйню. Это же не вина Страдивари, что он не сделал достаточно простую скрипту, чтобы даже полный долбоёб мог сыграть.
Еще раз, для самых маленьких для растеров. Если что-то возвращает управляющие данные (влияющие на бизнес логику) то, это будет частью бизнес логики уже тавтология пошла, это не должно быть ошибкой.
Есть два потока состояний - нормальный поток и нет. правильно говорят, что системщики не понимают в архитектуру
> язык не отвечает за пользователей
Ты только что сказал, что ни разу не программировал ни на C, ни на Go, ни на любом другом подобном языке; язык ДОЛЖЕН ограничивать пользователя.
Почему огромное количество проектов до сих пор пишут на С, а не на плюсах, хотя у первого практически нет никаких преимуществ перед вторым? Да потому что писать плохой код на плюсах гораздо проще, падает планка качества проекта и повышается разношёрстность кода, делая команду менее состоятельной.
В Zig и Go очень часто компилятор не дает ничего сделать с кодом, потому что там ошибочная разметка или другие глупости, с которыми в коде хоть и нет багов, но читается он хуже. По этой же причине отсуствие классов в языке это ФИЧА, а не наоборот.
> любая книга, миллион примеров
Что то мне кажется, что количество материалов по расту гораздо больше, чем оригинального кода на этом языке. Ржавые это религиозные инфоцигане прогромирования, только наебывают тебя на священное время.
>Почему огромное количество проектов до сих пор пишут на С, а не на плюсах
Это их личный выбор. Почему программист или кабан выбрали язык А, а не выбрали язык Б, пусть психологи разбираются. Это может быть элементарный АВДРУХЧО аргумент, в каждой отрасли полно ссыкунов которые ссуться изменений и малейшего риска. Человек может верить во что-то, необязательно это будет правдивое. Он верит допустим в том, что С++ тормозит или С++ не подходит для больших проектов и не выберет изначально.
>хотя у первого практически нет никаких преимуществ перед вторым?
Любое действие в программировании можно сделать десятком разных способов. Причём не обязательно способ А лучше способа Б.
>В Zig и Go очень часто компилятор не дает ничего сделать с кодом, потому что...
Возможно, но мне лично похуй.
>количество материалов по расту гораздо больше, чем оригинального кода на этом языке
Это твоё личное мнение.
Чел, ты бредишь. Сишка меньше всего ограничивает кодера.
> отсуствие классов в языке это ФИЧА, а не наоборот
Когда в пердоликсе костылями эмулируют классы, то что это? Или в винде изобретают ком-объекты? Иди нахуй в общем.
Вот ты глупый, ей-богу. Сравни:
На расте ты всегда сразу знаешь, где у тебя Result, где Option, а где значение и можешь выстраивать от этого бузинес-логику.
На котлине хуй разбери, что там наворочано в сторонней функции. Хорошо, если она возвращает Result, который, впрочем, на котлине хуёво сделан по сравнению с растом. А может ведь и срыгнуть Exeption - что тогда? Тогда ты, такой, "Ааа, бля, дак оно ещё и крашнуться может, ссука" - и перелопачиваешь готовый код, меняя логику под это дело, так как результат вызова не такой уж обязательный и перетерпеть, в-принципе, можно.
Блять, ещё вот эта https://discuss.kotlinlang.org/t/stacktrace-points-to-line-after-end-of-file/4129/9 хуита постоянно мозг ебёт. Почему в низкоуровневом расте, где дохуя макросов, которые разворачиваются в простыни, такой проблемы нет, а в высокоуровневом котлине, который отжирает половину оперативы для хеллоуворлда, не нашлось способа срыгнуть нормальные номера строк в бэктрейсе? Шо джава говно, шо это.
Не эмулируют, а имплементируют, для тебя класс это что-то что на уровне проца заложено? Имплементация фич по необходимости и есть фича C, чё вы как маленькие.
>>091692
>Мне лично похуй
Дурак ты. Я тебе добра желаю, перед тем как лезть в раст поработай хоть над проектом серьезным и может для тебя вопросы об архитектуре будут решаться не "психолухами". А так свое время угробишь только.
>Не эмулируют, а имплементируют, для тебя класс это что-то что на уровне проца заложено?
а что вы там scanf и printf и прочее из stdio.h не имплементируете по необходимости?
как вы будете бороться с тем, что один имплементирует так, а другой иначе?
что тогда не на чистом асме пишете? под каждый проект не создаете свой язык?
другой анон
> а что вы там scanf и printf и прочее из stdio.h не имплементируете по необходимости?
Нет необходимости.
> как вы будете бороться с тем, что один имплементирует так, а другой иначе?
https://git-scm.com/docs/gittutorial
> под каждый проект не создаете свой язык?
Ну вот раст делает же кто то, у них спроси.
>Нет необходимости.
так юзай раст и в имплементации классов у тебя тоже не будет необходимости?
и ты не ответил про asm - что на нем все не пишешь, а юзаешь готовое? имплементируй все с нуля, вот ссылка на гитхаб туториал у тебя есть, посмотришь как другие имплементируют и сделаешь так же
Блядь, еще раз - фичу нельзя убрать, можно только добавить. Если у тебя в языке есть классы, у тебя в мердж реквестах будут сплошные классы от студентов, а нахуй тебе это надо если у тебя проект не ООП? Это реально так трудно понять?
>так юзай раст
Memory leak в std, невозможность дебага unsafe? Нет спасибо.
ну а что ты будешь делать, если фичу добавили до тебя? при этом ты считаешь, что фичу зря добавили? или надо было имплементировать эту фичу иначе?
>поработай хоть над проектом серьезным
Да мне похуй, я психопат. Могу себе позволить поработать и над серьёзным и над потешным/несерьёзным. Чё ты мне сделаешь? Я бешеный!
Есть шансы вкатиться в Rust, если я джаваскриптизер обыкновенный?
>Есть шансы вкатиться в Rust, если я джаваскриптизер обыкновенный?
Возьми ПОДАЙ ЗАЯВКУ и сам узнаешь. Чего ты ждёшь? Письменных блять гарантий, со штампом и росписью кровью? Их нету! Единственный кто может гарантировать вкат - это ты сам. Не жди советов "знающих людей", гайдлайнов, инструкций, пошаговых схем, никто тебе не скажет "учи вот это, это и это и ты гарантировано вкатишься".
Проблеск разума угас так же внезапно, как вспыхнул?
Да, представляешь, совсем необязательно прибивать ООП к языку.
Вполне можно сделать ООП как систему объектных типов рядом с системой необъектных типов.
Всё зависит от того, какие приложения на предлагаемом языке предполагается чаще писать.
Потому что:
Если язык изначально "ООП", ты столкнёшься с горой статик-бойлерплейта при написании необъектных программ (например, шарп).
Если язык изначально "неООП", ты столкнёшься с горой Объект.Метод-бойлерплейта при написании объектных программ (например обджект-паскаль из дельфи).
В языках без нормального ООП начинается отсос в ООП-задачах - это про сишку и почему она не нужна в 2024 году.
А вот в расте нет полноценного ООП, но всё прибито гвоздями к типам и их трейтам, как раз о чём ты пишешь происходит - куча бойлерплейта с impl вокруг структур, даже если структура пустая и нахуй не нужна.
в процедурном стиле можно писать и на расте, т.к. там сами еще не решили ООП они или нет
>Вполне можно сделать ООП как систему объектных типов рядом с системой необъектных типов.
вот это ты раст сейчас описал
>куча бойлерплейта с impl вокруг структур, даже если структура пустая и нахуй не нужна
если нужна просто функция (без структуры), пиши просто fn() без всяких блоков impl и пустых ненужных структур
Если отказаться от std и прочих стандартных библиотек, компании Х разработает свои библиотеки, от rust что-то вообще останется?
Чел тупо не понял, что ему написали.
> там сами еще не решили ООП они или нет
Делать языки ООП-языками - ошибка, ИМХО. Именно поэтому я - здесь. Потому что раст - первый из увиденных мной языков, который производит декомпозицию принципов ООП. (Но не первый из сушествующих, офк).
У меня есть структура данных. Я хочу, чтобы она получила признаки объекта. Что я делаю в ООП-языках? Я переделываю структуру в класс, создаю этому классу интерфейс, пользуюсь конструкторами для создания экземпляров. Казалось бы, хороший план, надёжный, как швейцарские часы, но... Где моя структура?
И вот я в расте. У меня есть структура данных. Я хочу, чтобы она получила признаки объекта. Что я делаю в расте? Я пишу типаж для структуры. Пишу имплементацию типажа. Возможно, в разных файлах. Изумительно. Структура лежит на месте. К ней подключены ООП-сущности. Идеальное разделение данных и логики. Джва года ждал. Сделоли.
а зачем тебе типаж, если у тебя просто одна структура данных? что понимаешь под "признаками объекта"? просто impl чем не нравится?
> а зачем тебе типаж
Вот хочу!
> у тебя просто одна структура данных?
Не одна.
> что понимаешь под "признаками объекта"?
То же самое, что понимали древнегреческие философы.
> просто impl чем не нравится?
И просто импл тоже пригождается.
Ты же шизоид. Всё что сделали в расте с ООП - поломали то что работало. Например инкапсуляция - её теперь нет, кишки лайфтаймов и боровов торчат наружу. Вместо наследования какая-то магическая залупа derive. Полиморфизм испоганили строгой типизацией. То что impl блоки отделены - это к ООП никакого отношения не имеет. По факту в расте ООП нет вообще ни в каком виде.
> получила признаки объекта
Пиздос дурка, чел даже значения слов не знает.
>Вместо наследования какая-то магическая залупа derive
Уже по этой фразе видно, что ты нихуяшеньки не понял. derive вообще не про то. Подозреваю, что ты и в ООП не особо разбираешься, раз такое выдал.
>ООП - поломали то что работало
нужность ООП вообще под вопросом, а в системном языке так и вовсе
Тебе говорят, что ошибки это не бизнес логика. Но отсутствие значения или какой-то флаг в динамической системе, могут быть б-логикой.
То что тебе приходиться долбиться каждый раз в резалт, это проблема говноязыков. Да еще без макросов в расте ошибки создавать тот еще бойлерплейт.
Раст не может на лету переобуться и из резалтов и высрать хер пойми какую панику? Думаю с макросами, ансейвами и ты тупыми обертками над си, можно поесть куда больше веселого говна, я бы тут осторожнее выеживался понятно что ты хеллоу-ворд-мэн, но раст ты разлюбишь до первого пердолинга дампа памяти
Зачем?
съеби из треда
>высрать хер пойми какую панику
panic! крайне редко используется, разве что в конечных приложениях, где ошибку пробрасывать некуда. Впрочем, если найдёшь либу с паникой - покажи.
>>093156
>пердолинга дампа памяти
Всё лучше, чем сраный котлин, который даже номера строк в бектрейсе нормально вывести не может. Впрочем, не уверен, что всё так плохо - пердолил перформу через perf, проблем не было.
>>093145
>отсутствие значения или какой-то флаг в динамической системе, могут быть б-логикой
Ты не можешь выстроить блядскую логику без использования стороних либ, а в котлине зачастую это либы на жабе, где кроме throw HuitaNotFoundException вообще нет способа сообщить, что именно пошло не так. Да и в самом котлине таким тоже часто балуются.
>долбиться каждый раз в резалт
Это гораздо лучше, чем долбиться в null, где тебе вообще ни хуя не понятно: нет данных в таблице? Нет таблицы? Нет базы?
>какой-то флаг в динамической системе
Ой, блять, SDL_GetError ещё притащи как образцовый пример работы с ошибками.
АЛГЕБРАИЧЕСКИЕ ТИПЫ
ПОЛИФОРМИЗМ
НАСЛЕДОВАНИЕ
МОНАДА
ЛЯМБДЫ
ИИНКАПСУЛЯЦИЯ
>системный язык
Коде кондукт
1) Как лучше распараллелить чтение/запись с сокета? (если нужно, накину больше контекста)
2) Это правда что RwLock работают по разному в разных ОС ? Планирую кросс компилить linux->win, поэтому хотелось бы знать о подводных камнях.
Что значит распараллелить? Ты сначала вычитываешь все из сокета, потом пишешь туда.
1. Заходишь в https://t.me/rust_jobs_feed, смотришь вакухи, понимаешь чо хочет рыночек и что из этого ты можешь
2. Гуглишь interview questions по этим темам, прикидываешь что из этого ты уже знаешь, а с чем надо разобраться
3. (опционально) Делоешь за пару вечеров/выходных/недель фуллстак todo-list на axum/actix/tauri/etc, и чтоб внутри был diesel/sqlx/solana/wasm/pgrx/etc что ты там обнаружил на первом шаге
4. Апплаишься на вакухи в конторы, куда точно не пойдешь, прост чтоб потренироваться на интервью
5. Актуализируешь списочек в п.2, освежаешь знания
6. Апплаишься на вакухи, куда хочешь устроиться, устраиваешься, серешь в треде
Пиздос, одни сеньорские и лидовские вакухи. Как же ебут простых мидл+ господ.
>todo-list
Это же попса и для вката сегодня нужна как минимум копия твиттера в качестве пета.
Ну зависит же, в тч от предметки
Мне как-то тестовое задали на пару часов - ордербук закодить. Я закодил (и оффер получил), а потом за несколько дней развил его до примитивной биржи, с api, счетами, риск-менеджментом, персистентностью и хорошим RPS.
Теперь даю ссылочку на нее перед собесами и почти на всех собесах обсуждаем моё поделие вместо лайв-кодингов и тестовых
В этом то и фишка!
Представь поток данных, который льётся подобно реке в двух противоположных направлениях...
Что интересно, у сокета в базе есть блокировка на чтение, в ожидании пакетов, но нет чего-то подобного на запись, подумывал сделать такой механизм, который бы писал в сокет, только если некоторые глобальные данные обновились в системе. Но непонятно, стоит ли делать это на мутексах или лучше как-то иначе через каналы пропердолить это
>>094566
ты забыл самый главный пункт, крутануть 2-3 года в резюме
>ты забыл самый главный пункт, крутануть 2-3 года в резюме
Но популярных жопаэсе или петухоне это сделать куда проще чем на нишевом расте, да и меня скорее всего на первом кодревью спалят что я не уверенный мидл, а чел прочитавший растбук и пару недель с боровом поебавшийся.
Нет. Только ты один РАБотаешь, лох.
Так это литерали то же самое, только параметры ставятся не простым присвоением, а через методы.
Это плюсовое API, надо дополнительно обернуть на Си и биндгеном подлинковать.Еще есть какой-то костыльный крейт для подключения плюсов напрямую, но ну его нах
Поэтому пользуйся православным Glide, очевидно же.
Это проблема технологии что она реализована на стаковерфловнутом говноязыке, а не божественном расте.
Ну бля чел, ты сам знаешь, надо быть уверенным на покерфейс ебале врываться, иначе никак.
Я несколько лет пердолил джаву, в надежде вкатиться, но это просто хуита, если опыт не крутить. Да я и сам понимаю, зачем им какой-то скуф самоучка, когда есть упругие свежие зумеры с профильных вузов, с горящими глазами, которым можно копейки платить. Короче рыночек так порешал, если нет альфа стержня, так просто не залететь никуда.
тудулист только для фронтовичков и мобильщиков может сработать, остальным надо покряхтеть.
Как считается будет лучше, если для раста начнут разрабатывать собственный компилятор вместо llvm?
Потенциально такой компилятор может иметь преимущества перед плюсового llvm?
Нет, не будут разрабатывать, пушо проще любую архитектуру засунуть в бекенд llvm, чем писать с ноля компилятор.
Нет, не будет преимуществ (кроме как заткнуть дурачка, который считает отсутствие самописного бекенда в расте недостатком)
только в методах ты можешь делать не только присвоение, если это не тривиальный какой нибудь случай
например валидация
>Нет, не будет преимуществ
Почему не будет? Rust и C++ это разные языки, логично, что компилятор под rust должен в теории быть лучше, чем компиляторов плюсов. Потому что будут учитываться специфические вещи раста при оптимизации.
А если ты считаешь, что принципиально нет и не может быть ничего лучше богоизбранного LLVM и C++, и это пик развития человечества, ты, во-первых, ошибся тредов, плюсы обсуждают в своем треде, а во-вторых, нахуй тогда вообще нужны языки отличные от плюсов? Зачем что-то новое изобретать?
Это же просто по-сути обёртки вокруг С++. В чем смысл, в нескучном синтаксисе?
> заткнуть дурачка
Тебе придется много дурачков затыкать. Выйди из своей эхо-камеры на какие нибудь форумы, увидишь много разных мнений.
>Это же просто по-сути обёртки вокруг С++. В чем смысл, в нескучном синтаксисе?
Суть в том что ты не понимаешь сути LLVM. LLVM - это не компилятор плюсов, это фреймворк для создания компиляторов. Просто так получилось, что большая часть его написана на плюсах. Так же и GCC - фреймворк для создания компиляторов, написанный на сях.
На расте написан фронтенд раста для LLVM. Он превращает исходники на расте в LLVM IR, а потом уже сам LLVM этот IR оптимизирует и через какой-то из бекендов (x64/ARM/RISCV/etc) превращает в машинный код. Так же делает фронтенд плюсов, написанный на плюсах, и фронтенг го, написанный на го.
Для gcc тоже есть фронтенд плюсов, и каким-то энтузиастом пишется фронтенд для раста rustc_codegen_gcc.
Так вот, зачем переписывать LLVM на расте? Там рили десятки и сотни человеко-лет труда. Чтобы что? Избавиться от висячих указателей/гонок в многопоточке? Но это не проблема для софта, который запускается эпизодически.
> какие нибудь форумы, увидишь много разных мнений
Я пока не видел ни одного мнения с серьёзной аргументацией про необходимость собственного компилятора раста, написанного на расте. Просто пуки в воздух "а вот у плюсов/сей есть".
Лол, во первых они на расте LLWM в жизни не напишут;
Во вторых это очень небезопасТно будет, если у тебя утечка в unsafe ты базу никогда не раздебажишь, заново придется переписывать, либо оставлять каждый бинарий с утечкой;
В третьих если он будет селфхост то компиляция будет быстрее в разы, а зачем это микрософтам если язык нацелен на уничтожение опенсора и локальной компиляции в целом? Короче не будет такого никогда.
> плюсового llvm
Это ведь худший компилятор плюсов, что угодно лучше шланга. Сравнивай с gcc или хотя бы msvc.
>>099403
Чел, оптимизации делаются в соответствии с архитектурой, а не языком. Что за хуйню ты несёшь тут. Все языки на LLVM генерируют сначала IR-байткод, а потом уже оптимизируется под архитектуру и в машинный код компилируются.
> худший компилятор плюсов
По каким критериям? По поддержке санитайзеров он например лучший. По понятности ошибок тоже лучше обоих. Да и по архитектуре.
Баловался я как-то с llvm. Пытался добавить в него новую архитектуру для кодогенерации - по аналогии с теми, что там уже есть. Чем закончилось - очевидно. Убив пару дней на попытки это сделать, забросил в ужасе эту затею. Явно задача даже не на неделю, нет гарантии даже что за месяц можно добиться результатов на этом поприще. Там вникать глубоко нужнр, реально глубоко.
И рабочее место с двумя, а то и тремя мониторамми. Тот случай когда пялитьсч надо в несколько мест.
И ещё - методом тыка пробовать тоже не вариант - там базовые вещи в зависимостях, поэтому после каждоой правки в системе кодогенерации и оптимизации пересобирается половина проекта. А это долгий процесс.
Ух бля, не сложилось у меня с llvm.
> По каким критериям?
Хотя бы по поддержке самих крестов. Единственный компилятор из тройки, до сих пор не имеющий полной поддержки С++20. Даже nvcc может, а шланг нет. А clangd такое лютое дерьмо, что даже JetBrains свою альтернативу с нуля написали, лол.
>Просто так получилось, что большая часть его написана на плюсах.
>Так же и GCC - фреймворк для создания компиляторов, написанный на сях.
Почему бы появиться компилятору на расте?
>Так вот, зачем переписывать LLVM на расте?
Чтобы была специальная оптимизация под раст?
>Я пока не видел ни одного мнения с серьёзной аргументацией про необходимость собственного компилятора раста, написанного на расте
Дык и не увидишь, у тебя когнитивное искажение.
У настоящего языка должен быть собственный компилятор, который заточен под фичи и особенности этого языка.
Нет компилятора = нет языка.
>фреймворк для создания компиляторов
Это не язык тогда, а надстройка над фреймворком, который написан на другом языке, на другой логике.
Твой "язык" ограничен этим фреймворком, ты не можешь сделать что-то, что выходит за рамки его функциональности. А его функциональность определяется его авторами, а не потребностями твоего языка.
Конечно, ты можешь сделать свой форк LLVM, только писать ты будешь его на плюсах, а не на собственном языке. Ты видишь кринж этой ситуации? Твой язык, буквально, зависит от С++; без С++ ты не можешь разрабатывать свой язык.
Поэтому считаю универсальные фрейворки абсурдом.
Чтобы было понятней, вот аналогия: я говорю, страна должна быть суверенной, а для этого нужна собственная армия и флот. А ты говоришь, ниет, зачем суверенность, лучше давай поставим американские базы и заживем, вон, как япония и корея.
Мы говорим про разное: я - про самостоятельную страну, а ты - про колониальный придаток.
>Так же делает фронтенд плюсов
На чем была скомпилирована первая версия llvm? Вот и думай.
>>099526
>Лол, во первых они на расте LLWM в жизни не напишут;
Им же хуже.
>заново придется переписывать,
В этом суть раста в безопасности. Криво написал, переписывай.
>>099535
>Сравнивай с gcc или хотя бы msvc.
Что сравнивать? Вопрос был больше гипотетический. Понятно, что c/c++ это с нами до конца времен.
>Просто так получилось, что большая часть его написана на плюсах.
>Так же и GCC - фреймворк для создания компиляторов, написанный на сях.
Почему бы появиться компилятору на расте?
>Так вот, зачем переписывать LLVM на расте?
Чтобы была специальная оптимизация под раст?
>Я пока не видел ни одного мнения с серьёзной аргументацией про необходимость собственного компилятора раста, написанного на расте
Дык и не увидишь, у тебя когнитивное искажение.
У настоящего языка должен быть собственный компилятор, который заточен под фичи и особенности этого языка.
Нет компилятора = нет языка.
>фреймворк для создания компиляторов
Это не язык тогда, а надстройка над фреймворком, который написан на другом языке, на другой логике.
Твой "язык" ограничен этим фреймворком, ты не можешь сделать что-то, что выходит за рамки его функциональности. А его функциональность определяется его авторами, а не потребностями твоего языка.
Конечно, ты можешь сделать свой форк LLVM, только писать ты будешь его на плюсах, а не на собственном языке. Ты видишь кринж этой ситуации? Твой язык, буквально, зависит от С++; без С++ ты не можешь разрабатывать свой язык.
Поэтому считаю универсальные фрейворки абсурдом.
Чтобы было понятней, вот аналогия: я говорю, страна должна быть суверенной, а для этого нужна собственная армия и флот. А ты говоришь, ниет, зачем суверенность, лучше давай поставим американские базы и заживем, вон, как япония и корея.
Мы говорим про разное: я - про самостоятельную страну, а ты - про колониальный придаток.
>Так же делает фронтенд плюсов
На чем была скомпилирована первая версия llvm? Вот и думай.
>>099526
>Лол, во первых они на расте LLWM в жизни не напишут;
Им же хуже.
>заново придется переписывать,
В этом суть раста в безопасности. Криво написал, переписывай.
>>099535
>Сравнивай с gcc или хотя бы msvc.
Что сравнивать? Вопрос был больше гипотетический. Понятно, что c/c++ это с нами до конца времен.
>Почему бы появиться компилятору на расте?
Он уже есть, это rustc
>Чтобы была специальная оптимизация под раст?
Специальные оптимизации под раст находятся во фронтенде, в rustc. Общие оптимизации - в llvm, они работают с IR
>У настоящего языка должен быть собственный компилятор, который заточен под фичи и особенности этого языка.
>Нет компилятора = нет языка.
Таак, python/perl/php/ruby/js/tcl - нет компилятора, не настоящие.
C#/Java с сателитами - компилятор только в CIL/байткод, которые запускаются в jit, написанном на плюсах, не настоящие.
Go/Swift/Julia/Rust - сделаны на llvm, не настоящие
Все компиляторы/трансляторы ассемблеров написаны не на этих ассемблерах - не настоящие.
Принеси-ка определение настоящего языка сюда. Только не из голосов в твоей голове и не с каких-нибудь форумов, а от кого-то более авторитетного в среде разработки языков - Страуструп, Ричи, Вирт, Гослинг, МакКарти вполне подойдут. Пик тебе для затравочки - опровергай.
>Это не язык тогда, а надстройка над фреймворком, который написан на другом языке, на другой логике.
Какая такая другая логика у раста, в отличие от плюсов? Приведи примеры другой логики.
>Твой "язык" ограничен этим фреймворком, ты не можешь сделать что-то, что выходит за рамки его функциональности.
Что такого я не могу сделать для раста в llvm, что мог бы сделать в отдельном компиляторе? Конкретнее, пожалуйста
> А его функциональность определяется его авторами, а не потребностями твоего языка.
Но llvm принимает патчи от разработчиков раста, а подавляющее большинство потребностей реализуются в rustc, стандартной библиотеке и в тулинге.
>Поэтому считаю универсальные фрейворки абсурдом.
Поэтому гугл, эпл, интел ими пользуются, бедняжки, но тебе-то виднее. Давай уже вылезай из 80х годов XX века.
>вот аналогия:
С кривыми аналогиями иди на свои форумы и в студенческий чатик
А то вдруг окажется, что в стране сиплюсплюсии есть своя армия и флот (llvm), армия и флот соседней страны (gcc), корпоративные армии и флоты (msvc/icc/nvcc/etc), причём штаб-квартиры этих корпораций находятся в другом измерении.
продолжаю кормление
>Почему бы появиться компилятору на расте?
Он уже есть, это rustc
>Чтобы была специальная оптимизация под раст?
Специальные оптимизации под раст находятся во фронтенде, в rustc. Общие оптимизации - в llvm, они работают с IR
>У настоящего языка должен быть собственный компилятор, который заточен под фичи и особенности этого языка.
>Нет компилятора = нет языка.
Таак, python/perl/php/ruby/js/tcl - нет компилятора, не настоящие.
C#/Java с сателитами - компилятор только в CIL/байткод, которые запускаются в jit, написанном на плюсах, не настоящие.
Go/Swift/Julia/Rust - сделаны на llvm, не настоящие
Все компиляторы/трансляторы ассемблеров написаны не на этих ассемблерах - не настоящие.
Принеси-ка определение настоящего языка сюда. Только не из голосов в твоей голове и не с каких-нибудь форумов, а от кого-то более авторитетного в среде разработки языков - Страуструп, Ричи, Вирт, Гослинг, МакКарти вполне подойдут. Пик тебе для затравочки - опровергай.
>Это не язык тогда, а надстройка над фреймворком, который написан на другом языке, на другой логике.
Какая такая другая логика у раста, в отличие от плюсов? Приведи примеры другой логики.
>Твой "язык" ограничен этим фреймворком, ты не можешь сделать что-то, что выходит за рамки его функциональности.
Что такого я не могу сделать для раста в llvm, что мог бы сделать в отдельном компиляторе? Конкретнее, пожалуйста
> А его функциональность определяется его авторами, а не потребностями твоего языка.
Но llvm принимает патчи от разработчиков раста, а подавляющее большинство потребностей реализуются в rustc, стандартной библиотеке и в тулинге.
>Поэтому считаю универсальные фрейворки абсурдом.
Поэтому гугл, эпл, интел ими пользуются, бедняжки, но тебе-то виднее. Давай уже вылезай из 80х годов XX века.
>вот аналогия:
С кривыми аналогиями иди на свои форумы и в студенческий чатик
А то вдруг окажется, что в стране сиплюсплюсии есть своя армия и флот (llvm), армия и флот соседней страны (gcc), корпоративные армии и флоты (msvc/icc/nvcc/etc), причём штаб-квартиры этих корпораций находятся в другом измерении.
продолжаю кормление
>Избавиться от висячих указателей/гонок в многопоточке
Ну так и пидораст от подобных багов не спасает на 100%.
>/ga/
Так его снесли и перекатили в этот тред. По статистике посмотри, по твоему почему сейчас тут обострение?
Сейчас он расскажет что это когда только одно действие метод выполняет, лол.
нет
>Давай уже вылезай из 80х годов XX века.
Ну блин, чувак, тогда придется отказаться от с++ и написанных на нем корпоративных высеров.
https://www.reddit.com/r/rust/comments/us6rza/comment/i92v47k/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button
https://www.theregister.com/2024/03/31/rust_google_c/
> When we've rewritten systems from Go into Rust, we've found that it takes about the same size team about the same amount of time to build it, that is, there's no loss in productivity when moving from Go to Rust. And the interesting thing is we do see some benefits from it. So we see reduced memory usage in the services that we've moved from Go ... and we see a decreased defect rate over time in those services that have been rewritten in Rust – so increasing correctness.
Получается пиздеж обман все это про низкую продуктивность н а расте
Зная какие крестовики у гугла и то что они пишут фактически на С++03 - что угодно будет продуктивнее.
Читай внимательно: продуктивность на расте равна продуктивности на говне. а также котлине и прочих "высокоуровневых языках"
>котлине
У jvm проблема в скорости разработки кроется во всяких AbstractSingletonProxyFactoryBean и это не шутки https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/aop/framework/AbstractSingletonProxyFactoryBean.html как начинают всей этой хуйнёй заниматься так и уходит тонна времени. На расте и го писать все эти паттерны тяжелее и люди меньше занимаются написанием Паттернов, а больше кодом по делу
> а также котлине и прочих "высокоуровневых языках"
Хотелось бы узнать как ты сделал такие выводы. То что продуктивность говна как у сишки всем и так известно.
Личные очучения из опыта работы с котлином. Где-то быстрее раста из-за отсутствия борова, где-то медленнее из-за тупого тулинга и кривой семантики, где слишком дохуя ошибок приходится ловить в рантайме.
Если продуктивность говна как у сишки, то и у Явы под Граалем такая же продуктивность
В гугле любой код проходит код-ревью владельца сервиса и мастера языка. Там код на код-ревью висит дольше чем пишется.
Цитата про продуктивность в таком контексте может значить всё что угодно.
Написал код - неделю хуи пинаешь, пока ревью ждёшь. Не работа - мечта! А может это скорость ревю выросла? Дак тоже плюс.
Просто представьте весь этот Spring с AOP магией, и попытайтесь понять такое, это невозможно.
По дефолту гц пауза случается, когда мы создаём новый объект и приходится либо расширять кучу, либо нужно утрамбовать текущую. По факту есть оптимизации типа экспейп анализа и там хер проссышь. И вообще для жабы есть свой тред.
Пробовал в гугле написать "webgpu rust"? Это быстрее чем на дваче вопрос оставить.
При разработке в Git прежде всего обеспечивается целостность исходного кода под управлением системы. Содержимое файлов, а также объекты репозитория, фиксирующие взаимосвязи между файлами, каталогами, версиями, тегами и коммитами, защищены при помощи криптографически стойкого алгоритма хеширования SHA1. Он защищает код и историю изменений от случайных и злонамеренных модификаций, а также позволяет проследить историю в полном объеме.
Использование Git гарантирует подлинность истории изменений исходного кода.
В некоторых других системах управления версиями отсутствует защита от тайного внесения изменений. Это может стать серьезной угрозой информационной безопасности в любой организации, занимающейся разработкой ПО.
Ты шейдеры писать на расте хочешь что-ли? Такого нет, похоже. Могу нагуглить только https://github.com/EmbarkStudios/rust-gpu , но поддержки WGSL пока нет.
Шейдеры в vulkan передаются в виде SPIR-V (байткод). Писать можешь на чём угодно, что сможешь транслировать в SPIR-V. Только причём тут webgpu и раст?
Что графика? Я не телепат, не понимаю твои мысли.
> шейдеры писать на расте хочешь что-ли?
Кстати-кстати! Шейдерный язык GLSL является потомком си. Надо бы написать RSSL основанный на расте!
Можно на HLSL писать, он тоже в SPIR-V компилиться умеет, там почти кресты, даже дженерики есть.
> Можно на HLSL писать
Нельзя. Он богомерзкий. Майкрософт нашла критический недостаток в GLSL - он сделан не ими, и выпустила HLSL.
Эхх, легендарные времена, когда телек был ещё не для быдла, но уже пытался быть интересным.
От слова теливизор, видимо. Вот такие тела в школе не доучатся, а потом в айти катятся.
Это просторечное слово, следовательно, какие в пизду правила?
Телек vs телик идёт с соотношением 3:1 именно в той самой простой речи, которая срать хотела на правила и живёт своей бурной жизнью. Всякие попытки загнать её в рамки правил, считаю бюрократическим крючкотворством.
java.lang.NullPointerException: Cannot read field "classname" because "model" is null
и знаете, шо? Проверяю объект - а он, сука, не null. Оборачиваю в try - а тоже похуй, при попытке доступа к classname валит исключение, причём не в моём коде, а где-то в потоке. Блять, я бы лучше лишние 10 раз с боровом поебался, чем с этим.
640x360, 0:26
Вообще, непонятна душа англицкая, почему слово ржавчина им показалось достойной для названия языка?, который по своей задумке наоборот нержавеющий (ржавчина - это же мусор).
Да нет, назвали раст очень мудро и правильно, сейчас обьясню.
Когда в металлопроизводстве защищают металл от коррозии, создают процесс названный пассивацией, и один из таких методов, как ни странно, саму ржавчину и использует - например Кортеновская сталь (или "вечная сталь") полностью покрыта пленкой, которую зовут ржавчиной (но по сути это патина), пик - и есть этот слой. Это своего рода натуральный способ борьбы с короззией при помощи самой ржавчины. В нашем же случае коррозия отсылает на утечки памяти. В мозилле раст создали именно ради своего рода защитной пленки браузера; просто язык совсем неправильно поняли и он попал в руки корпорастов, которые пытаются сделать из него якобы замену плюсам, хотя предпологалась как вспомогательный язык - даже создатель раста писал, что сделали что то непонятное. Вообщем печально получилось, как корабль назовешь - так он и поплывёт.
> назвали раст очень мудро и правильно, сейчас обьясню
> создают процесс названный пассивацией
А, ну тогда всё ясно.
Представь что дальше по стеку не два байта, а две тыщи двести двадцать два. Как это скажется на производительности? Вообще, в си есть VLA, которые никто не использует по прямому назначению кажется.
А грибы?
Теоретически можно, но гораздо проще просто аллоцировать массив с новой длинной дальше по стаку и копировать туда данные.
Кстати не знаю причем здесь стак, даже в куче массивы вроде не растут, только копируются с более длинные.
По крайней мере так в джаббе, а в расте массивы могут расти?
Vec в 2 раза растёт когда место кончается. Как именно растёт — копируется или как-то с ссылками ебутся не знаю.
Посмотрел, ну как в джаве (и как везде наверное) работает github.com/rust-lang/rust/blob/master/library/alloc/src/vec/mod.rs#L263
Просто копируют в новый массив большей длины и это в куче
>If a vector's length exceeds its capacity, its capacity
/// will automatically be increased, but its elements will have to be
/// reallocated
>If the vector's length would exceed its
/// capacity after the push, O(capacity) time is taken to copy the
/// vector's elements to a larger allocation.
Даже матюги пишутся по правилам. Например, пишем хуй, а не хухь; блядь, потому что проверяется словом бляди; пиздёнка без мягкого знака, несмотря на смягчение перед д. Так и с теликом: ну не выпадает там гласная из суффикса при склонении, поэтому пишем через и.
Разговорная речь ещё и знаками препинания оформляется, к слову.
В видео объясняется почему нельзя написать b.push() для массивов. Там буквально написан массив из 3-ёх u8. То же самое переспросил анон. Векторы тут не причём.
Я катаюсь на велике, но смотрю новости по телеку, ничего не могу с собой поделать. Возможно это от того, что сокращение часто происходит "на лету": Мань, что у нас сегодня по теле.. и далее мозг выбирает между визору или леку, что с тели.. было бы невозможно. Вариант телик на мой слух звучит как-то инфантильно-детсадовски, ещё и созвучно со словом челик: Это что там за (ч|т)елик? - а вот хуй ты проссы, что там сказано.
Кофе в среднем роде недавно узаконили, так и тут победа будет за нами.
Эхх, щас бы расти в расте как программист.
> [T; 24] и [T; 42] — это разные типы
Пиздос. У них там ещё и многомерных массивов нет, наверное?
>У них там ещё и многомерных массивов нет, наверное?
Тип T может быть любым типом, удовлетворяющему трейту Sized, например другим массивом.
Да хватит уже срать! Идите в свои треды и обсуждайте там свои джавы!
C чего бы им одним типом быть? Это не динамический массив же
говно без задач
стоит ли закатываться?!
Ты разрабатываешь на питоне? Стоит, если ты:
1. Заебался поддерживать нативную либу.
2. Планируешь написать с нуля нативную либу.
3. Хочешь похайповать вместе с остальными.
Главная причина почему они это делают - уёбищные разрабы питона и то что питон на сишке написан. Собирать крестовые модули для питона просто ад, там ещё система сборки просто пиздец, хуже для крестов нет. В ней куча многолетних багов и ебучий ninja. По задумке припизднутых питонистов оно должно просто собираться одной командой на любых платформах, но мы же прекрасно знаем что кроссплатформенных крестов как и сишки не существует, у каждой системы свои компилятор и стандартная либа. Поэтому сборка крупных либ под виндой, если она таргетится под линукс - это такой цирк с конями, что даже всякие гуглы/меты не могут осилить, оно иногда собирается в определённых окружениях, иногда нет. А ошибки сборки из какого-нибудь nvcc - это отдельный пиздец, который годами никто не может разобрать и пофиксить. Хотя с nvcc раст тоже не сильно поможет, он ещё хуже с кудой дружит.
> стоит ли закатываться?!
Стоит если ты в первую очередь веб-питонист и тебе просто надо узкие места оптимизировать. Если ты из машоба, то раст в это плохо умеет, лучше дальше страдать со сборкой.
Ты смотришь новости по телику, не по *тельку.
>созвучно со словом челик
Так и с великом рифмуется. А если у тебя написание (!) звучит, то это ты просто не разбираешься в матчасти. Звук от буквы не отличаешь?
>Кофе в среднем роде
Грамматически у этого больше оснований, потому что такая начальная форма у слов среднего рода: поле, море и т.д. Но всё же употребление в мужском роде коррелирует с высоким уровнем образования.
> тебя написание (!) звучит
В просторечном слове очень даже звучит. Я могу написать блять вместо блядь или йоп твою за ногу именно, чтобы акцентировать на произношении, никто и не подумает доебаться. Так и с телеком я акцентирую отличие в произношении от телика, который для меня звучит нелепо.
>Так и с великом рифмуется
Не рифмуется, а созвучно, не путай. Ч и мягкая Т звучат максимально близко.
А хуле ты думал? Язык компилируемый. Ну естественно он компилирует код вначале. Rust-analyzer вполне адекватное расширение.
А еще если ты поставишь антивирус касперского, он завизжит, что артефакты компиляции у тебя все вирусные.
Это ты в дебаге собрал. Но вообще в расте бинари огромные, даже в релизе хэллоу ворлд будет 400 кб весить, а 10 строчек кода с использованием std до мегабайта поднимут его. С либами вообще пиздец, сразу за несколько мегабайт улетает.
Это не нормально. Для сравнения многие стандартные линуксовые консольные утилиты занимают 20-100 Кбайт.
>>116840
Разве нельзя сделать, чтобы он брал только те функции, которые нужны, а ненужные не включал?
В Расте тоже можно убрать лишнее, если специально заморочиться. Вот так всегда, заёбываются по мелочам вместо чего-то важного, а потом в 2024 году все приложения однопоточные и игры статтерят, потому что нам лень шейдеры компилить асинхронно.
Я хотел писать на расте легковесные утилиты для старых пека, потому что там сейчас ничего из современного невозможно запустить, всё гиганстких размеров и тормозит. А получается проблема в самих компиляторах, потому что они не позволяют делать маленькие программы, а сразу генерят эти огромные бинари, которые потом сжирают всю память и тормозят.
Старые - это 386-ые? Потому что даже у некроноутов 10 лет назад было от 4 гигабайт памяти, и полмегабайта даже на них не решали. Вот Электрон для них смерть.
На ZX Spectrum было вообще 48 Кб ОЗУ и там не то что консольные программы были, а даже цветные видеоигры. А теперь на 48Кб даже хеллоуворлд не запустишь.
И 10 лет назад 4 гига было только у мажоров. Лично у меня ноупук тех времен был 2 ядра 2 гига, сейчас там даже "легковесные" дистрибутивы линупса с трудом работают.
Если ты прям такой оптимизатор, то рекомендую сначала освоить всё-таки что такое статическая и динамическая линковка. Тема изжёвана 100 раз уже. В ОП-посте есть ссылка на гитхаб, там есть статья в которой всё подробно объясняется. Ах да, тебе её уже скинули, ленивая жопа. Нихера ты писать не будешь всё равно, пишу ответ только для ньюфагов, которые решат что раст говно из-за таких провокаций. На расте можно писать как на си, только зачем.
Почему разработчики раст не написали свою библиотеку системных вызовов, а пользуются сишной? Наверно, придётся изучать API и писать свои обёртки на каждый системный вызов.
>>117111
Об этом должны были подумать разработчики раста, а не рядовые программисты, которые знакомятся с языком.
Пока я вот вообще не вижу преимуществ перед сишкой. Фактически нам предлагают тот же С/С++ только с другим синтаксисом.
>Почему разработчики раст не написали свою библиотеку системных вызовов, а пользуются сишной? Наверно, придётся изучать API и писать свои обёртки на каждый системный вызов.
Уже есть соответствующие крейты, бери и пользуйся.
>Об этом должны были подумать разработчики раста, а не рядовые программисты, которые знакомятся с языком.
У рядовых программистов не стоят задачи написать самый маленький хелловорлд. А у разработчиков языка не стоит задача заставить все операционные системы поставлять с системными библиотеками раста. Включай мозги.
>Пока я вот вообще не вижу преимуществ перед сишкой
На сишке ты будешь постоянно занят
- поиском нужной либы
- линковкой нужной либы
- правильно написать формулу для определения размера для malloc
- не забыть бы сделать free
> линковкой нужной либы
В 2024 году это одна строчка с FetchContent и ссылкой на гит либы. Cmake всё сам сделает.
Ну и вали в свой си-тред.
x + 1
}
Это я считаю дурным решением. Чем им не понравился return? А программист должен высматривать какие-то точки с запятой в коде. Я их может на автомате ставлю за все годы программирования на си-подобных языках.
Мне тоже сразу не понравилось, но в растбуке это было объяснено, и я согласился с логичностью этого решения. Но не помню, в чём была там суть. Короче, читай растбук и поймёшь, зачем они так сделали.
Аа... Вспомнил. Это из за выражений. Компилятор раста рассматривает языковые конструкции как выражения. Точка с запятой завершает выражение и начинает новое. Таким образом, ретурн становится не нужен. Если функция заканчивается выражением, то функция результат выражения и возвращает. Надеюсь доходчиво объяснил. Если непонятно, то как написано выше, читай растбук.
Какую задачу ты собираешься решать? Пытаюсь понять, что привело к выбору из этих 3ёх языков.
Я пилю свой проект который в теории мне должен деньги приносить, поэтому нужно экономить время. И тут Java >>> C++, потому что куча либ, сервисов, стандарт хороший. Но синтаксис просто пизда какой бойлерплейтный + есть числодробительные места в которых хотелось бы максимальной производительности без ебли со сборкой кусков написанных на разных языках в одного монстра
С такими шизоидными рассуждениями - да, как раз в раст. Там тебе расскажут один единственный метод написания кода и будешь писать.
Язык норм сам по себе. Я не понимаю, зачем сравнивать. Типизация есть, zero-cost abstractions есть, скорость есть, безопасность есть, форматирование, тестирование из коробки есть. Чё те ещё собака надо? Тебе не похуй чё там в с++? Не похуй на джаву? Какой язык тебе не дай, ты же всё равно используешь отсилы 10% возможностей. Для твоих васянских говнопроектов любой язык в мире подойдёт кроме ассемблера.
Че порвался?
> Какой язык тебе не дай, ты же всё равно используешь отсилы 10% возможностей
Как скажешь. Этого достаточно, чтобы 2900 иметь зеленых в месяц
>>117408
Нет, скорее всего джава - это то что тебе нужно. Просто дело в том, что люди пишут на джаве на отъебись - и все тормозит, а потом идут в раст/сиси плюсплюс, считают байтики - и все летает. И связывают производительность с языком, а не с тем как они пишут код в каждом из случаев.
Недавно был челлендж выжать из джавы максимум, агрегируя миллиард строк на лету https://github.com/gunnarmorling/1brc
Естественно участники считали байтики и естественно джава со скоростью света всё разрулила.
Так что - будешь писать на джаве как на си - получишь и перформанс близкий к си, будешь на си писать как на джаве - получишь перформанс как на джаве.
>Кто это говно придумал?! Покажите мне! Покажите! Может ему лечиться пора?
Стало интересно, кто же действительно это придумал. Согласно википедии подструктурные, такие как афинные в расте, представляют из себя аналог подструктурной логики для типов (очевидно). А подструктурная логика вроде как впервые описана Иваном Орловым в 1928г. Ну а подструктрные типы как понятие как будто впервые появляются в статье Walker, David (2002) "Substructural Type Systems", но это не точно.
Благодаря принципу владения не нужен сборщик мусора, и при этом не требуется вручную освобождать мусор. Не нравится - не ешь.
Поздравляю.
Держи в курсе
Теперь сделай то же самое, но чтобы при исключениях выдавался человекочитабельный стектрейс.
Спасибо
Бля, я тут хотел чекнуть сколько у zig будет хеллоу ворлд, вроде помнил что меньше 10 кб был. В итоге чуть очко не сгорело. В стабильной версии 0.11 хеллоу ворлд под виндой вообще не собирается с -O ReleaseSmall с --release=small тоже ошибка компиляции, две строчки кода скопированы из доков зига, без оптимизаций компилируется и пишет в консоль. Ошибка очень информативная:
> error: the following build command failed with exit code 1
Ясно, понятно, ну думаю хуй с ним, поставлю последнюю dev-версию. Там хеллоу ворлд компилируется, но в консоли пусто. Пиздец нахуй. Я этот кал в принципе не долюбливал, но после этой хуиты точно больше не притронусь к нему.
На котлине нет value типов, а для числодробилок они нужны
Компилятор говорит тебе пошёл нахуй, вот что. Типы тут прибиты гвоздями и не кастуются.
Так не сработает, он его сделать as float64, потом такой а тут должен быть инт и предложит добавить as i32 и так до бесконечности
да блядь
у тебя присваивается, что 1, то 2.0
сделай или 1.0 и 2.0 или 1 и 2
остальные аналогично - выбери один тип, т.к. переменная идентифаер у тебя одна и компилятор должен знать ее тип
>Показывая полное непонимание происходящего.
Так почему, я понимаю, что раст требует, чтобы возвращаемые значения в условии были одного типа.
Там на выбор есть сделать возвращаемые значения инт или флоат. Тк дальше идет дрочка с интами, и только 1 значение флоат, то проще поменять 2.0 на 2.
Под "хз как по-другому" я имел в виду, что концептуального другого решения кроме как привести все возвращаемые значения к одному типу я не вижу
Зачем вообще дрочка с цифрами? У тебя приходит строка и отдашь строку. Почему не сделать
> если хомяк то лес
> если змея то пустыня
???
>концептуального другого решения кроме как привести все возвращаемые значения к одному типу я не вижу
так его и нет
Вот теперь думаю, как бы переделать на нормально.
Потому что автор задачи написал ниже "DO NOT CHANGE THIS STATEMENT BELOW"
Ну так с этого следовало начинать. А ты первый скрин всплывающей подсказкой перекрыл и траллируешь тут битый час.
Ну и поменяй на 1, 2, 3, -1
Вообще, какое-то ебанутое задание. Джун, который думает, что он мидл, сделал задание для долбоёба, который думает, что он джун.
Какой нах джун, если я только синтаксис раста учу
Я уже решил задачу через пик2. Сейчас хочу заставить это работать так, чтобы при этом data из main сохранилась и можно было её использовать после вызова string_uppercase (вроде бы это называется инвалидация, и я хочу избежать инвалидации data)
Хуй знает, че там автор задания делает, вот так работает и делает то, что я хочу. В чем я не прав?
> Кто-нибудь с таури работал? Я хочу что-то типа пикрила сделать, это возможно?
Можно, сделай async функцию и там запрашивай что хочешь.
После упееркейз у тебя создается новая String и тут же дропается, соответственно ссылка инвалидируется. Присвой её в новую переменную, и тогда она доживет до конца скоупа.
Типа:
let uppercased = str.touppercase()
let ref = &uppercased
println("{ref}")
Ваще жесть какая-то
В расте одна из лучших имплементаций енумов что я видел, я хз.
> В чем прикол с енамами, как это разгребать
Как и в любом другом языке. Кроме того что дополнительно к нумерованной константе енума в расте ты можешь прикрутить дополнительное значение. Вот бы в других языках так же. Хочу растовские енумы в шарпе. Аш пичот!
> // c# dotnet 12
> switch (eblya)
> {
> case Yebles.VPizdu _pezda: return _pezda.IsBreaded;
> case Yebles.VRot _rot: return _rot.NumOfTeeth;
> case Yebles: VZhopu _zhopa: return _zhopa.diameter;
> default: return Yebles.Droch;
> }
Пока что на шарпе такое можно делать разве что через наследуемые интерфейсы, но это горы ёбнутого бойлерплейта вырастут.
> разве что через наследуемые интерфейсы
Или через классы. В любом случае получится ГЦ-дрисня. А в растике нашем-то зеро-кост!
Или через классы с шаблонами. Всё равно получается Droch.
Алгебраические типы норм. Я бы кстати выбросил 99% фишек пидораста оставил няшные енумы и макросы, писал бы как на си и было бы заебись.
Двачую.
Программа работает так же, только телодвижений больше.
Долбоёб иди нахуй.
Можно и фатальный. Мне похуй. Главное, чтобы завезли растовые енумы в шарп.
Ещё узнал, что есть (будет?) gnat-studio для раста.
Тебе заняться нечем, пчел? Успоуойся уже)
Нюхни калца, обиженка.
В зиге есть что-то подобное:
// first define the tags
const ValueType = enum {
int,
float,
string,
unknown,
};
// not too different from simple union
const Value = union(ValueType) {
int: i32,
float: f64,
string: []const u8,
unknown: void,
};
// just like the simple union
var value = Value{ .float = 42.21 };
switch (value) {
.int => std.debug.print("value is int={d}\n", .{value.int}),
.float => std.debug.print("value is float={d}\n", .{value.float}),
.string => std.debug.print("value is string={s}\n", .{value.string}),
else => std.debug.print("value is unknown!\n", .{}),
}
Спижжено отсюда: https://zig.news/edyu/zig-unionenum-wtf-is-switchunionenum-2e02
Правда зиг не для меня - я слишком туп чтобы за сырыми указателями следить, мне семантика владения ближе.
В зиге есть что-то подобное:
// first define the tags
const ValueType = enum {
int,
float,
string,
unknown,
};
// not too different from simple union
const Value = union(ValueType) {
int: i32,
float: f64,
string: []const u8,
unknown: void,
};
// just like the simple union
var value = Value{ .float = 42.21 };
switch (value) {
.int => std.debug.print("value is int={d}\n", .{value.int}),
.float => std.debug.print("value is float={d}\n", .{value.float}),
.string => std.debug.print("value is string={s}\n", .{value.string}),
else => std.debug.print("value is unknown!\n", .{}),
}
Спижжено отсюда: https://zig.news/edyu/zig-unionenum-wtf-is-switchunionenum-2e02
Правда зиг не для меня - я слишком туп чтобы за сырыми указателями следить, мне семантика владения ближе.
У них даже дефолтных аргументов нет, пиздуй заполнять структуры как в сишке.
Обоже, соу патетик.
Что есть {что угодно} если не слайс байтов?
Ооп головного мозга, нахуя тебе пидораст, шёл бы в кресты за классиками, будешь там свои абстрактные фабрики ваять.
Дебс, а как ты ещё блять рам репозиторий сделаешь? Да и в принципе репозиторий, который будет работать с бд
Ебанашка, зачем в сиспроге всякие репозитории, ты явно хуитой занимаешься. Обернул вектор в структуру и рад, гений блядь.
Отсталый, в курсе, что Rust язык общего назначения?
> наследования и subtype-полиморфизма
Нет. Это тебе таблетки надо попить. В крестах метапрограммирование, какое в пизду наследование.
С таким же спехом можно и Раст назвать ООП языком. Но по факту в либе крестов ООПа меньше, чем у раста. Наследование не используется в принципе, вместо ООП-полиморфизма используется функциональщина, классов в понимании полноценных ООП-языков типа джавы там не используют - просто структуры с RAII, очень много функционала в процедурном стиле без привязки к объектам - вообще типы там часто заменены концептами. То что язык позволяет на всех стульях сидеть ничего не значит, надо ориентироваться на код, утверждённый комитетом, т.е. стандартную либу.
> С таким же спехом можно и Раст назвать ООП языком.
Нельзя, в расте нет наследования и subtype-полиморфизма
> надо ориентироваться на код, утверждённый комитетом, т.е. стандартную либу.
Так и запишем: поциент считает плюсы языком для написания стандартных либ. Алоу, открой любой крупный проект на плюсах - там сплошное ООП.
Опять ты переворачиваешь всё с ног на голову. Какое отношение язык имеет к тому что утята пишут на си с классами? Если ты посмотришь на проекты под С++17 и выше, то количество ООП там будет стримиться к нулю.
Приведи примеры таких проектов
Зачем отдаёшь в массив копию датафайла? Почему бы не отдавать оригинал? А уже оттуда предоставлять ссылки. У тебя лайфтайм массива явно дольше отдельных элементов будет.
Ты своей тупизной весь тред засрал, вот и перекатили, чтоб не воняло
вроде норм, главное убедись что ничего лишнего не клонируешь.
Это копия, сохраненная 4 июля в 13:03.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.