Ruby - об'єктноорієнтована мова програмування з динамічною типізацією. Вона має декілька варіантів реалізації, які спеціально підлаштовані для окремих середовищ та потреб.
CRuby
Офіційний інтерпретатор - CRuby, також відомий як Matz's (нікнейм Юкіхіро Мацумото, автора рубі) Ruby Interpreter (MRI), є офіційною та найпопулярнішою реалізацією Ruby. Він написаний на C і є стандартом для сумісності різних бібліотек (gem's).
CRuby ідеально підходить для веб-розробки, особливо з використанням фреймворку Ruby on Rails. Підтримує багато бібліотек та має велику еко-систему та ком'юніті.
JRuby
JRuby - це реалізація Ruby, що працює на Java Virtual Machine (JVM). Спрощує інтеграцію з Java-бібліотеками, та дозволяє інтегруватись в існуючу Java систему.
Наприклад, JRuby можна використовувати у великих корпоративних застосунках, де потрібна інтеграція з існуючими (legacy) Java-системами.
Rubinius
Rubinius використовує LLVM (Low Level Virtual Machine) для компіляції коду і забезпечує багатопотоковість на рівні виконання коду. Rubinius намагається бути повністю сумісним з CRuby, що робить його непоганим варіантом в деяких випадках в якості реалізації інтерпретатора. Rubinius може бути використаний у розробці систем, які потребують обробки паралельних запитів (великої кількості), таких як фонові завдання в веб-застосунках.
TruffleRuby
TruffleRuby - це частина проєкту Oracle Graal і має високу продуктивність завдяки оптимізації на рівні віртуальної машини GraalVM. TruffleRuby підходить для обробки великих обсягів даних (наприклад - наукових досліджень), де потрібна максимальна швидкість виконання і зменшення витрат на обчислювальні ресурси.
mruby
mruby - це легка версія Ruby, призначена для вбудованих систем. Вона має менший розмір і менше споживає ресурсів, що робить її ідеальною для обмежених середовищ. mruby може бути використана у вбудованих системах, таких як мікроконтролери або інші портативні пристрої, де потрібно мінімізувати споживання пам'яті.
Чи можна запустити Ruby в браузері?
Ruby не виконується безпосередньо в браузері, як це можливо з JavaScript. Існує кілька підходів та інструментів, які дозволяють запускати Ruby в браузері.
Opal - це компілятор, який перетворює код Ruby на JavaScript, що дозволяє вам писати фронтенд-логіку на Ruby, а потім виконувати її у браузері як JavaScript. Opal обробляє Ruby код і перетворює його на оптимізований JavaScript, забезпечуючи велику частину функціональності Ruby.
Наприклад, на сайті Opal ви можете протестувати роботу та наочно побачити приклад роботи компілятора та того як Ruby код перетворюється на JS та виконується в браузере. Простий приклад:
Ruby:
def title(s)
puts "title is #{s}"
end
puts title('hehe')
JS на виході:
Opal.queue(function(Opal) {/* Generated by Opal 1.8.2 */
var $def = Opal.def, self = Opal.top, nil = Opal.nil;
Opal.add_stubs('puts,title');
$def(self, '$title', function $$title(s) {
var self = this;
return self.$puts("title is " + (s))
});
return self.$puts(self.$title("hehe"));
});
І результат:
title is hehe
WebAssembly (Wasm) - це інструмент, який може скомпілювати код реалізації мови програмування та запустити в браузері. Це не прямий запуск Ruby в браузері. Це доволі складно, але можливо. Один з варіантів може виглядати так: mruby конвертується в C, а WebAssembly вже конвертує код у JavaScript, який вже можна запустити в бразері.
Існують й інші варіанти компіляції та запуску рубі коду в браузері. Але і так можна зрозуміти, що наразі немає можливості прямого запуску ruby-коду в браузері.
Як перевірити яку реалізацію Ruby я використовую?
Все просто - запускаємо в терміналі команду, щоб побачити версію ruby, реалізацію та архітектуру.
Під ruby - мається на увазі дефолтна реалізація (CRuby).
Для JRuby буде приблизно такий результат:
jruby 9.2.11.1 (2.5.7) 2020-03-02 d8d4b94 OpenJDK 64-Bit Server VM 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 on 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 +jit [linux-x86_64]
Цей блок містить всю необхідну інформацію для правильного цитування, включаючи дату публікації, назву допису, URL та інше.
Зверніть увагу, що посилатись потрібно на автора/авторку контенту (профіль, окремий допис тощо), а сайт цейво (tseivo.com) - лише майданчик для розміщення публікацій.
💡 Архівування сторінки у веб-архіві, такому як Wayback Machine, є корисною практикою, коли ви посилаєтесь на неї. Це дозволить зберегти стан сторінки на цей час і знизить ризики від зміни контенту або зміни структури сайту у майбутньому.
Оберіть та скопіюйте потрібний стандарт цитування:
ДСТУ 8302:2015
Трохи про типи реалізації Ruby (CRuby (MRI), JRuby, Rubinius, TruffleRuby, mruby) [Електронний ресурс] // tseivo.com. – Режим доступу: https://tseivo.com/b/memecode/t/lnxm8qx7kg/trokhy-pro-typy-realizatsii-ruby-cruby-mri-jruby-rubinius-truffleruby-mruby (дата звернення: 03.10.2024). – Назва з екрана.
ДСТУ ГОСТ 7.1:2006 (ВАК)
Трохи про типи реалізації Ruby (CRuby (MRI), JRuby, Rubinius, TruffleRuby, mruby) [Електронний ресурс] // tseivo.com. – URL: https://tseivo.com/b/memecode/t/lnxm8qx7kg/trokhy-pro-typy-realizatsii-ruby-cruby-mri-jruby-rubinius-truffleruby-mruby (дата звернення: 03.10.2024).
Або ж використовуйте наступну інформацію для формування цитування:
Дата публікації:
05.05.2024
Назва допису:
Трохи про типи реалізації Ruby (CRuby (MRI), JRuby, Rubinius, TruffleRuby, mruby)
Автор/авторка пише під псевдонимом і не оприлюднює своє справжнє ім'я. Завжди перевіряйте достовірність контенту використовуючи декілька джерел (навіть, якщо контент опублікован під справжнім ім'ям).
Про зображення:
На нашій платформі ми приділяємо особливу увагу правильному вказуванню джерел зображень, щоб забезпечити дотримання авторських прав і прав на використання контенту. Ми намагаємося мотивувати використовувати виключно власні зображення, ресурси, що відповідають принципам fair use, або безкоштовні зображення з ліцензіями на кшталт Unsplash, які дозволяють вільне використання без порушення прав інтелектуальної власності.
Однак, враховуючи масштаб нашої платформи та різноманітність контенту, ми не можемо повністю контролювати всі публікації користувачів. Тому ми рекомендуємо перевіряти права на використання зображень та дотримуватися відповідних ліцензій, щоб уникнути можливих порушень авторських прав.
Інформація на сайті tseivo.com є суб'єктивною та відображає особисті погляди та досвід авторів та авторок блогів.
Використовуйте цей ресурс як одне з декількох джерел інформації під час своїх досліджень та прийняття рішень. Завжди застосовуйте критичне мислення. Людина сама несе відповідальність за свої рішення та дії.