[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]

Файл: rust-logo-512x512-blk.png -(10 KB, 512x512, rust-logo-512x512-blk.png)
10 No.16152  
Может кому-то захочется обсудить данный язык или поспрашивать о нём вопросы.

inb4: C/C++ какашки, всё надо переписать на Расте
>> No.16165  
Расскажи о том, что пишешь на расте и для каких платформ. Очень интересен опыт из первых рук.
>> No.16167  
>>16152
с какого языка переходил?
>> No.16173  
Вопрос один: нафига так много разных типов контейнеров? Пока учил, окончательно запутался и дропнул. Всего-то нужна безопасная замена указателей и ссылок, а тут вон чего нагородили.
Вопрос два: что на нем на данный момент можно написать на практике? Язык это одно, а среда другое. Есть свой нормальный гуи или биндинг в QT? Целесообразно ли писать серверное приложение, может ли он в PostgreSQL/MongoDB, вебсокеты, шаблоны, криптографию. Может ли соперничать на этом уровне с NodeJS или Django/Flask? Микроконтроллеры еще не завезли? Киллер-фича вроде как. Как смотрят производители, им же все тулчейны под раст перепиливать. Как скриптовый язык можно использовать? Может ли он в хоть простенькй гемдев? Есть готовые 2д/3д фреймворки? Как с деплоем под разные платформы?
Вопрос три: что там с IDE? Idea уже поддержтвает? Или пиши в блокноте @ компилируй в консоли.
>> No.16184  
>>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

Лично я предпочитаю вариант с консолью.
>> No.16185  
Ах да, если интересует сеть, то обязательно стоит посмотреть на tokio:
https://tokio.rs/
Это решение Раста на тему асинхронщины, которое работает без корутин и с zero-cost abstraction™. На выходе всё компилируется в машину состояний работающую на event-loop.

Единственная проблема, это опять же неизбежный высокий порог входа. Большинству пользователей имеет смысл использовать библиотеки на основе tokio, а не опускаться на этот уровень самостоятельно.
>> No.16192  
легко ли перейти с питона на раст?
>> No.16197  
>>16192
Сильно зависит от человека приходящего из Питона. Ну и плюс о полном переходе наверно думать не стоит, Раст и Питон отлично друг друга дополняют, чему отлично помогает возможность вызова кода в обоих направлениях.

Всякие функциональные фишки, итераторы, нормальная система модулей, человечный инструментарий (rustup, cargo) в плюс. Необходимость думать о том где, что и как у тебя лежит в памяти, отсутствие привычной гибкости и развязности, отсутствие REPL, продолжительность компиляции (работа по улучшению ведётся), для большинства скорее в минус.

С другой стороны строгая типизация, обработка ошибок через enum'ы, паттерн матчинг, borrow checker, компилятор дающий по рукам в случае чего (иногда конечно бывают перегибы, но в большинстве случаев дураком оказывается программист), что позволяет отлавливать ошибки при компиляции, а не в рантайме, и прочие фишки, лично для меня, оказались глотком свежего воздуха, но что бы прочувствовать всю прелесть этих вещей полезно походить по граблям Питона и набить на них шишки.

Кстати насчёт контейнеров, думаю, эта ссылка будет полезна:
https://www.reddit.com/r/rust/66t56s/
>> No.16263  
Файл: captcha-1.png -(4 KB, 90x50, captcha-1.png)
4
>>16197
>человечный инструментарий (rustup, cargo)
Энджой ёр монополия.
>> No.17146  
Что мертвее D или Rust?
>> No.17147  
>>17146 Go



[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]