martedì 30 agosto 2011

Da Mac OS X Lion a Ubuntu 11.04


confronto tra OS X Lion e Ubuntu 11.04

Da una parte abbiamo OS X che ha sempre riscosso pareri positivi sia sulla sua comodità d'uso che sul suo design elegante. Dall'altra abbiamo Unity, che e' un progetto nuovo e che ha suscitato polemiche e critiche da parte degli utenti di vecchia data di GNOME.
Personalmente utilizzo OS X dalla sua nascita, ho vissuto i vari cambiamenti che la sua interfaccia utente ha subito negli anni ed e' diventato un po il mio “ambiente naturale”.
La mia esperienza sui sistemi GNU/Linux ed in particolare su Ubuntu risale a pochi anni fa, forse per questo ho accolto Unity con meno scetticismo rispetto agli altri utenti più abituati al classico GNOME ( per classico si intende GNOME 2.x ).
Lo scopo di questo post non e' quello di stabilire quale interfaccia utente sia migliore, ma soltanto quello di introdurre i due sistemi e sottolinearne le differenze nelle funzionalità e nelle soluzioni adottate.

Menu delle applicazioni sulla barra superiore dello schermo
Con l'adozione di Unity, il menu delle applicazioni in primo piano, invece di essere visibile all'interno della finestra delle stesse, e' visualizzato nella barra superiore dello schermo. Su OS X il menu e' sempre stato sulla parte superiore dello schermo, quindi per chi viene dal Mac non cambia niente. Chi invece era abituato allo GNOME classico questa novità disorienta e a molti non piace.
Io penso che il vero problema e' che molte applicazioni non supportano Unity e quindi mantengono il menu all'interno della finestra. Questo crea confusione e disorienta l'utente. Altre applicazioni invece ( io ne conosco una soltanto, Xmind ) funzionano male e non visualizzano il menu! Questi problemi sono dovuti alla giovinezza di Unity e spero siano risolti presto.
il menu di LibreOffice sulla barra superiore dello schermo su OS X
Nautilus in primo piano con il suo menu sulla barra superiore dello schermo, LibreOffice in background con il menu nella finestra su Ubuntu. Che confusione...



Dock vs Launcher

Il Launcher di Unity e' molto simile al Dock di OS X, una comoda barra delle applicazioni che, non solo permette di lanciare i programmi con un solo click sulla loro icona, ma ci aiuta a gestire le applicazioni in esecuzione. Su Mac la posizione di default del Dock e' nella parte bassa dello schermo, ma e' comunque possibile spostarlo anche sul lato sinistro o destro dello schermo. E' inoltre possibile personalizzare la grandezza delle icone e lo zoom delle stesse al passaggio del mouse. Su Unity il Launcher e' posto sul lato sinistro dello schermo e non e' possibile ne spostarlo ne personalizzare le sue dimensioni. Nonostante questi limiti, io lo trovo comodo da usare e non fa rimpiangere il Dock più di tanto. Il Dock, a differenza del Launcher, riduce automaticamente la dimensione delle icone man mano che se ne aggiungono di nuove per poterle visualizzare tutte sullo schermo. Il Launcher invece, non modifica le sue dimensioni, ma quando le icone vanno oltre i bordi dello schermo, le comprime tra di loro agli estremi come fossero pagine di un libro e permette di scorrerle con il mouse.

A sinistra Launcher di Unity, qui sopra Dock di OS X
Finder vs Nautilus
Il Finder di OS X e il Nautilus di Ubuntu sono i rispettivi file manager dei due sistemi, cioè le applicazioni che si occupano di gestire i file, le cartelle, ed i dischi. Il Finder in OS X Lion ha una grafica essenziale e non fa nulla che non faccia anche Nautilus. L'interfaccia di Nautilus ricorda di più un web browser e ne fornisce anche le stesse funzionalità, quali la possibilità di ricaricare la posizione corrente ( sul web diremmo ricaricare la pagina ), visualizzare la cronologia delle posizioni e la possibilità di aprire più schede nella stessa finestra. Quest'ultima la trovo di grande utilità ed e' una funzionalità che manca nel Finder. Una piccola nota a proposito della gestione dei file, su OS X non e' possibile utilizzare la funzione Taglia quando si vuole spostare un file da una posizione ad un'altra. Si e' obbligati a copiare, incollare e successivamente eliminare il file manualmente. All'interno della stessa partizione ovviamente basta fare un drag & drop ed il file viene spostato, ma tra partizioni diverse o dischi diversi il file verrà copiato nella destinazione e dovrà essere eliminato a mano. Credo sia un limite dovuto al filesystem HFS+, ma non ne sono sicuro. Se qualcuno ne conosce il motivo vi prego di comunicarlo lasciando un commento.

