Cercando tra le pieghe

Cercando tra le pieghe di Internet si osservano differenti approcci alla ricerca di contatto tra mondo Linux e mondo MacOSX. Chiaramente tutti questi tentativi hanno come origine l’ambiente Linux, principalmente per opera della “community”.

Persino ambienti come Gnome hanno (negli ultimi tempi) introdotto configurazioni di base (vedi il pannello collocato in alto nello schermo per default come fosse la menubar), temi e elementi per i pannelli tali da rendere “approssimabile” il look-and-feel di MacOSX (essenzialmente per lo stile Aqua).

Ne sono dimostrazione i nostri desktop (desktop-andrea: Fc3+Gnome) e (desktop-giampa: Fc4+Gnome+gDesklets), che con qualche “imbroglio” su metacity e soprattutto “asportando” le vere icone da un vero MacOSX rendono bene l’idea.

Il fascino di Macintosh è probabilmente molto forte, evidentemente.

Ma esistono, a mio avviso due tendenze in questi approcci: una linux-centrico e una mac-centrico.

Il primo è il più naturale ma anche il più pericoloso; tenderebbe alla lunga a snaturare linux e a creare un clone open source di Mac che non ci sembra avere molto senso. Ben vengano le ottimizzazioni e le estensioni, ma non invadiamo i campi.

Il secondo è meno naturale e più “sportivo”, nel senso che sembra uno sfoggio di capacità dei programmatori nel riuscire nelle loro imprese: mi riferisco al tentativo di compilare su MacOSX l’implementazione open source di Foundation, il framework Objective-C alla base dell’interfaccia grafica del MacOSX.

Per quelli che sono digiuni di tutto quello che è dietro questa storia, a questo punto verrebbe naturale pensare a qualche epiteto più forte nei confronti di questa seconda tendenza; ma freniamoli subito! non si tratta dell’ennesimo progetto di reverse-engineering per “strappare” qualche applauso o “clonare” tecnologie altrimenti non ottenibili in open-source (e via con tutte le considerazioni di carattere commerciale). No. No. No.

L’idea è forse più nobile ed è nata probabilmente molto tempo fa (non ho voglia di fare l’archeologo informatico… lascio a qualcun altro il compito di creare una cronologia degli eventi). Come per il caso di altri sistemi scomparsi (chi come me ricorda il sistema Amiga sa di cosa parlo), la “community” ha avuto sempre il coraggio e la presunzione di rigenerare quei sistemi dalle ceneri come novelle fenici, cominciando da “poche” righe di codice magari malfunzionanti fino ad arrivare a qualcosa di quasi definitivo.

Come nelle migliori favole, c’era una volta un tale nominato Steve Jobs, il quale ebbe una delle sue idee, abbandonò Apple (la sua figlia ingrata) e fondò una società e un nuovo sistema operativo: NextStep. Egli, detto il “guru di Cupertino”, tornò presto al capezzale della figlia Apple, morente, e lo spazio/tempo per NextStep sembrò annullarsi. Ebbene  in quel momento che i nostalgici cominciarono il loro lavoro, culminato in oggi in un progetto GNU, esattamente GNUstep quale tentativo di rigenerare la fenice (lo so, esistono altri progetti!!!)

Ma quando uno  guru  guru! Il nostro Steve non aveva mai abbandonato quella sua idea: evidentemente l’ha continuata a coltivare di nascosto (come di nascosto ha dimostrato aver realizzato la recente migrazione verso il mondo Intel), fino a gettare le basi e poi rendere concreto il sistema MacOSX. Forzando la mano possiamo dire infatti che MacOSX  solo un nuovo nome commerciale per NextStep: le premesse sono le stesse (Unix BSD e una interfaccia grafica innovativa), sono solo passati degli anni, l’hardware (ad esempio le nuove schede grafiche)  migliorato assieme alle sue capacit, sono nate innumeravoli altre tecnologie (PDF, OpenGL, Unicode, XML). Fondi tutto, qualche “pizzico di fantasia” e ottieni un nuovo-non-nuovo: MacOSX.

NextStep è stato un sistema innovativo in tutti i sensi, e in quell’epoca è stato forse il primo se non l’unico ad avere alla base non un sistema di API, ma Frameworks, dato che era costruito con tecnologie OO su un linguaggio di programmazione (objective-C) anche questo maquillage di qualcosa d’altro. Dunque doveva valere la prima regola dell’esistesta dell’OO: riutilizzabilità del codice. Si poteva buttare tutto? Si poteva riscrivere tutto? La risposta è NO. Ed infatti l’ambiente di sviluppo GUI di MacOSX è basato sui frameworks NextStep (NS, per gli amici!), condito di un bel nuovo nome commerciale, Cocoa, giustificato dalla massiccia dose di derivazioni dalle classi originarie e l’introduzione di qualcuna nuova per poter stare al passo con i tempi.

Il gioco è tutto qui.

Sia Cocoa che GNUstep affondano le loro radici su Foundation il framework di NS: è naturale che Foundation in Cocoa è un qualcosa di maggiormente avanzato, così come è chiaro che le estensioni introdotte in GNUstep non vogliono nascondere la loro diversità rispetto al padre (NextStep), nominando con altro suffisso (GS) le nuove classi introdotte, che forse compenserebbe a lungo termine il gap con Cocoa, ma che divergono per nome e dunque non saranno assimilabili.

La visione del possibile diverge ora dal probabile, in quanto i due progetti, per finalità così diverse non potevano che trovare strade diverse: ma esiste un nocciolo fondante (guarda caso il nome) che li accomuna ancora, e qualche spiraglio per qualcosa da fare rimane ancora aperto.

Ma il da fare quale deve essere?

Difficile dirlo. Per il momento ci ripromettiamo di trovare soluzioni semplici e credibili per sviluppare la medesima applicazione in entrambi i mondi con il minor sforzo possibile, auspicando lo sforzo nullo! Come? Scovando in Internet, mettendo assieme, correggendo il minimo e creando l’indispensabile, nella migliore tradizione da “patchwork” nell’uso del materiale open-source …

Posicionamiento web SEO