L'anno del Linux desktop.

L'anno del Linux desktop.

Quest’anno, sapevatelo, e’ l’anno del linux desktop. Ed e’ una bella notizia, tantevvero che ogni anno lo e’: non ci si fa mancare nulla. E vivere nell’anno del linux desktop e’ fantastico e unico, tantevvero che tra i miei colleghi siamo due o tre ad usare linux , e gli altri sono regolarmente in dominio col loro windows. Ovvero, non e’ mai l’anno del desktop Linux.


Il perche’ l’uso di Linux come OS da lavoro sui personal computer sia sempre stato marginale, e lo sara’ sempre, e’ dovuto principalmente all’ottusita’ e all’incompetenza di coloro che fanno, e che discutono , del Linux desktop.

Per prima cosa, escluderei a priori tutti quei signori che non potendo possedere un SUV per misurarsi l’uccello utilizzano una discussione che vede opporsi l’editor “vi” e l’editor “emacs”, due programmi che erano gia’ vecchi quando io ero giovane. 

Certo, avere la “filosofia unix” e avere buoni , robusti, testatissimi programmi a riga di comando che si compongono tra loro e’ bello: solo che, oltre alla diatriba tra vi ed emacs, questa megalorcheomachia non produce nulla di utile. E potrebbe (ma lo spiego dopo).

Il problema del “desktop” di Linux e’ che per tradizione viene considerato l’ambiente grafico, ovvero si pensa che la grande conquista sia di avere un ambiente grafico soddisfacente. Questo viene da due cose: la prima e’ una religione che vede APple come modello assoluto, la seconda e’ che in passato solo far partire xwindows era un’impresa, e il resto lo passavate a configurarvi il window manager. 

Ma il problema e’ che sul pianeta Terra la parola “computer desktop” invece significa una cosa diversa. 

La parola “Desktop” indica un insieme di servizi di office automation ai quali potete accedere. Office automation e’ tutto cio’ che migliora la vostra produttivita’ in un ambiente lavorativo integrato.

Significa che a me non frega un cazzo se Gnome ha un’interfaccia piu’ pulita, me ne frega molto di piu’ di quanto bene mi consenta di trasferire un file da me al mio collega.

Prima che una fila di storditi si affanni a dirmi “puoi usare questo e quello, apri il terminale e fai cosi’ e cosa’”, sono 27 anni che uso solo linux per lavoro. Lo so. C’ero quando queste cose sono state inventate. Abbiamo spedito pacchi di pasta in Australia per ringraziare i programmatori che facevano Samba. Lo so.

Ma il problema e’ che quando un utente windows vuole farlo, non deve fare questo e quello per spostare il file. Deve solo spostare il file.

In soldoni, cioe’, il motivo per cui il desktop di linux non si diffonde e’ che i cialtroni che fanno Gnome e Kde, ma anche gli altri ambienti, non si sono ancora accorti del concetto di office automation. 

Solo per fare quello che fa un computer windows al “logon” dentro il dominio, io devo installare 9 software , tutti abbastanza laboriosi da configurare. E ancora ho appena scalfito l’insieme di feature del dominio di Microsoft. 

Adesso potete parlarmi di radius e di LDAP e di tutto quanto per giorni, ma attualmente, su questo argomento Microsoft e’ avanti anni luce. O meglio: voi avete voluto rimanere indietro, perche’ eravate troppo impegnati a misurarvi l’uccello discutendo di vi contro emacs. 

Sempre alla voce “office automation” , sinora nel mondo linux non ho visto nulla di paragonabile a Microsoft Exchange. Non solo per “la posta”: se aveste mai letto le sue feature, come si integra col dominio e con il vosto OS, e con sharepoint, e con Teams, e con il messenger, e con Office… anche questo e’ insuperato, e non solo: diciamo pure che non esiste nulla di comparabile. 

