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

08.10.2020      18975

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 вошел в десятку «самых высокооплачиваемых» языков в этом году.


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


См. также

Новость ИТ-Новость

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

01.11.2024    671    user1915669    0       

2

Новость ИТ-Новость

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

23.10.2024    898    AnastasiaKl    0       

3

Новость ИТ-компания ИТ-Новость

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

11.09.2024    946    user1915669    2       

2

Новость Искусственный интеллект ИТ-Новость

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

23.07.2024    600    user1915669    0       

2

Новость Дата-центры Искусственный интеллект ИТ-Новость

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

18.07.2024    722    AnastasiaKl    0       

1

Новость ИТ-Новость

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

17.07.2024    802    user1915669    0       

1

Новость Законодательство ИТ-Новость

Депутаты Госдумы работают над законопроектом по ужесточению контроля за электросамокатами. Среди мер: обязательная регистрация СИМ (средств индивидуальной мобильности) и разработка системы отслеживания их перемещений.

10.07.2024    770    AnastasiaKl    2       

1

Новость Искусственный интеллект ИТ-Новость

В 2024 году «Сколково» выделит пилотным проектам в сфере искусственного интеллекта гранты на общую сумму 554 млн рублей. В результате отбора финансирование получат проекты с применением ИИ в областях производства, операционной деятельности и в работе предоставляемых сервисов.

12.04.2024    1649    AnastasiaKl    3       

3
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение