← strona głównaProgramowanie (Програмування)

Trochę o typach implementacji Ruby (CRuby (MRI), JRuby, Rubinius, TruffleRuby, mruby)

Trochę o typach implementacji Ruby (CRuby (MRI), JRuby, Rubinius, TruffleRuby, mruby). Do czego są potrzebne i jak je używać?

Spis treściKliknij link, aby przejść do wybranego miejsca
Ta treść została automatycznie przetłumaczona z ukraińskiego.
Ruby - obiektowo-orientowany język programowania z dynamicznym typowaniem. Ma kilka wariantów implementacji, które są specjalnie dostosowane do różnych środowisk i potrzeb.

CRuby

Oficjalny interpreter - CRuby, znany również jako Matz's (pseudonim Yukihiro Matsumoto, autora Ruby) Ruby Interpreter (MRI), jest oficjalną i najpopularniejszą implementacją Ruby. Został napisany w C i jest standardem dla zgodności różnych bibliotek (gemów).
CRuby idealnie nadaje się do tworzenia aplikacji internetowych, szczególnie przy użyciu frameworka Ruby on Rails. Wspiera wiele bibliotek i ma dużą ekosystem oraz społeczność.

JRuby

JRuby - to implementacja Ruby, która działa na Java Virtual Machine (JVM). Ułatwia integrację z bibliotekami Java i pozwala na integrację z istniejącymi systemami Java.
Na przykład, JRuby można używać w dużych aplikacjach korporacyjnych, gdzie potrzebna jest integracja z istniejącymi (legacy) systemami Java.

Rubinius

Rubinius wykorzystuje LLVM (Low Level Virtual Machine) do kompilacji kodu i zapewnia wielowątkowość na poziomie wykonania kodu. Rubinius stara się być w pełni zgodny z CRuby, co czyni go dobrym wyborem w niektórych przypadkach jako implementacja interpretera. Rubinius może być używany w systemach, które wymagają przetwarzania równoległych zapytań (dużej liczby), takich jak zadania w tle w aplikacjach internetowych.

TruffleRuby

TruffleRuby - to część projektu Oracle Graal i ma wysoką wydajność dzięki optymalizacji na poziomie wirtualnej maszyny GraalVM. TruffleRuby nadaje się do przetwarzania dużych ilości danych (na przykład - badań naukowych), gdzie wymagana jest maksymalna szybkość wykonania i zmniejszenie kosztów zasobów obliczeniowych.

mruby

mruby - to lekka wersja Ruby, przeznaczona dla systemów wbudowanych. Ma mniejszy rozmiar i zużywa mniej zasobów, co czyni ją idealną dla ograniczonych środowisk. mruby może być używana w systemach wbudowanych, takich jak mikrokontrolery lub inne przenośne urządzenia, gdzie trzeba zminimalizować zużycie pamięci.

Czy można uruchomić Ruby w przeglądarce?

Ruby nie jest wykonywane bezpośrednio w przeglądarce, jak to ma miejsce w przypadku JavaScript. Istnieje kilka podejść i narzędzi, które pozwalają na uruchamianie Ruby w przeglądarce.
Opal - to kompilator, który przekształca kod Ruby na JavaScript, co pozwala na pisanie logiki frontendowej w Ruby, a następnie wykonywanie jej w przeglądarce jako JavaScript. Opal przetwarza kod Ruby i przekształca go na zoptymalizowany JavaScript, zapewniając dużą część funkcjonalności Ruby.
Na przykład, na stronie Opal można przetestować działanie i zobaczyć przykład działania kompilatora oraz to, jak kod Ruby jest przekształcany na JS i wykonywany w przeglądarce. Prosty przykład:
Конвертуємо Ruby в JS за допомогою Opal
Конвертуємо Ruby в JS за допомогою Opal
Ruby:
def title(s)
  puts "title is #{s}"
end

puts title('hehe')
JS na wyjściu:
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"));
});
I wynik:
title is hehe
WebAssembly (Wasm) - to narzędzie, które może skompilować kod implementacji języka programowania i uruchomić go w przeglądarce. To nie jest bezpośrednie uruchomienie Ruby w przeglądarce. Jest to dość skomplikowane, ale możliwe. Jedna z opcji może wyglądać tak: mruby jest konwertowane na C, a WebAssembly już konwertuje kod na JavaScript, który można już uruchomić w przeglądarce.
Istnieją również inne opcje kompilacji i uruchamiania kodu Ruby w przeglądarce. Ale można zrozumieć, że obecnie nie ma możliwości bezpośredniego uruchomienia kodu Ruby w przeglądarce.

Jak sprawdzić, którą implementację Ruby używam?

To proste - uruchamiamy w terminalu polecenie, aby zobaczyć wersję ruby, implementację i architekturę.
ruby -e "puts RUBY_DESCRIPTION"
W moim przypadku:
ruby 3.2.1 (2023-02-08 revision 31819e82c8) [x86_64-darwin22]
Pod ruby - rozumie się domyślną implementację (CRuby).
Dla JRuby wynik będzie mniej więcej taki:
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]
To znaczy, tutaj wyraźnie widzimy tekst jruby.

🔥 Więcej postów

Wszystkie wpisy
ZOMBIE w Ruby. Co to jest?
Programowanie (Програмування)3 maj '24 12:41

ZOMBIE w Ruby. Co to jest?

ZOMBIE w Ruby. Co to jest? Do czego używany jest ten termin w repozytorium Ruby?

Programowanie (Програмування)7 maj '24 07:24

Czym jest natywny kod maszynowy?

Co to jest natywny kod maszynowy? Jak działa i do czego jest potrzebny?