Ычан: [d | b / bro / hr / l / m / mu / o / s / tran / tu / tv / vg / x | a / aa / c / fi / jp / rm / tan / to / vn]
[Назад]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 16152)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, MP4, OGG, OGV, PDF, PNG, PSD, RAR, SVG, SWF, TXT, WEBM, WEBP, XCF, ZIP размером до 5120 кБ.
  • Ныне 3654 unique user posts. Посмотреть каталог
  • Предельное количество бампов нити: 500
rust-logo-512x512-blk.png - (10.91KB, 512×512)
16152
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.67KB, 90×50)
16263
>>16197
>человечный инструментарий (rustup, cargo)
Энджой ёр монополия.
No. 17146  
Что мертвее D или Rust?
No. 17147  
>>17146 Go
Удалить сообщение []
Пароль  
[Mod]