Archivi categoria: News Blog

Ruby 4.0: ecco tutte le novità principali

Il 25 dicembre del 2025 è stata rilasciata Ruby 4.0, una versione particolarmente significativa perché coincide con il 30° anniversario della prima release pubblica del linguaggio.

Questa nuova versione introduce miglioramenti importanti in termini di performance, parallelismo e strumenti per sviluppatori, mantenendo allo stesso tempo una buona compatibilità con le versioni precedenti.

Vediamo nel dettaglio le novità più rilevanti.

ZJIT: un nuovo compilatore Just-In-Time

Una delle novità più interessanti di Ruby 4.0 è ZJIT, un nuovo compilatore Just-In-Time sviluppato dallo stesso team che ha creato YJIT.

A differenza di YJIT, che utilizza una tecnica di compilazione basata su lazy basic block versioning, ZJIT segue un’architettura più tradizionale, pensata per essere:

  • più semplice da comprendere
  • più facile da mantenere
  • più accessibile ai contributi della community

Per attivarlo è possibile utilizzare il flag:

ruby --zjit my_script.rb

Attualmente ZJIT offre prestazioni migliori rispetto all’esecuzione interpretata, ma YJIT rimane la soluzione consigliata per ambienti di produzione. L’obiettivo di ZJIT è soprattutto creare una base solida per miglioramenti futuri del compilatore Ruby.

Ruby::Box: namespace isolati

Ruby 4.0 introduce anche Ruby::Box, una funzionalità sperimentale che permette di creare namespace isolati all’interno dello stesso processo Ruby.

Questo rende possibile caricare più versioni della stessa libreria contemporaneamente, riducendo i conflitti tra dipendenze.

La feature può essere abilitata tramite variabile d’ambiente:

RUBY_BOX=1

Esempio di utilizzo:

box1 = Ruby::Box.new
box1.require("some_gem", version: "1.0")

box2 = Ruby::Box.new
box2.require("some_gem", version: "2.0")

Tra i principali casi d’uso troviamo:

  • test di aggiornamenti di librerie
  • esecuzione di codice legacy insieme a dipendenze moderne
  • isolamento di codice di terze parti

Essendo una funzionalità sperimentale, l’API potrebbe evolversi nelle versioni future.

Nuova API per i Ractor

I Ractor, introdotti nelle versioni precedenti di Ruby per gestire il parallelismo reale, hanno ricevuto un importante aggiornamento.

Ruby 4.0 introduce Ractor::Port, un nuovo meccanismo per gestire la comunicazione tra ractor.

port = Ractor::Port.new

r = Ractor.new(port) do |p|
  p.send("Hello from Ractor!")
end

message = port.receive
puts message

Con questa modifica sono stati rimossi i metodi:

  • Ractor.yield
  • Ractor#take

Il nuovo modello si ispira alla comunicazione tra processi (IPC), rendendo l’API più coerente con i paradigmi di programmazione concorrente.

Miglioramenti alla sintassi del linguaggio

Ruby 4.0 introduce anche piccoli miglioramenti alla sintassi che possono migliorare la leggibilità del codice.

Ora è possibile iniziare una nuova riga con operatori logici come &&, ||, and e or.

result = condition_one
  && condition_two
  && condition_three

Questa possibilità rende più leggibili espressioni condizionali lunghe o complesse.

Come elencare tutti i nomi dei container Docker e i relativi IP

A volte orientarsi nella selva di IP presente, durante l’utilizzo di Docker, diventa davvero difficile. Il comando seguente creerà un comodo elenco con tutti i nomi dei contenitori Docker e i rispettivi IP. Per i contenitori che hanno più di un IP, il comando li stamperà sulla stessa riga del loro nome.

docker ps -q | xargs -n 1 docker inspect --format '{{ .Name }} {{range .NetworkSettings.Networks}} {{.IPAddress}}{{end}}' | sed 's#^/##';

Come viene sviluppato Linux

In questo video la Linux Foundation spiega il processo di sviluppo del kernel Linux. Per prima cosa, ci viene spiegato che molti usano Linux, anche inconsapevolmente: difatti vengono venduti ogni giorno circa 850.000 cellulari che usano Linux come sistema operativo (Android vi dice qualcosa?), come se non bastasse ben 8 scambi commerciali su 10 sfruttano Linux, il 90% dei supercomputer del mondo usano Linux e la maggior parte dei colossi del web (google, facebook, twitter ed amazon) hanno Linux installato sui propri server.

Vi pare poco?

Xfce 4.10 – il mio DE

Altro che Gnome o KDE, Xfce funziona alla grande ed è più intuitivo e leggero degli altri desktop environment. Xfce è, in sintesi, una collezione di programmi che nella loro totalità forniscono un ambiente grafico molto ricco di funzionalità.

I seguenti programmi fanno parte del core di Xfce:

Gestore di finestre (xfwm4)
Gestisce il posizionamento delle finestre sullo schermo

Pannello (xfce4-panel)
Avviatori di programmi, pulsanti delle finestre, menu delle applicazioni, selettore degli spazi di lavoro e molto altro.

Gestore della scrivania (xfdesktop)
Imposta il colore o l’immagine di sfondo della scrivania, fornisce un menu delle applicazioni opzionale e le icone per le applicazioni minimizzate, per gli avviatori, per i dispositivi e per le cartelle.

Gestore di file (thunar)
Un moderno gestore di file per l’ambiente Unix/Linux, veloce e facile da usare.

Gestore della sessione (xfce4-session)
Ripristina la propria sessione all’avvio e permette di spegnere il computer da Xfce.

Impostazioni del sistema (xfce4-settings)
Sistema di configurazione per controllare vari aspetti dell’ambiente grafico quali l’aspetto e le impostazioni di schermo, tastiera e mouse.

Trova applicazioni (xfce4-appfinder)
Mostra le applicazioni installate nel proprio sistema suddividendole per categoria in modo da poterle facilmente trovare e avviare

Demone delle impostazioni (xfconf)
Sistema di immagazzinamento della configurazione basato su D-Bus.

Un ambiente desktop pulito, veloce, essenziale e stabile.

xfce4-10