Рубрика «Rust» - 8
Почему я отказался от разработки игр на Rust, часть 1
2024-04-30 в 9:42, admin, рубрики: borrow checker, ecs, Rust, игровые движкиБез холивара «переписать все на Go»: проблема переносимости в Python и ее решение
2024-04-25 в 12:22, admin, рубрики: delivery, github, Go, open source, python, Rust, Программирование, разработка, управление разработкойНа скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг — cli-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно организовать самостоятельно.
В этой статье поговорим о различных формах распространения Python-приложений. Какие есть подходы и инструменты, почему они могут не сработать и как чинить возникающие проблемы.
Rust — это не «memory safe C»
2024-04-02 в 18:23, admin, рубрики: Rust, параллельное программирование, рефакторинг, скорость разработки, тестированиеTL;DR:
— в Rust намного больше достоинств, чем просто скорость и безопасность;
— в Rust по умолчанию CDD (compiler-driven development, разработка через компилирование). Это как TDD, только CDD;
— Rust — не сложный язык, особенно если не гнаться за максимальной производительностью.
На Rust можно смотреть с разных углов. Например, можно на него смотреть как на безопасную замену для C или C++. Многие говорят, что ниша Rust — это "mission critical" программы, а все, кто использует его для других целей — безумцы (Читать полностью »
Как написать свою маленькую ОС
2024-03-11 в 9:00, admin, рубрики: BearSSL, Fomos, Godot Engine, GodotOS, javascript, linux, Oasis, OSDev, Rust, ruvds_статьи, SerenityOS, servo, shadow, UNIX, xv6, браузерный движок, операционная система, статическая связанность, экзоядро
Большое начинается с малого. Например, ядро Linux 0.0.1 состояло всего из 10 239 строк кода, из них 20% комментарии. Такой проект вполне может осилить студент в качестве курсовой или дипломной работы, программируя по вечерам на домашнем ПК (собственно, Линус и написал его во время учёбы в университете, когда вернулся из армии).
Если один студент смог это сделать тогда, то почему нельзя повторить? И действительно, в интернете есть даже специальные обучающие ресурсы для написания новых ОС и целые сообщества энтузиастов, которые помогают друг другу в этом непростом деле.Читать полностью »
Разработчик-универсал под видом специалиста
2024-02-25 в 10:00, admin, рубрики: Rust, ruvds_перевод, карьера, личный опыт разработки, Программирование
С тех пор, как я начал работать на себя, заключая контракты, меня постоянно тяготило то, что, будучи разработчиком-универсалом, на рынке труда мне приходится позиционировать себя как узкого специалиста. Я уже много лет хотел написать об этом и даже делал кое-какие заметки. Решающим же толчком послужила встреченная мной недавно статья Бена Коллинса-Сассмана, хоть она и затрагивает эту тему лишь косвенно.
Ниже я опишу сложности, с которыми мне приходилось сталкиваться. Надеюсь, эта информация окажется полезной для других вольных авантюристов. Прошу учесть, что статья отражает преимущественно мой личный опыт, так что делайте на это скидку.Читать полностью »
Передавать пустые срезы между Rust и C-C++ на удивление сложно
2024-01-26 в 13:00, admin, рубрики: C, c++, LLVM, Rust, ruvds_перевод, арифметика указателей, срезы памяти
Моя основная работа связана с браузерами и криптографией, а не компиляторами. Но я нередко сталкиваюсь с ситуацией, когда мне приходится проводить больше рабочего времени за изучением семантики языков программирования, чем за фактическим их использованием. Так что эта статья будет посвящена обсуждению острой межязыковой проблемы, касающейся С, С++ и Rust.
В общих чертах она выглядит так:
- В правила работы с указателями и
memcpyв С не заложены грамотные способы представления пустого среза памяти. - В С++ с правилами указателей проблем нет, но поведение
memcpyздесь аналогично её поведению в С. - Интерфейс внешних функций (Foreign Function Interface, FFI) в Rust не лишён накладных издержек. Rust использует несовместимое с C/C++ представление срезов, требуя их преобразования при передаче в обоих направлениях. При этом о преобразовании очень легко забыть.
- Срезы в Rust также несовместимы с арифметикой указателей, что создаёт проблемы в работе итератора срезов стандартной библиотеки. (Обновление от 2024-01-16: похоже, над этой проблемой работают).
Поскольку проблемы FFI касаются нескольких языков, я писал статью в качестве общей справки, описывающей их несогласованность. Читать полностью »
Арифметика первого класса в системе типов Rust
2024-01-19 в 13:00, admin, рубрики: Rust, ruvds_перевод, математика, Программирование, функциональное программирование
Арифметика – наука непростая, но к нашему удобству работу с ней можно облегчить с помощью экспрессивной системы типов языка Rust. В статье мы разберём реализацию на этом языке простейших математических операций, таких как сложение, вычитание, умножение и деление. Читать полностью »
Enterprise Muisc Graphics или история о том как я прикручивал Rust для RISC-V процессора YRV-Plus.
Начало истории
Эта история началось с того, что однажды во время наших воскресных встреч в Zoom Юрий Панчул / Yuri Panchul @YuriPanchulЧитать полностью »
Четыре способа оптимизации ПО
2023-11-26 в 10:00, admin, рубрики: python, Rust, ruvds_перевод, Алгоритмы, оптимизации, Программирование
Преждевременная оптимизация может оказаться корнем всех зол, а запоздалая — корнем безысходности. Каким бы быстрым ни становилось аппаратное обеспечение, мы находим способы писать медленные программы. И зачастую проявляется это не сразу. Пользователи могут годами не обращать внимания на проблему в производительности ПО, пока она не становится очевидной, что порой происходит в течение одного дня. Читать полностью »
Мнение три года спустя: стоил ли того переход с JavaScript на Rust?
2023-10-27 в 13:14, admin, рубрики: javascript, Rust, отладка, рефакторинг, тестирование
Несколько лет назад я отказался от всего и полностью сосредоточился на WebAssembly. В то время Rust имел наилучшую поддержку компиляции в WebAssembly, а самые полнофункциональные среды исполнения WebAssembly были основаны на Rust. Rust был лучшим из вариантов. С места в карьер я нетерпеливо начал разбираться, чем же вызван такой ажиотаж.
С тех пор мы с ещё несколькими потрясающими разработчиками создали Читать полностью »