L'aspetto minimalista della finestra del Finder
La finestra di Nautilus con il suo look da web browser
Finestre e spazi di lavoro
La gestione delle finestre e' il punto forte di OS X, grazie all'uso di scorciatoie da tastiera, e' possibile visualizzare tutte le finestre aperte sullo schermo ed accedere velocemente alla finestra desiderata. I tasti utilizzati di default sono i seguenti:
  • Premendo il tasto F9 verranno visualizzate tutte le finestre aperte sullo schermo opportunamente ridimensionate ed allineate. Con lo stesso tasto o cliccando su una finestra si tornerà alla visione normale.
  • Premendo il tasto F10 invece verranno visualizzate tutte le finestre appartenenti all'applicazione in primo piano. Questa funzione e' molto utile per lavorare agevolmente con applicazioni che aprono molte finestre.
  • Premendo il tasto F11 tutte le finestre verranno spostate temporaneamente fuori dallo schermo per poter visualizzare la scrivania libera.
La comodità di questo sistema sta anche nel pieno supporto del drag & drop. Se, per esempio, voglio trascinare un elemento da una finestra e metterlo in un'altra posso tranquillamente usare queste scorciatoie.
Su Ubuntu, con Unity, si possono visualizzare le finestre aperte da un'applicazione cliccando una volta sull'icona della stessa nel Launcher. La mancanza di scorciatoie da tastiera rende la gestione delle finestre meno comoda rispetto ad OS X.
Un'ultima osservazione sulle finestre riguarda la funzione di riduzione ad icona. Su OS X la finestra può essere mandata nel Dock in forma di icona e successivamente ripristinata sullo schermo cliccandoci sopra. Su Unity la stessa funzione e' disponibile e funziona in modo simile. Quando si clicca sul tasto per ridurre ad icona la finestra, questa scomparirà dallo schermo e andrà nel Launcher, dal quale possiamo, con un click, ripristinarla. L'unica differenza e' che sul Launcher non apparirà un'icona della finestra, ma verrà accorpata con l'icona dell'applicazione a cui appartiene.
Per ultimo parliamo della gestione degli spazi di lavoro o anche chiamati scrivanie virtuali. Fin dai tempi di GNOME classico, c'e' sempre stata la comoda funzione di poter posizionare le finestre delle applicazioni aperte su diverse scrivanie, cosi' da non affollare troppo lo schermo. Su Unity e' stata creata un'apposita icona nel Launcher chiamata Selettore spazio di lavoro; con un click possiamo visualizzare i quattro spazi messi a disposizione e quindi spostare a nostro piacimento le finestre da uno spazio all'altro o selezionare lo spazio di lavoro sul quale vogliamo lavorare.
Ormai da qualche anno anche OS X supporta questa comoda funzione, in particolare su OS X Lion e' stata creata l'applicazione Mission Control, che si occupa di gestore gli spazi di lavoro. Con un click sulla sua icona posta nel Dock verranno visualizzati gli spazi di lavoro, ma a differenza della soluzione offerta da Unity, lo spazio di lavoro corrente verrà visualizzato in dimensioni di poco ridotte rispetto allo schermo, mentre in alto verranno visualizzate le miniature di tutti gli spazi di lavoro. Le operazioni possibili sono le stesse, spostare le finestre da uno spazio all'altro, selezionare lo spazio di lavoro su cui spostarsi. Unica differenza sta nel poter eliminare gli spazi di lavoro, fino ad averne uno solo, o a crearne di nuovi superando il limite di quattro.

Mission Control gestisce gli spazi di lavoro e le finestre in OS X
Gestione delle finestre utilizzando Launcher in Ubuntu
Scorciatoie da tastiera
Una fondamentale particolarità della tastiera di un Mac rispetto alla classica tastiera PC e' l'assenza del tasto identificato dal simbolo di Windows, sostituito con il tasto Command ( una volta era il tasto Mela con tanto di simbolo ). La differenza non e' solo nel nome e nella grafica del tasto fisico, ma soprattutto nella sua funzionalità in OS X. Il tasto Command infatti e' usato per la gran parte delle scorciatoie da tastiera e sostituisce di fatto l'uso del tasto Control su un PC. Per fare un esempio, le classiche operazioni copia, taglia ed incolla, che su Ubuntu faremmo con le sequenze di tasti Control + C, Control + X, Control + V, su OS X diventano Command + C, Command + X, Command + V.

