Created: 2021-12-25 sab 02:04
La prima versione pubblica di GNU Emacs (versione 13) fu rilasciata il 20 marzo del 1985 come il primo software del GNU Project, iniziativa fondata da Richard Stallman nel 1978.
A prima vista Emacs può essere descritto come un "text editor molto potente". Emacs infatti nasce per gestire contenuti testuali di ogni natura.
Emacs contiene al suo interno un interprete per il linguaggio elisp (emacs-lisp).
Codice elisp che calcola l' \(n\) esimo numero di Fibonacci.
\[1, \,\,1, \,\,2, \,\,3, \,\,5, \,\,8, \,\,13, \,\,21, \,\,34, \,\,55, \,\,89, \,\,144, \,\,\ldots\]
(defun fib (n)
(cond ((eq n 1) 1)
((eq n 2) 1)
(t
(+ (fib (- n 1))
(fib (- n 2))))))
\[\begin{split} F_1 &= F_2 = 1 \\ F_n &= F_{n-2} + F_{n-1}, \,\, n \geq 3 \\ \end{split}\]
È proprio l'abilità di eseguire codice elisp (linguaggio Turing-Completo) ciò che rende Emacs estremamente flessibile e potente.
Imparare (bene) Emacs significa principalmente capire come configurarlo in modo da ottenere un comportamento che si avvicini il più possibile a quello desiderato.
Per fare questo possiamo sia scrivere noi del codice elisp, che utilizzare del codice elisp scritto da altre persone e disponibile in archivi pubblici, come ad esempio l'archivio MELPA.
Per quanto Emacs sia un tool estremamente potente, la configurazione iniziale lascia molto a desiderare, sia in termini di estetica che di funzionalità.
Investendo abbastanza tempo ed impegno però è possibile trasformarlo in ciò che si vuole.
\[\longrightarrow\]
Andiamo adesso a vedere alcuni (pochi) use-case personali di utilizzo di Emacs.
Emacs offre le tipiche funzionalità di un terminal emulator tramite vari pacchetti (vterm, term-mode, shell-mode, eshell).
Tramite dired invece è possibile spostare, creare, modificare, eliminare e rinominare file e cartelle.
È anche possibile gestire le email tramite vari pacchetti (mu4e, gnus, notmuch).
Per chi fosse interessato a come configurare mu4e, è presente un video sul canale.
La flessibilità di Emacs offre svariate occasioni per supportare e facilitare le tipiche task svolte da un programmatore.
Il pacchetto magit, ad esempio, offre una comoda ed intuitiva interfaccia a git, il famoso software di versionamento distribuito.
Ogni linguaggio di programmazione poi ha la sua particolare modalità.
Con l'avvento di nuove tecnologie è possibile scrivere del nuovo codice elisp per lavorare con queste nuove tecnologie sempre all'interno di Emacs.
Tra tutte le funzionalità di emacs, org-mode (secondo me) è senza dubbio la migliore, in quanto esistono svariati use-cases in cui utilizzare file orgs.
I file scritti in org-mode sono semplici file di testo che vengono processati in modo dinamico da Emacs.
Personalmente ho una collezione di file orgs in cui scrivo di tutto, dalle cose tecniche alle cose non-tecniche.
Tutti i miei appunti dell'università sono scritti in org-mode.
Il mio blog è gestito interamente da un singlo file org.
Questa stessa presentazione è stata generata a partire da un file org.
Imparare Emacs non è facile, in quanto richiede tempo ed impegno. Detto questo, sono tante e varie le ragioni per cui, secondo me, vale la pena provare ad imparare Emacs.
In generale le potenzialità offerte da Emacs per aumentare la propria produttività sono tantissime, e sono tanti gli insegnamenti che è possibile estrarre dall'utilizzo di queste tecnologie.
Solo org-mode, una parte (molto importante) di Emacs, contiene al suo interno innumerevoli applicazioni, molte delle quali possono essere sviluppate solo con ingegno e creatività.
Dato che Emacs è un interpretere del linguaggio elisp, per imparare (bene) Emacs dobbiamo anche imparare la famiglia di linguaggi LISP, che molto spesso non viene trattata molto all'università, ma che presenta molte caratteristiche tremendamente affascinanti.
Più è difficile una determinata cosa, e più imparare quella cosa ci fa crescere, direttamente e indirettamente.
Sotto questo punto di vista, imparare Emacs apre la mente alle vere potenzialità offerte dal software, molte delle quali col passare degli anni stiamo perdendo di vista.
In ultima analisi, imparare Emacs è divertente, e apre un universo di possibilità ancora inesplorate.
Anche la possibilità di creare memes.