Si, certo, mi racconterete del vostro ufficio di 7 persone illuminate che usano solo Linux con LDAP e SMTP, e gli va bene cosi’. Ripetetelo per 10.000 client senza una squadra di sistemisi da 3000, e ne parliamo. Perche’ il punto e’ che si’, magari potete fare le stesse cose su linux, ma avete bisogno di una enorme quantita’ di lavoro sistemistico, che invece arriva gia’ fatto nel desktop di windows.

Il punto da capire e’ che non esiste il “desktop” inteso come rettangolo di pixel che vedete sullo schermo. Esiste uno strato di servizi di office automation cui la persona accede guardandoli su un monitor, rappresentati graficamente.

Non esiste nulla di simile per linux: il linux desktop e’ semplicemente un rettangolo di pixel che decora le finestre e consente di configurare il singolo computer: su come esso interagira’ con l’ambiente lavorativo, si vede poco e niente.

Il desktop di linux semplicemente non esiste. Esiste solo se ridefiniamo il termine “desktop” come un rettangolo di pixel, la decorazione delle finestre, e le icone. Ma sono almeno 20 anni che le cose non stanno piu’ cosi’.


Non voglio mettermi a criticare piu’ di tanto la sottile cialtroneria hipster di quelli che fanno Gnome o KDE. Se vogliono continuare a discutere di icone e bottoncini, facciano pure. Dopotutto, alcuni trovano interessante capire se sia meglio tenere l’uccello a destra o a sinistra. Chissenefrega dei nuovi widget di KDE?

Il vero problema sono gli elementi da sbarco che vorrebbero avere la mia eta’ mentre io vorrei avere la loro (ma solo l’eta’) e credono di sembrare piu’ simili ad un esperto se passano il tempo a parlare di righe di comando in etrusco, opzioni occulte di comandi sconosciuti, che ormai trovate solo col comando “apropos” del Necronomicon, e ovviamente di vi contro emacs.

L’idea che la filosofia di Unix sia di avere programmi piccoli, robusti, testati e semplici che si interfacciano tra loro e’ un’idea che approvo. Io stesso uso Linux come desktop al lavoro ormai da una ventina di anni, anche a costo di scalare al mio manager per avere un permesso quando le regole impongono windows. 

Ma il problema e’ che, se davvero ci credeste , adesso linux avrebbe il suo equivalente del dominio e il suo equivalente di Exchange, e tutta l’integrazione del caso. 

Cosa che non e’.


Andiamo al punto di prima. Perche’ non esistono gli equivalenti di questi programmi nel mondo di Linux? La risposta sara’ che non e’ possibile , o e’ radicalmente difficile, per un gruppo di volontari scrivere e manutenere una codebase come quella che serve per fare Office, Exchange, il domain controller, Azure, eccetera.

Verissimo.

Ma non del tutto. Perche’ Linux arriva con quasi ~80.000 programmi che fanno davvero di tutto. E se i coglioni che passano il tempo a misurarsi l’uccello discutendo di vi contro emacs non fossero i pirla che sono, avrebbero notato che una buona distribuzione di linux aveva gia’ tutto se si parla di riga di comando, e mancano solo le interfacce.

Siccome sviluppare l’interfaccia grafica a qualcosa e’ MOLTO piu’ economico che sviluppare la business logic, il risultato e’ che se questi idioti , anziche’ discettare di righe di comando e misurare chi scrive la riga piu’ lunga, avessero scritto interfacce grafiche agli stessi comandi, oggi avrebbero MOLTA piu’ office automation di Windows.


Prendiamo l’esempio di scrivere un client di posta elettronica. E’ un lavoro tutto sommato semplice, perche’ si tratta di scrivere SOLO l’interfaccia. Non dovete scrivere di certo la business logic, che e’ gia’ scritta: esistono comandi come “fetchmail” e “sendmail” che lo fanno. La vostra interfaccia grafica deve solo chiamare questi comandi. E non vi serve nemmeno disegnare il database che contiene i messaggi, perche’ avete gia’ il formato Maildir.

