Pull to refresh
89
0
Александр Мещеряков@freecoder_xx

Rust разработчик

Send message

Мейнстримные языки, более современные, чем C/C++, этим не удивишь.

Так и есть. И это прекрасно.

А аргументы у вас какие? Вы понимаете, что такое коммунизм? По-видимому нет.


Коммунизм по Марксу — это, прежде всего определенный способ производства с определенными производственными отношениями. И эти отношения строятся вокруг общественной собственности на средства производства и порождают нетоварные формы обмена.


Так вот, как выглядит производство при коммунизме? Сами потребители становятся производителями (контрибьюторами), они не нанимаются к собственнику, а организуются большим коллективом вокруг производства нужного им продокта (в сообщество). Чтобы это работало, важно, чтобы такая организация происходила вокруг обобществленных средств производства (свободные исходные коды и рабочее ПО), и результат их совместного труда также бы обобществлялся.


И в чем отличия?

Есть пример веб-проекта, у которого бэкенд полностью был бы сделан на Rust?

Ну чтобы далеко не ходить — вот вам пример веб-приложения, бэкенд которого на Rust: https://utex.io/exchange-pro


Для подобных задач Rust показывает себя хорошей заменой C++ и Java/Kotlin. Вообще, я бы предпочел Rust любому высокоуровнему языку из мейнстримных сегодня. Но из-за незрелости в некоторых нишах его использование все еще затруднено (как, например, в мобильной разработке). Хотя именно с точки зрения языка нет принципиальных проблем для его распространения в эти ниши.


ORM в Rust отличается от того, как он реализуется в мейнстримных ООП-языках. Более простой и с растовой спецификой (многие вещи из рантайма выносятся на стадию компиляции). Самая близкая и зрелая реализация — это Diesel. Он может почти все, только плоховато документирован. Хотя для большого количества случаев достаточно sqlx.


Логирование — есть куча неплохих библиотек, полный список здесь. Сбор метрик в прометеус, работа с Redis и RocksDB и т.д. — все это есть, чаще в виде безопасных оберток над Сишными либами.


Стандартная библиотека очень хорошая, но она довольно минималистичная. Работа с сетью, с файловой системой — это, конечно, есть, но, например, полноценного веб-сервера вы в ней не найдете. Для этого есть отдельные крейты, такие как hyper, actix-web, tokio и так далее. Даже фасад для логирования, функционал сериализации/десериализации и работа с регулярными выражениями вынесены в отдельные крейты, которые становятся стандартами де-факто для использования: log, serde, regex и прочие. Вот список всех крейтов по количеству загрузок за все время.

Области применения весьма широкие. Например, вот что делал я на Rust:


  • Web-сервисы: http, gPRC, WebSocket (в том числе и общался с Kafka). Как крупные web-приложения, так и небольшие.
  • Web-сервер.
  • Web-клиенты.
  • Фронтэнд под WASM в браузере.
  • Внебраузерные WASM-модули под wasmer.
  • Консольные утилиты.
  • Библиотеки и модули для других языков (PHP).
  • GUI-библиотеку и игру на ней.
  • Смарт-контракты для блокчейна (Solana, она сама тоже написана на Rust).
  • Макросы и "скрипты" сборки для автоматизации процесса разработки.

Еще хочу попробовать мобильную разработку на Rust, но пока с этим есть некоторые трудности.

Про HTTP — смотрите сюда: https://actix.rs/docs/getting-started
Для Kafka есть обертка над librdkafka: https://github.com/fede1024/rust-rdkafka

Потому что выйдя за определенные рамки эргономики мы покидаем аудиторию, для которой изначально и предназначался язык и безопасность программ которой он и был призван улучшать. У Раста нет цели быть принципиально 100% безопасным в ущерб остальному, у него цель быть как можно безопаснее в заданных ограничениях, коих еще вагон.

Свободное ПО — это игра win-win по большей части. Когда ты участвуешь в интересном тебе проекте наряду с каким-нибудь Google, то не только ты работаешь бесплатно на Google, но и он работает бесплатно на тебя. Не всегда это плюс, но в большинстве случаев это энергетически выгодно.

Саму концепцию сложно назвать новой, она уже реализована во многих языках, причём как нового поколения (Rust, Golang), так и у тех, кому уже за 0x18 (Java).

А можно примерчик паттерн-матчинга в Golang и Java?

Довольно много блокчейнов пишут сейчас на Rust: Solana, Polkadot, Soramitsu переписывают свои проекты на Rust, ну и т. д. Также знаю об использовании Rust в HFT-системах и ядрах бирж. Потихоньку появляются Dapp-проекты на Rust (типа Fluence) — очень удобно, когда язык позволяет легко организовать wasm-песочницу, к тому же можно одновременно и бэк и фронт писать на одном языке.

А вот если эти люди были устроены внутри компании и их вместо развития раста отправят (опять же условно) на Go писать, то будет хуже.

Ну вот были такие разработчики, которые работали в Mozilla, но потом компания решила, что хватит им платить. Люди перешли в Amazon и прочий Facebook. На самом проекте это никак не отразится (в общем случае). Но если бы сам проект платил людям, а потом просто бы перестал, то мгновенно перестроить рабочие процессы с найма на свободную кооперацию — не так-то и просто (иногда вообще невозможно).

Русских поголовно призывали в армию, а переселенцев наоборот, из армии убирали. И кто в итоге оказался в лучшем положении? Кроме того, вы не считали сколько русских рабочих вместе с семьями и предприятиями переместили из европейской части СССР во время войны? Вы просто не понимаете, что в то время политика по перемещению масс населения распространялась на всех, в том или ином виде. Пожалуй дествительно где был реальный конфликт на национальной почве — это в отношении с китайцами. Но там обе стороны были хороши.

От права на оружие до промывки мозгов CRT в школах и госучреждениях до, собственно, права детей учиться онлайн или оффлайн, до ещё кучи ерунды — влияет один человек.

Ох, как вы наивны и насколько далеки от политики.

А сами переселяемые народы — они сильно дружили с остальным СССР в то время? Дружба — это понятие взаимное. Переселение и было обусловлено тем, что СССР усомнился в дружественности некоторых народов в определенный период своей истории.

Это не отговорка. В вашем же примере:


Xxx: — В советском союзе независимо от пола и цвета кожи у всех были равные свободы и права…
Yyy: — А как же насильное переселение и ущемление прав чеченцев, поляков, крымских татар и прочих народов?

Два высказывания совершенно о разном.

Конкуренция — это борьба. И в ней всегда есть стремление победить. Побеждающий становится сильнее, подминает под себя более слабых. По сути, конкуренция — это постоянное стремление к монополии.

Вот именно. Но либертарианцы этого в упор не видят.

Сообщество составляют не только отдельные люди, но и компании, которые нуждаются в том продукте, что производится сообществом. Те люди, которые работают в сообществе за зарплату — просто являются частью той или иной компании, входящей в сообщество, а не частью самого сообщества (в строгом смысле).


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

Утопию реализовать невозможно.

Народы переселялись не по цвету кожи и не по признаку пола.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity