Ruby 3 mempratinjau eksekusi paralel

Ruby 3.0.0, peningkatan terencana ke bahasa dinamis sumber terbuka yang telah lama ada, sekarang tersedia sebagai pratinjau. Sorotan dari versi baru ini mencakup eksekusi paralel dan kemampuan deskripsi tipe.

Eksekusi paralel hadir dalam bentuk fitur eksperimental yang dijuluki "Ractor", yang merupakan abstraksi konkurensi mirip model Aktor yang dimaksudkan untuk memberikan eksekusi paralel tanpa masalah keamanan thread. Pengembang dapat membuat beberapa raktor dan menjalankannya secara paralel. Program paralel ini dapat membuat thread aman karena raktor tidak dapat berbagi objek normal. Komunikasi antar raktor didukung oleh penyampaian pesan.

Ruby 3.0.0 juga memperkenalkan RBS, yang disebut sebagai bahasa untuk mendeskripsikan tipe program Ruby. Ruby 3.0.0 dilengkapi dengan permata rbs, yang memungkinkan penguraian dan pemrosesan definisi jenis yang ditulis dalam RBS. Pemeriksa tipe termasuk tipe profiler dan alat lain yang mendukung RBS akan memahami program Ruby lebih baik dengan definisi RBS.

RBS ditujukan untuk mendukung pola yang biasa terlihat di program Ruby. Tipe lanjutan dapat ditulis termasuk tipe gabungan, kelebihan metode, dan generik. Pengetikan bebek dengan tipe antarmuka juga didukung. 

Selain Ractor dan RBS, rilis Ruby 3.0.0 direncanakan untuk menawarkan sejumlah kemampuan lain:

  • Penjadwal, juga dalam tahap percobaan, untuk mencegat operasi pemblokiran. Diidentifikasi sebagai Thread#scheduler, kapabilitas memungkinkan konkurensi ringan tanpa mengubah kode yang ada.
  • Tampilan memori, fitur eksperimental lainnya, adalah kumpulan C-API untuk menukar area memori mentah, seperti larik numerik atau gambar bitmap, di antara pustaka ekstensi. Pustaka ini juga dapat berbagi metadata dari area memori yang terdiri dari bentuk, bentuk elemen, dll.
  • Peningkatan kinerja pada compiler Ruby MJIT (Metode berbasis Just In Time).
  • Pemisahan argumen kata kunci dari argumen lain.
  • Hash#except dibangun di dalam.
  • Pernyataan tugas ke kanan.
  • Definisi metode tanpa akhir.
  • Penambahan pola find.

Diluncurkan pada 25 September, pratinjau Ruby 3.0.0 dapat diunduh dari ruby-lang.org. Untuk pratinjau kedua, pembuat Ruby berencana menyertakan tipe profiler, yang berfungsi sebagai fitur analisis statis. Rilis stabil Ruby saat ini adalah versi 2.7.1 dan 2.6.6.