Si tratta, cioe’, di seguire davvero la filosofia di Unix e di usare quei famosi programmini robusti, stabili, piccoli e semplici che si combinano assieme. 

Non vi serve sviluppare “thunderbird” per intero. Vi serve solo l’interfaccia grafica, e far invocare in background alcuni degli ~80.000 piccoli programmini disponibili. C’e’ gia’ tutto.

Allo stesso modo, scrivere un word processor non e’ complicato perche’ non dovete gia’ scrivere tutto: Linux arriva con LATeX, e quindi dovete solo scrivere un’interfaccia grafica che crei documenti LAteX. Lo fa un programma che si chiama LyX (www.lyx.org).

Allo stesso modo, scrivere un programma di spreadsheet non e’ complicato come con windows, perche’ Linux arriva con programmi come R, come Octave, per cui si tratta di visualizzare tabelle di testo uscite da questi programmi. E anche volendo fare grafici, potete sempre chiamare gnuplot, che e’ gia’ pronto e stabile e collaudato.

Perche’ e’ importante dirlo?

Perche’ Microsoft puo’ scrivere e mantenere 500 Milioni di Linee di Codice senza problemi, quando fa Office. Ma voi poveri sfigati che fate OpenOffice/LibreOffice non ci tirate le cuoia.

Il mondo Linux non e’ riuscito a sviluppare una sua office automation perche’ chiunque si appresti a farlo dimentica completamente il patrimonio di buon codice a riga di comando che esiste, e si rimette a fare tutto da zero anziche’ dotare l’esistente di un’interfaccia grafica.

E di questo sono particolarmente COLPEVOLI tutti quei coglioni narcisisti che passano il tempo a misurarsi il cazzo discutendo di “vi contro emacs” e di come scrivere una riga di comando piu’ lunga, anziche’ utilizzare questa conoscenza della CLI per sviluppare un’interfaccia grafica.

Non c’e’ bisogno di pratiche commerciali scorrette per battervi: siete cosi’ stupidi che ve lo troncate in culo da soli.


E cosi’ linux arranca. thunderbird non ha alcun bisogno di implementare la parte di email, perche’ c’e’ gia’, si chiama fetchmail. E per inviare, basterebbe sendmail con la riga di comando apposita. E per salvare, esiste gia’ il formato Maildir. 

Thunderbird potrebbe essere una mera interfaccia grafica a comandi esistenti: il codice sarebbe piu’ semplice, e probabilmente funzionerebbe anche meglio. Idem per Evolution, il tentativo di reinventare Outlook: non riuscirete MAI a competere con microsoft cosi’. 

Quando si hanno cose come rsync, non c’e’ bisogno di sviluppare cose assurde per fare quello che fa dropbox coi file. Dovevate solo sviluppare un’interfaccia simile.

E se andiamo nel mondo dei browser, l’errore e’ ancora piu’ catastrofico. Alla Mozilla corporation sono cosi’ intenti a misurarsi il pisello usando Rust che non si sono accorti di una cosa: usando tools come YACC, BISON, LEXX e co, e’ possibile e semplice scrivere un compilatore di html+css. E anche un compilatore di javascript non e’ complicatissimo. Vedere la Mozilla foundation che perde solo perche’ ha scelto di combattere Google sul suo stesso terreno e’ triste. 


I programmatori opensource negli ultimi 20 anni hanno voluto sfidare microsoft sul suo terreno, quello di scrivere da zero applicativi immensi. Ovviamente hanno perso. Potete parlarmi quanto volete di Radius, no-domain e di LDAP, ma alla fine, niente compete piu’ con un controllore di dominio microsoft. E questo considerando la possibilita’ di scrivere sottosistemi di ssh, e’ incredibile: sarebbe possibile fare quello che fa un dominio microsoft se solo si scrivesse un sottosistema di ssh che consente ad un controller di dominio di prendere cambiare alcune cose di linux.