Spotlight vs Dash

Spotlight in azione su OS X
Spotlight e' il potente strumento di ricerca utilizzato da OS X per trovare applicazioni, file e cartelle sul disco. L'icona di Spotlight, la classica lente della ricerca, e' posta nell'angolo in alto a destra dello schermo, nella barra dei menu. Cliccando sull'icona ( o meglio ancora da tastiera premendo Command + spazio ) comparirà un campo di ricerca dove potremmo inserire la parola chiave per trovare ciò che cerchiamo. Immediatamente compariranno i risultati sotto divisi per categorie ( applicazioni, file, cartelle, ecc... ). Spotlight si occupa dell'indicizzazione del disco man mano che creiamo o copiamo i nostri file. La ricerca da risultati quasi istantaneamente e spesso, per lanciare un'applicazione, e' più veloce digitare su Spotlight le prime 3 o 4 lettere del nome piuttosto che andarsela a cercare con il Finder.
Su Ubuntu, con Unity, abbiamo Dash, che di fatto sostituisce il vecchio menu di GNOME classico. L'icona di Ubuntu posta nell'angolo in alto a sinistra dello schermo, nella barra del menu, permette con un click di visualizzare Dash. Dash e' una sorta di finestra scura e semitrasparente con un campo di ricerca nella parte superiore. Da tastiera basta premere il tasto Windows ( o sulla tastiera del Mac il tasto Command ). Come con Spotlight, iniziando a digitare, compariranno immediatamente i risultati divisi per categorie. Volendo, invece di inserire una chiave di ricerca, e' possibile navigare tra le scorciatoie fino a trovare ciò che ci interessa. Questo metodo può essere utile quando cerchiamo una particolare applicazione ma non ne conosciamo il nome.
Non ho effettuato test comparativi sull'efficacia della ricerca o sulla velocità tra Spotlight e Dash, ma comunque mi sembrano entrambi efficaci.

Personalizzazione del sistema
Le preferenze di sistema su OS X sono accessibili cliccando sull'icona posta nel Dock oppure tramite il menu Mela, alla voce Preferenze di sistema. Il pannello delle preferenze raccoglie tutte le impostazioni per personalizzare il sistema, divise per categorie. Oltre alle impostazioni del sistema, nella parte bassa del pannello, verranno visualizzate anche le icone di altre eventuali applicazioni di terze parti installate. Anche su Ubuntu, con Unity, tutte le preferenze sono state raccolte in un'unica finestra e divise per gruppi. Il pannello delle impostazioni e' accessibile cliccando sul simbolo di accensione, posto nell'angolo in alto a destra, nella barra dei menu, alla voce Impostazioni di sistema. Da notare che in Ubuntu ci sono molte più possibilità di personalizzare l'aspetto delle finestre, dei pulsanti ed i relativi colori. In OS X al contrario non e' possibile modificare l'aspetto degli elementi dell'interfaccia grafica, la personalizzazione si riduce alla sola modifica di alcuni colori. Ci sono alcuni impostazioni nel pannello delle preferenze di Ubuntu che si riferiscono al GNOME classico e non a Unity, questo potrebbe creare confusione negli utenti alle prime armi. Ad esempio Menu principale si riferisce al menu di GNOME classico, ma non ha alcun effetto su Unity.

Preferenze di sistema di OS X
Impostazioni di sistema di Unity
Aggiornamento del sistema
Per controllare gli aggiornamenti di sistema su OS X bisogna selezionare nel menu Mela, la voce Aggiornamento software. Purtroppo OS X verificherà solo gli aggiornamenti del sistema operativo e delle applicazioni Apple, tutte le applicazioni di terze parti dovranno essere aggiornate a mano. E' anche vero che, nella maggior parte dei casi, tutte le applicazioni sono in grado di controllare gli aggiornamenti autonomamente. In Ubuntu c'è un'applicazione chiamata Gestore aggiornamenti che si occupa di controllare gli aggiornamenti del sistema e di tutte le applicazioni che abbiamo installato.
Se vi state chiedendo come funziona cercherò di spiegarlo brevemente.
Nei sistemi GNU/Linux, tutto il sistema e le varie applicazioni sono costituiti da vari pacchetti software. Questi pacchetti sono raccolti in archivi accessibili via internet ( chiamati repository ). Confrontando la versione dei pacchetti installati sul nostro sistema con i loro rispettivi repository su internet, il Gestore degli aggiornamenti e' in grado di aggiornare il sistema ed anche le applicazioni.
Quali applicazioni verranno aggiornate con questo sistema?
Il sistema operativo e' in possesso di un database di repository dei pacchetti installati, quindi tutte le applicazioni installate tramite il sistema dei repository verranno aggiornate automaticamente.

