Pull to refresh

Comments 20

Наблюдение: все хотят сеньёр-программистов на Rust.

ну, как только появились Swift и Kotlin - все тоже хотели сеньёр-программистов на них.

Следствие: никто не хочет hello-world программисто на Rust.

Вопрос: как стать программистом на Rust, если +- senior программист на C и C++, но не имеешь опыта работы в Rust, который требуется даже в middle вакансиях.

Ну вот я начал по чуть-чуть писать в опенсорс проекты. Пулл-реквест тут, пулл-реквест там...

По моему опыту, опыт в других языках, особенно С++, часто идёт в зачёт.

Просто не говорите, что у вас его нет. У тех, кто вас будет нанимать этого опыта скорее всего тоже не будет, проверить они не смогут.

Перепишут с Java на Rust? Ну это врятли.. Только небольшие критичные по производительности куски. На Cobol до сих пор много чего крутится - всё никак не перепишут.

Всё не перепишут, разумеется. Более того, "переписывают" только от отчаяния.

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

Очередная скучная рекламная статья из серии "кем был ,что ел, с кем спал".
Зачем мне всё это знать про какого-то там Михаила? Дайте больше технического контента. Дайте конкретный опыт Миши как программиста. Ни одного бенча, ни одного сниппета. Одни сплошные домыслы и вымыслы.

Rust настораживает только изменяющейся концепцией. Сразу скажу, что я не писал на rust кроме каких-то простых примеров, я из мира Си. Еще давно продвигали концепцию borrow, потом вдруг сказали, что что-то тут не сходится и нужно бы еще умных указателей завезти. И так далее, вроде все круто, но у меня впечатление складывается как «нецелостного» языка. Как будто разработчики языка превозмогают ради превозможения. Поправьте меня, пожалуйста, если я что-то не так воспринимаю.

Я бы попробовал "поправить", но не понял сути претензии насчёт "нецелостности". 🙃 С указателями аля unique_ptr (Box) бороу чекер прекрасно работает. И весьма очевидно, что статический анализ (этот самый бороу чекер) не может отследить ситуации когда нам нужно динамическое время жизни и тогда на помощь приходят указатели с подсчётом ссылок (аналог shared_ptr). Мне кажется, неправильно заявлять, что концепция поменялась так как (A)rc были с версии 1.0 (и раньше).

— Он будет такой же быстрый, как и на С++, даже потенциально быстрее,
потому что компилятор в Rust знает о твоём коде чуть больше, чем сишный
компилятор

Что это вообще значит? Причем тут сишный компилятор?

Rust накладывает на программиста больше ограничений чем C++. И компилятору вроде как "проще" от этого.

Сишный компилятор тут как эталон. Rust сделан как фронтенд к LLVM. Точно так же сделан и Clang. И значит их можно как-то сравнивать в этом поле. Гипотеза (и вроде есть примеры) в том что Rust может передать тому же LLVM больше информации о коде чем Сlang.

Как сказал кто-то на ютубе, "мне в расте нравится то давно забытое чувство, что я учу что-то совсем ново-фундаментальное в Computer Sciences" :) Поддерживаю, давно ничего такого не было. Мое имхо, что познакомиться с языком, распробовать суперский подход в работе обработки ошибок и испытать тот самый fight with borrow checker, когда компилятор настаивает, что умнее тебя в избегании ошибок -- имеет смысл хотя бы для кругозора

Для кругозора лучше изучить концепции баз данных. Какие алгоритмы применяются, методы оптимизации и т.д Эти знания фундаментальные и реально могут дать буст для роста . А знания о борьбе с borrow checker, дадут знания только о borrow checker. Больше похоже на религиозный призыв.

Не согласен. Ну вот вы изучили все основы архитектур, алгоритмов и подходов, которые, кажется, слабо поменялись за последние десятилетия. Даже поработали несколько лет разработчиком, героически превозмогая нетривиальные баги в boost или в мультитрединге. Дальше что? Просто сидеть и зарплату получать, неистово отстаивая свое будущее как разработчика на C | C++, принижая хоть какие-то попытки внести что-то новое? А тут свежий взгляд на управление памятью и возможно даже мозги чуть по-другому заработают, в том числе в разработке на других языках. И если обратите внимание, я не только про borrow checker говорил, хотя и не упомянул другие достоинства

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

Окей. Я прочитал пару статей с примерами, про управление памятью в Rust. Получил ли я пользу, бесспорно да. Это пару часов или пару дней. Что дальше то?

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

Что каждый программист должен знать о памяти

http://rus-linux.net/lib.php?name=/MyLDP/hard/memory/memory.html

знания о борьбе с borrow checker, дадут знания только о borrow checker.

Начиная с какого-то момента, у вас начинает такой borrow-checker работать в голове, и отлавливать часть ошибок уже без помощи со стороны компилятора. Даже если вы уже пишете не на расте :D

В основном сейчас пишут на C/C++, Java, Python… и Rust встречает активное сопротивление со стороны программистов старой школы.

Программистам на Golang сейчас обидно стало.

Sign up to leave a comment.