Ruby 3 обещает параллельное выполнение

Ruby 3 обещает параллельное выполнение
08.10.2020
19059

Ruby 3.0.0 – это планируемое обновление динамического языка с открытым исходным кодом, которое уже доступно в качестве предварительной версии. Основные особенности новой версии включают возможности параллельного выполнения и описания типов.

Ractor

Параллельное выполнение осуществляется в форме экспериментальной функции, получившей название «Ractor», которая представляет собой абстракцию параллелизма, подобную модели Actor, предназначенную для обеспечения параллельного выполнения без проблем безопасности потоков. Разработчики могут создавать несколько «ракторов» и запускать их параллельно. Эти параллельные программы можно сделать потокобезопасными, поскольку «ракторы» не могут совместно использовать обычные объекты. Связь между «ракторами» поддерживается посредством передачи сообщений.

Чтобы ограничить совместное использование объектов, Ractor вводит несколько ограничений в синтаксис Ruby.

Спецификация и внедрение не дорабатываются и не изменяются в будущем, поэтому эта функция помечена как экспериментальная.

 

пример использования Ractor

 

RBS

Ruby 3.0.0 также представляет RBS, заявленный как язык для описания типов программ Ruby. Он позволяет анализировать и обрабатывать определения типов. Средства проверки типов, включая профилировщики типов и другие инструменты, поддерживающие RBS, будут лучше понимать программы Ruby.

RBS предназначен для поддержки часто встречающихся шаблонов в программах Ruby. Поддерживаются расширенные типы, включая типы объединения, перегрузка методов и универсальные типы. Программисты смогут использовать определение классов и модулей: методы, определенные в классе, переменные экземпляра и их типы, а также отношения наследования/смешивания.

пример RBS

 

Планировщик

В 3 версии языка также добавлен планировщик, который находится на экспериментальной стадии, для перехвата блокирующих операций. Обозначаемая как Thread#scheduler, возможность обеспечивает легкий параллелизм без изменения существующего кода.

Поддерживаемые в настоящее время классы / методы:

  • Mutex#lock, Mutex#unlock,Mutex#sleep
  • ConditionVariable#wait
  • Queue#pop, SizedQueue#push
  • Thread#join
  • Kernel#sleep
  • IO#wait, IO#read, IO#write и связанные с ними методы (например #wait_readable, #gets, #puts).
  • IO#select не поддерживается.

Текущая точка входа для параллелизма, Fiber.schedule{...}, однако, может измениться к моменту выпуска Ruby 3.

Другие примечательные функции

  • Представление памяти, еще одна экспериментальная функция, представляет собой набор C-API для обмена необработанной областью памяти, такой как числовой массив или растровое изображение, между библиотеками расширений. Эти библиотеки также могут совместно использовать метаданные области памяти, которая состоит из формы, формы элемента и т. д.
  • Повышена производительность компилятора Ruby MJIT (Just In Time на основе методов).
  • Добавлено отделение аргументов ключевого слова от других аргументов.
  • Hash#except теперь встроенный.
  • Добавлен оператор присваивания вправо.
  • Добавлено бесконечное определение метода.
  • Добавление шаблона поиска.

Предварительная версия Ruby 3.0.0 была представлена 25 сентября и доступна для скачивания с официального сайта. Во второй предварительный просмотр разработчики Ruby планируют включить профилировщик типов, который служит функцией статического анализа. Текущие стабильные выпуски Ruby – это версии 2.7.1 и 2.6.6.

Напомним, что по данным опроса Stack Overflow среди программистов, Ruby вошел в десятку «самых высокооплачиваемых» языков в этом году.

Автор:
Обозреватель

См. также

Минцифры подготовило проект постановления по запуску платформы, на которой ИТ-специалисты могут пройти добровольное тестирование и подтвердить свою квалификацию.

11.12.2024    995    user1915669    3       

2

Федеральная налоговая служба запустила интерактивный сервис, позволяющий формировать в машиночитаемом виде договоры, контракты, соглашения и спецификации. Чтобы создать документ и скачать получившийся файл, регистрация не требуется.

03.12.2024    795    user2114475    0       

2

Российский Альянс по искусственному интеллекту обновил требования к специалистам по ИИ: вышла новая модель с основными профессиями и навыками. Теперь базовых профессий в сфере ИИ осталось только четыре.

01.11.2024    954    user1915669    0       

3

Система платежей «Волна» по планам сделает возможной бесконтактную оплату для владельцев IPhone в России, а BRICS Pay позволит совершать безналичные расчеты иностранцам по картам Visa и Mastercard.

23.10.2024    1262    AnastasiaKl    0       

4

Конструктор сайтов Wix уходит из России с 12 сентября 2024 года – перестанут работать все российский аккаунты. Сайты, привязанные к аккаунтам, также перестанут работать.

11.09.2024    1241    user1915669    2       

2

ИИ научат разработке цифровых интегральных микросхем – несколько российских научных институтов заявили об участии в проекте. Проект рассчитан на 3 года – с 2024 по 2026.

23.07.2024    876    user1915669    0       

2

Развитие искусственного интеллекта и цифровых сервисов в России стало причиной роста потребности в мощных центрах обработки данных. Эксперты прогнозируют, что дефицит ЦОД, который уже наблюдается сегодня, в ближайшие годы будет только усиливаться.

18.07.2024    988    AnastasiaKl    0       

1

В сентябре 2024 года видеоигры в России начнут маркировать – пока на добровольной основе. Геймерам будут сообщать о семи видах чувствительного (неприятного) контента в игре.

17.07.2024    1066    user1915669    0       

1
Инфостарт бот

Оставьте свое сообщение