Aggiornamento software di OS X
Installazione applicazioni
Adesso vediamo come installare le applicazioni tramite i repository.
Oltre ai comandi da Terminale, Ubuntu mette a disposizione uno strumento molto semplice da utilizzare anche per gli utenti alle prime armi: Ubuntu Software Center.
Tramite questo programma e' possibile installare e disinstallare le applicazioni con pochi click del mouse. Per gestire invece i pacchetti ed aggiungere repository che non sono inclusi nel sistema ( o anche disabilitare o eliminare i repository ) e' possibile utilizzare il Gestore pacchetti.
Se siete alle prime armi tutto questo vi potrà sembrare un po macchinoso, ma con un po di pratica scoprirete che non e' poi cosi' complicato.
Su OS X l'installazione delle applicazioni e' generalmente molto semplice, spesso si effettua semplicemente trascinando l'applicazione nella cartella Applicazioni ed il gioco e' fatto. Anche OS X e' un sistema operativo di tipo Unix come Linux e sono molto più simili di quanto sembra, quindi come può essere cosi semplice installare le applicazioni in OS X rispetto a GNU/Linux?
In realtà i file delle applicazioni per OS X, quelli con estensione .app per la precisione, non sono semplici file ma sono cartelle. All'interno di una cartella .app sono raccolte le risorse e l'eseguibile vero e proprio dell'applicazione. Le risorse sono costituite dall'icona del programma, le diverse lingue disponibili e qualsiasi altro file utilizzato dal programma, quali immagini, suoni, ecc...
Il Finder ci mostra la “cartella” .app come un'applicazione, ma ci possiamo guardare dentro selezionando l'icona e cliccando con il tasto destro del mouse per visualizzare il menu contestuale. Selezionate mostra contenuto pacchetto e potrete navigare tra i file contenuti nell'applicazione.
Poco prima l'uscita di OS X Lion, e' stata introdotta una nuova applicazione per alcuni versi simile ad Ubuntu Software Center: Mac App Store. Con questo programma possiamo collegarci tramite internet al negozio virtuale di Apple ed acquistare ed installare le applicazioni, proprio come l'App Store di iOS o l'Android Market di Android. Inoltre Mac App Store tiene traccia delle applicazioni installate e ci segnala la presenza di eventuali aggiornamenti.

Sviluppo applicazioni
Un appassionato di programmazione non può limitarsi ad utilizzare un computer senza avere la possibilità di sviluppare le proprie applicazioni, vediamo quali strumenti abbiamo a disposizione su OS X e su Ubuntu. In OS X lo strumento di sviluppo di riferimento e' Xcode, un IDE integrato per sviluppare software per OS X e iOS. Il linguaggio utilizzato e' Objective C, un'estensione a oggetti del linguaggio C. Attualmente Xcode integra l'intero ambiente di sviluppo, incluso il costruttore di interfacce grafiche, precedentemente per la costruzione dell'interfaccia grafica c'era un programma separato, Interface Builder. Nota positiva e' che l'intero ambiente di sviluppo e' gratuito ed e' liberamente scaricabile dal Mac App Store.
Per quanto riguarda Ubuntu, io personalmente utilizzo Anjuta, un IDE appositamente creato per lo sviluppo di applicazioni scritte in C/C++ per GNOME, ed il costruttore di interfacce Glade. Ci sono molti altri IDE per lo sviluppo a disposizione, ma questo forse e' il più semplice per iniziare a sviluppare usando le librerie di GNOME GTK+.

Considerazioni finali
Ci sarebbe molto da scrivere sugli argomenti che ho trattato e non ho parlato di molte altre cose, forse non basterebbe un libro. Spero di essere comunque riuscito a darvi un'idea di base sulle peculiarità e sulle differenti funzionalità offerte da questi due sistemi operativi.