Может кому-то захочется обсудить данный язык или поспрашивать о нём вопросы. inb4: C/C++ какашки, всё надо переписать на Расте
Расскажи о том, что пишешь на расте и для каких платформ. Очень интересен опыт из первых рук.
>>16152 с какого языка переходил?
Вопрос один: нафига так много разных типов контейнеров? Пока учил, окончательно запутался и дропнул. Всего-то нужна безопасная замена указателей и ссылок, а тут вон чего нагородили. Вопрос два: что на нем на данный момент можно написать на практике? Язык это одно, а среда другое. Есть свой нормальный гуи или биндинг в QT? Целесообразно ли писать серверное приложение, может ли он в PostgreSQL/MongoDB, вебсокеты, шаблоны, криптографию. Может ли соперничать на этом уровне с NodeJS или Django/Flask? Микроконтроллеры еще не завезли? Киллер-фича вроде как. Как смотрят производители, им же все тулчейны под раст перепиливать. Как скриптовый язык можно использовать? Может ли он в хоть простенькй гемдев? Есть готовые 2д/3д фреймворки? Как с деплоем под разные платформы? Вопрос три: что там с IDE? Idea уже поддержтвает? Или пиши в блокноте @ компилируй в консоли.
>>16165 Основное это сетевая программа под линукс для обработки UDP пакетов для серверного Линукса. (по сути обёртка над epoll с помощью mio с кастомной логикой и парсером на nom) Плюс пишу no_std библиотеки, немного баловался с embedded на STM32, всё шло достаточно хорошо, но не попалось подходящего проекта, так что тут далеко не продвинулся. >>16167 Основной рабочий язык был Питон, но имел опыт на разных языках: Паскаль, Дельфи, Го, немного С. Немного баловался Фортом, Лиспом и Эрлангом. >>16173 >Вопрос один: нафига так много разных типов контейнеров? Пока учил, окончательно запутался и дропнул. Подозреваю что ты про вещи типа Rc<RefCell<T>>. Конкретно и подробно по всем контейнерам ответить не смогу, но лично моё мнение что всё это нужно и играет свою роль позволяя производить композицию из того что тебе нужно в текущем контексте, а не пытаться натягивать комбайн. Проблема в том, что пока тебе конкретно данный контейнер не понадобиться будет ощущение что он не нужен. Но когда такая ситуация возникнет ты поймёшь почему сделано именно так. Так что если чего-то непонятно сейчас, то можешь смело пропускать, необязательно штудировать книгу от корки до корки. >Вопрос два: что на нем на данный момент можно написать на практике? Народ вполне себе успешно пишет и появляются примеры приложений которые выходят за рамки Раста. (тот же ripgrep) >Есть свой нормальный гуи или биндинг в QT? На данный момент, насколько я знаю, ничего уровня C++ нет. Единственное относительно скоро должна появиться годная интеграция с GTK. "Своего" гуя разумеется нет. >Целесообразно ли писать серверное приложение Зависит. Если нужно что-то надежное, нетребовательное к ресурсам и производительное, то стоит. Если нужно сделать веб-морду с простой логикой и доступом к БД, то Питон тут лучше подойдёт. Если простенькую сетевую утилитку на пару сотен LOC, то на данный момент лучше взять Go. >может ли он в PostgreSQL/MongoDB, вебсокеты, шаблоны Может, правда сам не работал. >криптографию Может, см. ring. С TLS 1.3, вроде работают нормально, с 1.2 не уверен что ситуация устаканилась. >Может ли соперничать на этом уровне с NodeJS или Django/Flask? На данный момент по настоящему нет. И, честно говоря, сомневаюсь что в обозримом будущем будет, т.к. разные ниши и требования. Но посмотри Rocket если интересно и более обще http://www.arewewebyet.org/ >Микроконтроллеры еще не завезли? Киллер-фича вроде как. Завезли и относительно активно развивают. (см. работу japaric) Сам кодил под STM, вроде скоро должна появиться поддержка AVR (читай ардуино). Экосистема библиотек пока что достаточно молодая и развивается, архитектурных проблем пока не замечал, no_std работает годно. >Как смотрят производители, им же все тулчейны под раст перепиливать. Вроде пока никак. Основное пилится силами комьюнити, слышал о паре железных проектов которые заявляли о поддержке Раста, но вроде они особо не взлетели. >Как скриптовый язык можно использовать? Есть rusti, но сам не юзал, так что подробно рассказать не могу. >Может ли он в хоть простенькй гемдев? Может. И не в простенький тоже: https://steamcommunity.com/sharedfiles/filedetails/?id=868228143 >Есть готовые 2д/3д фреймворки? Основная рекомендация это вроде Piston. Подробнее можно почитать тут: http://arewegameyet.com/ >Как с деплоем под разные платформы? При использовании OpenGL/Vulkan в качестве бекенда и кросплатформенных либ, вроде проблем быть не должно. Но подробно ответить не могу. >Вопрос три: что там с IDE? Idea уже поддержтвает? Или пиши в блокноте @ компилируй в консоли. Активно развивается, является одной из основных целей на 2017, и вроде даже относительно юзабельно. Подробнее тут: https://forge.rust-lang.org/ides.html Лично я предпочитаю вариант с консолью.
Ах да, если интересует сеть, то обязательно стоит посмотреть на tokio: https://tokio.rs/ Это решение Раста на тему асинхронщины, которое работает без корутин и с zero-cost abstraction™. На выходе всё компилируется в машину состояний работающую на event-loop. Единственная проблема, это опять же неизбежный высокий порог входа. Большинству пользователей имеет смысл использовать библиотеки на основе tokio, а не опускаться на этот уровень самостоятельно.
легко ли перейти с питона на раст?
>>16192 Сильно зависит от человека приходящего из Питона. Ну и плюс о полном переходе наверно думать не стоит, Раст и Питон отлично друг друга дополняют, чему отлично помогает возможность вызова кода в обоих направлениях. Всякие функциональные фишки, итераторы, нормальная система модулей, человечный инструментарий (rustup, cargo) в плюс. Необходимость думать о том где, что и как у тебя лежит в памяти, отсутствие привычной гибкости и развязности, отсутствие REPL, продолжительность компиляции (работа по улучшению ведётся), для большинства скорее в минус. С другой стороны строгая типизация, обработка ошибок через enum'ы, паттерн матчинг, borrow checker, компилятор дающий по рукам в случае чего (иногда конечно бывают перегибы, но в большинстве случаев дураком оказывается программист), что позволяет отлавливать ошибки при компиляции, а не в рантайме, и прочие фишки, лично для меня, оказались глотком свежего воздуха, но что бы прочувствовать всю прелесть этих вещей полезно походить по граблям Питона и набить на них шишки. Кстати насчёт контейнеров, думаю, эта ссылка будет полезна: https://www.reddit.com/r/rust/66t56s/
>>16197>человечный инструментарий (rustup, cargo)Энджой ёр монополия.
Что мертвее D или Rust?
>>17146 Go