Il progetto GNU ha pubblicato Emacs 31.1, prima versione stabile della nuova serie 31 dello storico editor libero. A più di quarant'anni dall'inizio del suo sviluppo, Emacs continua così a evolversi con nuove funzionalità, modifiche all'interfaccia, miglioramenti alla gestione delle estensioni e numerosi interventi sotto la superficie.
Parlare di Emacs semplicemente come di un “editor di testo” è però riduttivo.
Grazie al linguaggio Emacs Lisp, praticamente ogni parte del programma può essere modificata o estesa. Nel corso dei decenni intorno a Emacs è quindi nato un enorme ecosistema che permette di utilizzarlo per programmare, scrivere documenti, leggere posta elettronica e feed, gestire progetti, utilizzare Git e organizzare attività personali.
Uno degli esempi più conosciuti è Org mode, attraverso il quale Emacs può trasformarsi in uno strumento per appunti, documentazione, pianificazione, gestione delle attività e pubblicazione di contenuti. Emacs 31.1 include Org 9.8.
La nuova versione cerca però di affrontare anche uno dei problemi storici del programma: la curva di apprendimento.
Emacs nasce in un'epoca molto diversa da quella delle moderne interfacce grafiche e alcune delle sue impostazioni tradizionali possono apparire poco intuitive a chi lo utilizza per la prima volta.
Con Emacs 31.1 arriva quindi newcomers-presets, un nuovo tema di personalizzazione pensato proprio per chi si avvicina al programma. Non sostituisce automaticamente il comportamento tradizionale per gli utenti esistenti, ma propone impostazioni alternative che possono rendere l'ambiente iniziale più familiare.
Un altro piccolo ma significativo cambiamento riguarda l'utilizzo nel terminale. xterm-mouse-mode viene ora attivato automaticamente nei terminali compatibili, consentendo di utilizzare direttamente il mouse per operazioni come clic e scorrimento. Chi preferisce il comportamento tradizionale può naturalmente disabilitarlo.
Potrà sembrare una modifica banale per un programma moderno, ma rappresenta bene la particolare sfida affrontata da Emacs: continuare a rispettare abitudini e configurazioni costruite dagli utenti nell'arco di decenni e, contemporaneamente, non trasformare questa continuità in una barriera per chi arriva oggi.
Interessante anche la nuova directory user-lisp/, pensata per semplificare la gestione delle estensioni Lisp personali. Emacs può occuparsi automaticamente della compilazione dei file e della preparazione degli autoload, facilitando l'organizzazione del codice con cui gli utenti personalizzano il proprio ambiente.
Migliora anche la gestione dei pacchetti. La nuova versione permette di esaminare le modifiche a un pacchetto prima di installarlo o aggiornarlo, offrendo quindi all'utente maggiori informazioni prima di modificare il proprio ambiente.
Altri cambiamenti riguardano i buffer utilizzati da grep e xref, che possono ora essere resi modificabili, il supporto ai child frame nei frame testuali e numerosi miglioramenti alle funzioni integrate e agli strumenti di sviluppo.
Sotto la superficie continua inoltre il lavoro di modernizzazione. Il vecchio sistema unexec, già deprecato da diverse versioni, è stato definitivamente eliminato, mentre il vecchio ctags fornito insieme a Emacs lascia spazio a Universal Ctags. Il supporto Unicode viene aggiornato a Unicode 17.0.
Ma forse la cosa più interessante di Emacs 31.1 non è una singola nuova funzione.
GNU Emacs iniziò il proprio sviluppo nel 1984 ed è uno dei programmi che meglio raccontano la storia stessa del movimento del Software Libero. Richard Stallman iniziò a svilupparlo prima ancora che esistessero Linux, il Web e perfino l'espressione “open source”. Oggi viene distribuito sotto GNU GPL e continua a essere sviluppato da una comunità internazionale.
In informatica quarant'anni rappresentano un periodo enorme. Intere piattaforme sono nate e scomparse, formati sono diventati obsoleti e programmi un tempo dominanti sono stati completamente abbandonati.
Emacs, invece, continua a cambiare.
La ragione non è soltanto tecnica. La disponibilità del codice e le libertà garantite dalla licenza hanno permesso a generazioni differenti di sviluppatori di studiarlo, modificarlo, mantenerlo e adattarlo a esigenze che i suoi primi autori non avrebbero potuto prevedere.
GNU Emacs 31.1 è quindi anche una piccola dimostrazione della longevità possibile del Software Libero: un programma non deve necessariamente morire quando cambia il mercato o scompare l'azienda che lo ha creato. Può continuare a vivere finché esiste una comunità che considera utile farlo evolvere.