original in en Georges Tarbouriech
en to it Toni Tiveron
Georges è da lungo tempo un utente Unix (sia esso commerciale o free).
Da estimatore di NeXT, si appassiona molto ai progetti di software libero
che abbiano l'aspetto e diano la sensazione di questo grandioso Sistema
Operativo.
Più di dieci anni or sono una incredibile macchina fu realizzata, ed un ancor più incredibile sistema operativo nacque. Fu chiamata NeXT e NeXTStep era il suo sistema operativo. Non si era mia visto nulla di simile precendentemente: era una macchina con un aspetto accattivante e dotatata di un display che dava una sensazione di ampio respiro. Il suo sistema operativo era basato su BSD 4.2, almeno al principio, ed in un secondo momento sulla versione 4.3 (sempre di BSD della Berkeley), pur riuscendo a mantenere un kernel Mach molto compatto. Con questa macchina fece la comparsa il primo sistema di sviluppo basato sul linguaggio ad oggetti. Questo strumento portava il nome di Interface Builder (Jean-Marie Hullot e Bertand Serlet, ancor oggi dobbiamo ringraziarvi per averci dato uno strumento così eccezionale). Dal punto di vista prettamente commerciale questa macchina fu quasi un fallimento. In un successivo momento NeXT decise di rendere disponibile questa struttura grafica per altri sistemi operativi: nacque così OpenStep. Da queste basi la comunità GNU diede vita ad un progetto grandioso: GNUstep (http://www.GNUstep.org). GNUstep, ovvero una implementazione free di OpenStep. Questo articolo vi vuole introdurre questo eccezionale progetto, anche se non lo si può considerare certamente ancora completato.
Per poter utilizzare GNUstep avrete bisogno di un altro prodotto eccezionale,
anche esso free: Window Maker. Si tratta di un sistema di controllo per X, che
usa lo stile di NeXT. Se ancora non lo conoscete potete dare un'occhiata a
questo articolo. La versione
disponile in questo momento è la 0.64.0.
Questo Window Manager è parte integrante del progetto GNUstep e lo potete
trovare nel sito http://www.windowmaker.org.
Lasciatemi anche dire che Window Maker può funzionare praticamente su quasi
tutte le piattaforme Unix, siano esse commerciali o non. Per quel che
concerne GNUstep le cose sono leggermente diverse. GNUstep funziona
correttamente sulla maggior parte delle distribuzioni Linux, su NetBSD,
FreeBSD, OpenBSD, in modo più o meno stabile a seconda del sistema operativo.
Per quel che riguarda il suo funzionamento su piattafrome Unix commerciali,
funziona correttamente su Solaris, Irix... in maniera più o meno stabile.
Dopo che il vostro schermo avrà la parvenza di NeXTStep, potrete approdare al
sito di GNUstep e trovare tutto quello che vi serve.
Che cosa vi può servire? Ovviamente, un compilatore C ad oggetti (vi ricordo
che si tratta di una struttura basata su un linguaggio ad oggetti). Ricorrendo
a gcc 2.8 (o più recente) il problema si risolve facilmente. Assai
raccomandate sono le librerie libobjc. A prescindere dai prerequisiti del
compilatore, avrete bisogno anche di alcuni compomenti di GNUstep: le librerie
di base, le librerie dell'interfaccia grafica ed il backend per X11 (xgps o
xdps)... e forse qualcos'altro.
Vi sono molti pacchetti che potete scaricare... dipende da voi: scorrete la
lista e fate la vostra scelta. Per esempio, potreste scegliere Gorm che altro
non è se non l'implementazione di Interface Builder (per il momento
disponibile per mezzo di CVS), e ovviamente, anche alcuni esempi di
applicativi.
Dovrete semplicemente compilare quello che avete scaricato! Scherzi a parte,
dovrete leggere attentamente tutti i file README ed INSTALL. Vi raccomando
anche di leggere attentamente gli HOWTO di GNUstep.
Dopo aver compilato, la maggior parte del lavoro riguarda l'ambiente di lavoro
ed i servizi da avviare all'avvio del sistema (il cuore di GNUstep per esempio,
che ha come nome gdnc).
Come precedentemente menzionato, potrete scegliere tra due differenti backend;
quello X e quello che ricorre a dps, che altro non è che una libera
implementazione di Display PostScript (Nota del traduttore: per chi non lo
sapesse un'altra delle particolarità di NeXT era quella di avere un Display
PostScript). Quest'ultima vi grantisce risultati migliori, anche se non è
evoluta quanto la soluzione basata su X.
A seconda del vostro sistema operativo, dovrete definire e verificare path di
ricerca e variabili di ambiente.
Come minimo dovrete definire la variabile GNUSTEP_SYSTEM_ROOT ed i path che
permettando di accedere agli script o ai programmi necessari per il
funzionamento.
Una volta completata questa parte, potrete prendere conoscenza con GNUstep.
Ci sono moltissimi esempi disponibili su sito di GNUstep, basta semplicemente
cercare o nella sezione degli applicativi utente (User Apps) o nella
sezione download. Questi sono lo strumento migliore per prendere conoscenza
con GNUstep se non siete pratici o di NeXTStep o di OpenStep. La maggior parte
di essi sono esempi completamente funzionanti e vi permettono di
comprendere la filosofia di base del sistema nel suo complesso. Se vorrete
dare un'occhiata al codice sorgente imparerete molto sul linguaggio ad oggetti
C. Per coloro che già conoscono C, imparare il C orientato ad oggetti è
un'operazione abbastanza semplice, ed in ogni caso è assai più semplice di quanto
non sia imparare il C++ (o meglio, questa è la mia esperienza).
Tra tutti questi esempi, uno molto interessante è il pannello di controllo che
sovraintende ai caratteri. Sembra veramente l'originale. Ah... a proposito,
durante questo articolo io vi sto mostrando sia delle immagini prese da
NeXTStep sia da GNUstep, a voi l'arduo compito di farne un raffronto. Eccovi
il primo esempio-comparazione: lo strumento che permette la scelta dei
caratteri su GNUstep e su NeXTStep.
Un altro esempio degno di nota è l'applicazione Edit. Non è completamente
funzionante ma si tratta in ogni caso di un ottimo lavoro, molto simile all'
originale.
Uno degli esempi più interessanti dal punto di vista tecnico è sicuramente
GSTest. L'utilizzo di GSTest vi permetterà di comprendere tutto riguardo le
finestre, i bottoni, le barre di scorrimento,... È uno strumento monoblocco
completamente funzionante! Osservare con cura il codice sorgente è meglio che
non imparare da un libro.
Ovviamente questo non vuole dire che gli altri esempi non siano di alcun
interesse: ne hanno anche loro!
Semplicemente, vorrei dire che, Nicola Pero, l'autore di svariati applicativi
ha svolto un lavoro davvero eccellente.
Un altro grandioso applicativo creato da Nocola è Finger. Si tratta di uno
strumento dotato di interfaccia grafica che svolge molte funzioni: finger (lo
avreste mai detto??), ping, traceroute. Eccove un'immagine:
Si potrebbero citare moltissimi altri applicativi, ma lascerò al lettore il
piacere di scoprirli.
Una delle principali rivoluzioni che ci ha portato NeXTStep fu Interface
Builder. Come il nome stesso suggerisce (Nota del traduttore: Interface Builder letteralmente vuol
dire Costruttore di Interfaccie), si tratta di uno strumento per creare
l'interfaccia grafica delle vostre applicazioni. Che strumento eccezionale! E vi
ricordo che si tratta di un qualcosa nato alla fine degli anni 80: oserei dire
incredibile!
Se vi chiedete che abbia di rivoluzionario eccovi la risposta. Esso vi
permette di creare una finestra con tutti gli ammenicoli necessari in meno di 5
minuti! Mi spiego: una finestra con i relativi menu, i pulsanti, i cursori, il
tutto creato semplicemente trascinando degli ogetti predefiniti nella nostra
finestra in costruzione.
A questo punto era possibile collegare a questi oggetti
applicati alla nostra finestra altre finestre, dei menu o quello che più ci
piaceva. Veniva quindi generata una porzione di codice che dovevamo completare.
Ovviamente tutti questi oggetti potevano esser riutilizzati a piacimento.
Qualcosa di fantascientifico per quel tempo!
Da quella prima idea moltissimi produttori di software hanno cercato di creare
un prodotto simile: nella mia modesta opinione, nessuno di loro ha mai
raggiunto il livello dell'originale.
Ed ora possiamo pure avere a nostra disposizione uno strumento di tal guisa!
Il suo nome è Gorm (che è l'acronimo per Graphics Object
Relationship Modeler, generatore di relazioni tra oggetti) il cui autore è Richard
Frith-Macdonald.
Gorm è disponibile solo sotto forma di sorgente distribuito via CVS dal sito
web di GNUstep. La versione, ora che sto scrivendo questo articolo, è la 0.1 e
sebbene essa sia già funzionante manca ancora di moltissime funzionalità. Per
scoprire quello che era l'aspetto e la fruibilità di Interface Builder, Gorm è
forse il miglior strumento.
Eccovi un semplice (e forse stupido) esempio. Ancora una volta raffrontato
direttamente con NeXTStep.
Come ho detto poc'anzi questo strumento ed il suo capostipite, Interface
Builder, vengono usati per creare l'interfaccia del nostro applicativo.
Ovviamente questo non è sufficiente per avere un applicativo completamente
funzionante. Sarete voi a dover, poi, completare il codice prodotto e gestire
le varie sezioni di codice come si fa normalmente per qualsiasi progetto. Come
ultimo e finale passo dovrete compilare il vostro applicativo.
Ed eccoci ad un secondo eccezionale strumento, noto nell'ambiente NeXTStep
come Project Builder e ProjectCenter in quello GNUstep. ProjectCenter è
scaturito dal lavoro di Philippe C. D. Robert, e l'attuale versione è la 0.2.
Anche in questo caso si tratta di un applicativo funzionante a dispetto della
sua versione. Potete gestire i vostri progetti come fareste in Project Builder
sotto NeXTStep. Purtroppo ancora molto lavoro deve esser fatto anche su questo
strumento, ma il download ne vale sicuramente la pena.
Eccovi l'aspetto di ProjectCenter e di suo "padre".
Utilizzare questi strumenti è assai semplice se avete dimestichezza o con
NeXTStep o con OpenStep. Se non li avete mai utilizzati, dovrete far vostra la
filosofia che li governa. Moltissima documentazione è disponibile e vi
raccomando caldamente di leggerla attentamente (per non dire che sia vitale
leggerla nel suo complesso). Ma una volta che ne avrete assimilato la
filosofia... non potrete più farne a meno! Io vi ho avvertito.
Dobbiamo anche citare GWorkspace e GSbench. Anche GNU 3DKit è una componente
software eccezionale. Si tratta di una API costruita per funzionare con le
OpenGL. Lo potete trovare presso http://www.nice.ch/~phip/softcorner.html
assieme ad svariati applicativi.
Gli strumenti che vi ho citato sono concepiti per poter utilizzare gli
applicativi OpenStep in ambiente GNUstep. In vero essi permettono molto di più,
offrendo la possibilità di poter eseguire il porting anche di applicativi
nati per MacOS X. Questo è il vero succo del discorso: null'altro!
Prima di tutto esiste uno strumento, noto come OpenStep2GNUConverter, che vi
permette di convertire un progetto realizzato con Project Builder in un
Makefile di GNUstep. Cioè sarete in grado, per esempio, di compilare sulla
vostra macchina Linux un progetto nato per OpenStep.
In vero per compilare questi progetti avrete bisogno anche di uno strumento
noto come nfmake.
Uno strumento, che ha per nome nib2gmodel, vi permette di convertire un file
nib (prodotto da Interface Builder) nel suo diretto corrispondente nell'
ambiente GNUstep, ovvero in un modello gmodel.
Per ultimo, ma non meno importante, potete utilizzare gstep-db, una libreria
specifica per l'interfacciamento ai database di Oracle e di altri produttori.
NeXTStep ed OpenStep erano soliti fornire queste interfaccie per Sybase e
Oracle. Si trattava di interfaccie necessarie per poter effettuare delle query
dall'interno di questi ambienti. GNUstep vi offre gli stressi strumenti
gratuitamente (in ambiente NeXTStep ed OpenStep dovevate acquistare costosi
kit di sviluppo, ma vi vieniva dato a corredo anche l'Enterprise Object
Foundation - che contiene un'infinità di esempi).
Ovviamente tutti questi strumenti potete scaricarli dal sito di GNUstep.
Sfortunatamente non sono stato in gradi di provare tutti questi applicativi,
dato che mi trovo per le mani "solo" una vecchia NeXT Station e sono
(tremendamente) impaziente di vedere MacOS X al lavoro. Ma, dato credo ai
prodotti GNU da 15 anni e non ho la minima idea di cambiare opinione mi sento
di dire che questi, certamente, funzioneranno a dovere. In ogni caso nel giro
di pochi mesi potrò provarli in prima persona.
Se siete interessati a sviluppare in questi ambienti, potrete trovare
moltissima documentazione in merito, come d'altronde vi ho già detto. La sua
leggendaria fruibilità e semplicità d'utilizzo non sono false, ma dovrete
apprendere i fondamenti con cui essi funzionano.
Dal sito di GNUstep potete trovare molti link utili a tale scopo. Tuttavia
alcuni di essi meritano una particolare attenzione.
Visitate http://www.gnustep.org/resources/documentation.html
che vi fornirà la documentazione generale inerente GNUstep. Vi troverete un
libro sul linguaggio C orientato ad oggetti, istruzioni di installazione, FAQ
e molto altro.
Esiste anche una documentazione inerente le librerie di GNUstep.
Troverete perfino dei tutorial. Vi raccomando di leggere quello redatto da
Nicola.
Lo potete trovare al seguente indirizzo http://www.gnustep.it/nicola/Tutorials.
Un'altra sezione interessante da visitare è quella delle risorse: vi troverete
un'infinità di link, articoli, siti inerenti lo sviluppo,...
Il sito http://www.gnustep.net/ presenta anche esso
molti aspetti interessanti.
Insomma, potrete trovare tutto quello che vi servirà per iniziare a lavorare e
sviluppare con GNUstep.
La stravagante storia di NeXT continua... e questa volta speriamo con successo,
con il nome di MacOS X. È un oggetto eccezionale! Che ne pensate di un
Sistema Operativo che rinasce a nuova vita dopo 10 anni? Direi che al tempo
fù alquanto all'avanguardia! Non lo pensate anche voi?
Che cosa coporta tutto questo per noi? Bhé probabilmente una enormità di
applicazioni esistenti che potranno essere facilmente ricompilate, e, non
dimentichiamoci, che sia MacOS X e NeXTStep sono entrambi due sistemi
operativi bastati su Unix. Il che implica una infinita quantità di possibili
applicazioni disponibili, come è per tutte le verisioni free di Unix. Di
conseguenza, GNUstep sarà l'infrastruttura di cui avremo bisogno...
Lasciatemi dire che si tratta di un sogno (o un qualcosa di simile): almeno
saremo in grado di scegliere il software che vogliamo. Purtroppo tutto questo
ha sia degli aspetti positivi che negativi.
Permettemi di ricorre ad un esempio: oggigiorno non abbiamo un'ampia scelta
per quel che riguarda i navigatori ipertestuali per il web. La scelta ricade
tra Netscrape (ed i suoi diretti derivati) o Exploder; in ogni caso è come se
si trattasse di due depositi di gas esplosivo con vicino una scatola di cerini,
di problemi di sicurezza, e molte altre cose. MacOS X vi darà OmniWeb: si
tratta di un navigatore eccezionale. Utilizzarlo sotto NeXTStep è una goduria,
anche se in tal caso si tratta di una versione piuttosto datata.
È un tipo di navigatore che possiamo solo sognarci oggigiorno, quando
utlizziamo Unix o sistemi M$. Gli unici veri navigatori web "leggeri" che
possiamo trovare sono presenti su cosidetti sistemi operativi alternativi:
NetPositive in BeOS o AWeb su AmigaOS. Certo, Opera sembra assai interessante,
ma fino ad oggi non mi ha ancora convinto pienamente (si tratta comunque di
una mia opinione prettamente personale). Quello che voglio dire, alla fine, è
che sia MacOS X che GNUstep ci forniranno "nuovi" strumenti , e speriamo che
essi saranno migliori di quelli che utilizziamo oggigiorno. Abbiamo avuto
grandissimi benefici con questo genere di strumenti ben dieci anni or sono...
grazie a NEXTStep.
Certo, questo è altrettanto vero per moltissimi tipi di software, non solo per
navigatori web.
Se andate a vistare http://www.omnigroup.com/ potrete vedere
una serie di nuovi strumenti.
La principale differenza tra GNUstep e MacOS X sta nel fatto che X Window è
utilizzato sotto GNUstep, mentre no lo è in MacOS X.
Questo fu anche una delle lamentele inerenti NeXTStep. Per questo motivo
GNUstep potrebbe divenire così importante: permetterà di utilizzare le
applicazioni nate per NeXTStep (e MacOS X) in un ambiente X Window. Questo,
forse, è uno degli aspetti salienti di questo progetto: questi ragazzi stanno
facendo un lavoro eccezionale.
Dobbiamo temere l'arrivo di Exploder e di altro merd... software per MacOS X
dal loro creatore. La cosa mi fa tremare! A maggior ragione se queste
applicazioni saranno native per MacOS X ... allora dovremo attenderci il
peggio! Questa potrebbe essere un'insidiosa breccia da parte della casa di
Redmond nel mondo libero di Unix. Ovviamente in questo caso non voglio
intedere libero come gratuito, anche perchè stiamo parlando di M$, ma...
Comunque se volete dare un'occhiata a tutte le applicazioni disponibili in
fase di sviluppo per MacOS X, potete visitare http://www.apple.com/macosx/applications/.
Potremmo dire che comunque si tratta in ogni caso di una visione alquanto
pessimistica del tutto.
Tuttavia non dimentichiamoci che GNUstep è in particolar modo studiato per lo
sviluppo. Una volta che esso sarà maturato, sarete in grado di sviluppare
applicazioni in maniera semplice, come si può fare in NeXTStep. GNUstep è ben
di più di una semplice infrastruttura, potremmo dire che in vero si tratta più
di un grande IDE (acronimo per Integrated Development Environment, ovvero un
ambiente di sviluppo integrato). Il punto saliente sembra vertere sul fatto
che le applicazioni saranno facilmente portabili da un sistema all'altro,
verso MacOS X, per esempio.
Ah.. stavo quasi per dimenticare che Apple ha anche un versione open source,
nota come Darwin. Potrete trovare più informazioni in merito presso questo
sito: http://www.opensource.apple.com/.
Ovviamente GNUstep non è soltanto questo, ma le parti rimanenti sono ben oltre
lo scopo di questo articolo. Il mio fine era quello di invogliarvi a provare
questo eccezionale prodotto,e perchè no, a partecipare al suo sviluppo.
Uno dei piaceri che traggo dal software libero scaturisce da questo genere di
progetti, nati per cercare di porre rimedio ad errori commerciali. NeXTStep fu
per me una completa rivoluzione. Sono un fiero proprietario di una workstation
di ben 10 anni, e potete credermi se vi dico che non è per nulla coperta di
polvere: la uso quasi ognigiorno anche se è equippaggiata con un modesto 68040
a 25MHz. Fortunatamente (o sfortunatamente) molte persone sembra la pensino
alla mia stessa maniera. Voglio, qui, ringraziare le persone del progetto
GNUstep, di Window Maker per averci permesso di poter aver un software di tal
genere.
La cosa più incredibile di NEXTStep scaturisce dal fatto che molte software
house hanno cercato di "clonarlo" ed hanno avuto successo, proprio dove il
modello da cui si sono ispirati ha fallito. Ancora un volta dobbiamo citare il
dominio di Redmond: avete mai fatto caso a Windows95 ed a tutti i suoi gadget?
Provate a dare un'occhiata alle schermate di NeXTStep che vi ho poc'anzi fatto
mostrato. NeXTStep fece la sua comparsa negli USA nel 1987 ed in Europa all'
incirca nel 1990. Come il suo nome suggerisce, il prodotto di M$ è apparso
sulla scena ben 5 anni dopo. I piccoli fogli che transitano da una cartella
all'altra erano già stati inventati nei meandri si Seattle, e fecero la loro
comparsa nella versione 2.1 di NeXTStep. Era l'anno 1991.
Scuate, in vero, l'azienda di Redmond non copiò! Fecero ben di peggio:
"assunsero" i ragazzi di NeXT... suppongo per una considerevole quantità di
dollari. Non importa... non lo trovate poco sportivo?
Questo, tanto per sottolineare che NeXTStep non può lasciare nessuno
indifferente.
GNU è il punto di riferimento per
eccellenza per il software libero. Tutto il mondo deve moltissimo a GNU: non
c'è sistema operativo che non abbia tratto benifici. Il loro compilatore,
probabilmente, è il migliore che si possa trovare, indipendentemente dal
sistema operativo. Questo è altrettanto vero per moltissimi altri strumenti.
Pure i loro progetti, anche se non sempre, sono un qualcosa di eccezionale.
GNUstep, appunto, ne è un ottimo esempio. Ah...per dovere di cronaca NeXTStep
ha una cartella GNU...
Se anche voi, come me, non siete particolarmente entusiasti degli ambienti
desktop disponibili per Unix (sia esso commerciale o no) provatelo. Adorerete
GNUstep! Probabilmente non sarete mai più in grado di farne a meno!
Buon lavoro!
Viviamo in tempi eccezionali!