• Какие существуют кольцевые lock free очереди / каналы для Rust?

    @blandger
    Могу порекомендовать статью, может подскажет что полезное.
    www.rossbencina.com/code/lockfree
    Ответ написан
    Комментировать
  • Как решить проблему godot Rust с установкой?

    @blandger
    Данная ошибка возникает, когда при сборке крейта требуется установленная Си библиотека, по ошибке это видно libclang.dll
    Пока данная библиотека будет установлена, где есть какая-то внутренняя зависимость на нее (или зависимость у какого-то другого использованого крейта ?), то сборка крейта не будет успешной.
    Ответ написан
    Комментировать
  • В чем причина утечки памяти в программе на rust?

    @blandger
    Для тех кто будет читать, но вдруг не знает. Rust может гарантировать отсутствие "гонки данных", но не может во всех возможных случаях гарантировать "отсутствие утечки памяти", хотя определенным образом этому способствует.
    Ответ написан
    Комментировать
  • Возможно ли создание языка, который бы пришёл на замену С по производительности?

    @blandger
    Практически такой же язык уже создан. При этом он является во много раз более безопасным, насколько что, как Майкрософт так и Линукс разработчики внедряют его подержку и компиляцию в существующие кодовые базы.

    Его название — Rust.
    И да создание языка — это далеко ещё не создание компилятора для такого нового языка и других инструментов.
    Это многие человеко-часы, то есть годы разработок.
    Ответ написан
  • Какую выбрать базу данных для работы с гео данными?

    @blandger
    Использовал MongoDb для гео данных (создание спорт события любителей + собрать "команду" на него, в том числе по кругу координат), было это более 5-7 лет назад, проблем не наблюдал.
    Также был проект с гео базой для 5-6 (где-то так) миллионов записей на выборках (вставка была заранее выполнена), работало тоже довольно быстро.
    Ответ написан
    Комментировать
  • Rust - ещё один убийца c/c++?

    @blandger
    Рональд Макдональд
    Так а чего там убивать? Переписывать все с С/С++ - да ну нафиг, никто не будет заморачиваться и упарываться так.
    Писать новое/свое - да на здоровье.
    Язык имеет отличные перспективы, будут ли они реализованы - время покажет.
    Я готовлю уже скилы.... "пет проекты" и т.д.
    Ответ написан
    Комментировать
  • Существует ли ЯП с Не стандартной логикой обработки ошибок try..catch?

    @blandger
    Посмотрите раздел обработка ошибок в Rust
    Ответ написан
    Комментировать
  • Какой язык программирования для Back-end производительнее?

    @blandger
    Чтобы удовлетворить ваши амбициозные требования к производительности, гляньте на сравнения бенчмарков некоторого проекта написанного на разных ЯП с разными библиотеками, с сайта
    https://www.techempower.com/benchmarks/

    Очевидный лидер на протяжении долгого времени ЯП RUST с одним из веб-фреймворком.
    ЯП который не только выдаёт бинарный исполняемый код, имеет маленький рантайм без GC, но самое главное на уровне языка гарантирует безопасность кода (конечно при "ровных" руках). Также имеет недавно добавленный в ЯП функционал-сахар для написания асинхронного кода (async/await). Он строго типизированный, наследования нет, но есть композиция и система типажей (traits). Главное — благодаря свойствам компилятора (borrow checker) он уже при компиляции умеет "бить по рукам" за не безопасный код в многопоточной среде.

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

    Язык rust — сложный для вхождения, поэтому приготовьтесь осваивать дольше, чем любой другой, на уровне c++. Но он того стоит.
    Ответ написан
    Комментировать
  • В чём сейчас актуален Rust?

    @blandger
    Кроме не многочисленных блокчейн вакансий, появилось некоторое количество вакансий от "гигантов", которые успешно адаптировали у себя rust — это компании вроде Amazon, Mozilla, и другие более мелкие из США.
    Есть и другие, различного характера, но их мало — https://rustjobs.io/
    В данный момент приходится заниматься в раст самостоятельно, а зарабатывать пока другими яп.
    Ответ написан
    Комментировать
  • Как перестать говнокодить и принимать неверные архитектурные решения?

    @blandger
    Программирование — это знания, умения и навыки (можно иногда говорить "искусство", если про талантливых людей) НАХОДИТЬ КОМПРОМИССЫ. Компромиссы между скоростью выполнения задачи (значит стоимостью разработки) и качеством/ясностью вашего кода, между скоростью его исполнения и количеством потребляемой памяти/ресурсов, между наличием/отсутствием тестов и полнотой/качеством их покрытия вашего кода....и множество других компромиссов. . В конце концов программирование — это такой огромный "конструктор", в котором можно складывать фигурки огромное количество раз и вариантов. Какие то варианты будут оптимальные и изящные, но большая часть далеко не такие. Чем лучше навыки-знания, тем лучше вариант. Чем больше попыток (удачных и не удачных), тем больше ваш опыт конструктора.

    Любой, пусть даже (вдруг!) изначально "идеально написанный код" по мере развития проекта (хорошо когда бизнес идёт успешно и развивается) может превращаться в говнокод сам по себе, потому что "он обрастает костылями" при добавлении "фич" (нового функционала). Это нормальный и естественный процесс "эволюции кода/системы". Стараться держать в актуальном состоянии юнит/интеграционные/какие_есть тесты, учиться делать рефакторинг как коду, так и тестам— это навыки, которые надо развивать. Можно на личных проектах также, потому что для вас лично они более интересны и ценны по качеству и вы обычно не жёстко лимитированы по времени. Можно "решать задачки", можно участвовать в open source проектах.

    "Классические знания/труды" всегда остаются "в силе", про них написали выше, можно для развития ещё читать книги про "искусству создания эволюционирующей архитектуры" ПО. Не для того, чтобы называться сразу "архитектором", а хотя бы просто пробовать заранее планировать разработку, дизайн проекта/модуля/компонента/функции/итд в данном аспекте, оценивать возможные недостатки текущего кода/дизайна/архитектуры. Миддлу это сложно, но в получении новых знаний и навыков нет ничего плохого, если хватает свободного времени (а его всегда крайне мало). Надо понимать, что данная область знаний/профессия продолжает и будет дальше развиваться, новые языки/парадигмы/библиотеки/идеи будут появляться, поэтому самостоятельное развитие (практических) навыков и (теоретических) знаний для практики — залог успеха. Знания без практики и "умесности их применения" в том или другом случае/контексте — тоже могут быть бесполезны и/или вредны. Не надо фанатизма!

    Да, иногда сложно "не костылить", да приходится идти с собой на компромисс, да ставить метки todo в коде и заносить в jira задачи "технического долга". Тех долг накапливается и если его не устранять, то рано или поздно проект становится сложно и мучительно поддерживать.

    Как разработчик с опытом 18+ в данной профессии — согласен с предыдущими замечаниями. Универсального и единственно работающего рецепта "не говнокодить" нет, приходится развиваться, взрослеть по мере получения практического опыта и знаний.
    Ответ написан
    Комментировать
  • Есть ли реальная замена Java в Энтерпрайзе?

    @blandger
    Вопрос "замена" звучит не совсем понятно. Может вопрос задавался как: что перспективнее изучать для энтерпрайз на будущее?

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

    Перспективным я наблюдаю яп Rust, в том числе и возможно для предприятий когда нибудь, не быстро и не скоро, но вероятность на мой взгляд есть.
    Ответ написан
    Комментировать
  • Математически доказанная безопасность Rust - это как?

    @blandger
    Рабочая группа есть, когда будут результаты? Наверное не быстро..
    https://github.com/rust-lang-nursery/wg-verification

    Цели и задачи группы перечислены
    https://rust-lang-nursery.github.io/wg-verification/
    Ответ написан
    Комментировать