![[Photo of the Author]](../../common/images/Georges-Tarbouriech.jpg) 
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!