Ma no. Chi fa questo genere di software preferira’ cominciare daccapo, partendo da zero, senza avere la stessa potenza di fuoco. E senza produrre gli stessi benefici. 

In generale sarebbe possibile produrre sistemi enormemente complessi dotando di un’interfaccia grafica cose che esistono gia’: giusto ieri ho sentito un tipo dire “ma con Virtual Machine Manager, virsh e KVM, chi ha bisogno di VirtualBox?”. Non lo so, chi ne ha bisogno? Chi non ha ancora capito che Linux ha tutto, e quello che manca e’ la UI.


In breve:

Il linux desktop non esiste, al massimo esiste un rettangolo di pixel, piu’ o meno colorato e decorato, capace di causare competizioni su chi ce l’ha piu’ lungo usando GNOME o KDE. Il desktop in senso pratico, invece, e’ uno strato di servizi di office automation che su linux non esistono.

Al limite ne esistono delle “alternative”, che risultano piu’ povere di quelle su windows perche’ i pochi che hanno costruito l’alternativa hanno deciso di NON fare uso del patrimonio passato di programmi da cli, prendendo solo la piu’ leggera fatica di scrivere interfacce grafiche.

E il browser con cui state leggendo questa pagina potrebbe semplicemente essere l’interfaccia grafica ad un compilatore, cosa che vi farebbe risparmiare due giga di RAM per ogni tab.

Ma qualcuno non ha voluto. E come se non bastasse, adesso si spara le pose perche’ usa Rust. 

Se non vi piace che non esista il desktop di linux, potete dare la colpa ai seguenti personaggi:

  1. quei due che passano il tempo a discettare di vi contro emacs.
  2. Quelli di Gnome che anziche’ fare quattro versioni della stessa merda di ogni cosa, facendo un refactoring di tutto, anziche’ scrivere interfacce grafiche ai tanti potentissimi programmi come latex o gnuplot. 
  3. Quelli di KDE, che invece di misurarsi la distanza tra pisello e ombelico, rendendo configurabile ogni pelo della minchia dell’icona di mozilla, potevano scrivere un’interfaccia grafica per comandi come sss , e rendere semplice mettersi in dominio.
  4. Quelli di LibreOffice e Openoffice, che si sono messi a reinventare da zero delle cose che esistevano gia’, anziche’ concentrarsi sul dotare di una UI office-like  delle suite come Latex, GhostScript, R, Octave, GnuPlot, postgres, ed altri. 
  5. tutti quelli che passano la vita a riscriversi delle alternative al cloud, su un sistema cui mancava solo la UI da mettere sopra rsync (per i file) , fetchmail/sendmail (per la posta), e via cantando.
  6. tutti quelli che passano la vita a scrivere il browser e le sue engine, anziche’ un’interfaccia ad un compilatore.

insomma, a tutti quelli che non hanno ancora capito che il desktop non esiste come rettangolo di pixel decorati, ma come punto di accesso ad un insieme di servizi di office automation.

E quindi, che Linux non ha alcun desktop, motivo per cui nemmeno il 2023 sara’ mai l’ anno del linux desktop.

E questo succede proprio per la mentalita’ alla Stallmann dei puri e duri. Perche’ in realta’, un linux desktop di ENORME successo esiste.

Si chiama “Android”. 


Android e’ Linux? Cosi’ come GNU e’ Linux.

Android usa il kernel di linux. Il resto viene dal consorzio GNU, quindi dovreste dire GNU/Linux. Giusto.

Allo stesso modo, dovremmo dire Android/Linux quando ci riferiamo ad Android. Il Kernel e’ di linux, il resto lo mette Android.

Ma se Android/Linux e’ un desktop di successo e GNU/Linux no, forse dovreste chiedervi se per caso, dico per caso, l’atteggiamento Vogon del consorzio GNU non c’entri qualcosa.

E non a livello di comportamento. A livello di mentalita’.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *