![[Photo of the Author]](../../common/images/Georges-Tarbouriech.jpg) 
original in en Georges Tarbouriech
en to nl Christ Verschuuren
Georges is al lange tijd Unix gebruiker (commercieel en vrij gebruik). Als fan van NeXT, is hij verzot op projecten die het uiterlijk en de stijl van dit geweldige OS gebruiken.
Meer dan 10 jaar geleden werd een ongelofelijke machine met een nog ongelofelijker OS op de markt gebracht. Het heette NeXT en de naam van het OS was NeXTStep. Iets dergelijks hadden we nog nooit gezien; het was een goed ontworpen machine, met een adembenemend scherm. Het OS was aanvankelijk gebaseerd op BSD 4.2 en enige tijd later op 4.3, met een erg compacte mach kernel. Tesamen hiermee verscheen de eerste grafische en object georiënteerde ontwikkeltool : Interface Builder (Met dank aan Jean-Marie Hullot en Bertrand Serlet voor dit ongelofelijke hulpmiddel). Commercieel gezien was de machine geen succes. NeXT besloot toen het raamwerk over te zetten naar andere besturingssytemen, zoals Sun, bijvoorbeeld. Deze API werd OpenStep genoemd. Van daar af begon GNU een groot project, GNUstep, http://www.gnustep.org, om een vrij te gebruiken OpenStep implementatie te bouwen. Dit artikel wil deze enorme klus onder de aandacht brengen, hoewel het nog niet is afgerond.
 
Voor GNUstep, heb je nog ander gewelding vrij product nodig: Window 
Maker. Het is een window manager a la NeXT. Als je het nog niet kent, 
kun je 
hier een kijkje nemen. Als ik dit artikel schrijf is de laatste 
versie 0.64.0. 
Deze window manager is onderdeel van het GNUstep project en je kunt het
verkrijgen op http://www.windowmaker.org. 
En ik wil hieraan toevoegen dat Window Maker op bijna elke denkbaar Unix
platform draait, zowel commerciële als vrije versies. Voor zover 
het GNUstep betreft zijn er slechts minimale verschillen. Het draait op
de meeste Linux smaken, NetBSD, FreeBSD, OpenBSD, de stabiliteit hangt
wel af van het OS waarop je het draait. Voor wat betreft 
commerciële Unixes, draait het min of meer stabiel op Solaris,
Irix... . 
Als je scherm op NeXTStep lijkt, kun je naar de GNUstep web-site gaan om
alles wat je nodig hebt op te halen.  
En wat heb je dan allemaal nodig? Uiteraard een 
object-georiënteerde C compiler (weet je nog, het is een object 
georiënteerd raamwerk). gcc 2.8 en hoger is voldoende. libobjc 
wordt aanbevolgen. Naast de compileertools, heb je GNUstep zaken nodig :
dat wil zeggen de base library, op zijn minst, de gui library, de X11 
backend (xgps of xdps)... enzovoorts. Er is veel om te downloaden, wat 
allemaal is aan jou : gebruik de lijst om je keuze te maken. Je kunt bij
voorbeeld Gorm  krijgen, wat de implementatie van Interface Builder is 
(alleen als CVS), en natuurelijk de voorbeelden van gebruikers
programma's.
Je hoeft alleen te compileren wat je hebt gedownload! Echt, lees de 
README en de INSTALL documenten maar. Er is ook een GNUstep HOWTO, die
aanbevelingswaardig is. 
Na het compileren bestaat het resterende werk voornamelijk uit 
omgevingsvariabelen en instellen van op te starten programma's (de 
kernel bijvoorbeeld, genaamd gdnc). 
Zoals eerder vermeld zijn er twee verschillende backends : een is X en 
de andere is dps (Display PostScript free implementatie). Deze laatste 
geeft veel betere resultaten, maar is minder ver doorontwikkeld dan de 
X backend. 
Controleer de paden, naar de instellingen van je OS, als je de 
omgevingsvariabelen gaat aangeven. Tot slot moet je de 
GNUSTEP_SYSTEM_ROOT variabele en het pad naar de verschillende scripts 
en programma's aangeven. 
Als je hier mee klaar bent kun je met je GNUstep gaan 'spelen'.
Er zijn veel voorbeeldprogramma's beschikbaar op de GNUstep website, ga
naar de User apps sectie of naar de download sectie. Dit is de beste 
manier om bekend te worden met GNUstep als je geen kennis hebt van 
NeXTStep of OpenStep. De meeste zijn werkende voorbeelden en laten je 
kennis maken met de filosofie achter het raamwerk. Bestudering van de 
broncode leert je veel over Objective C. Voor iemand die bekend is met 
C, is Objective C eenvoudig te leren, en in ieder geval veel eenvoudiger
dan C++ (dat is tenminste mijn mening). 
Onder de voorbeelden bevindt zich een erg mooie, namelijk het font 
panel. Het ziet er echt uit als het origineel. Overigens in dit artikel 
nemen we schermafdrukken van het programma onder GNUstep en NeXTStep op,
zodat je ze kunt vergelijken. Hier is het eerste voorbeeld: het font 
panel onder GNUstep en onder NeXTStep. 
  
 
   
Een ander interessant voorbeeld is de Edit app. Het functioneert nog 
niet helemaal naar wens, maar het is een mooi stukje werk dat dichtbij 
het origineel komt. 
Een van de meest leerzame voorbeelden is GSTest. Draaien van GSTest laat
je alles begrijpen van vensters, knoppen, schuifbalken, etc... Het omvat
alles! De broncode van dit programma leert je meer dan een boek. 
Dat betekent uiteraard niet dat de andere voorbeelden niet van belang 
zouden zijn .... dat zijn ze wel! 
De schrijver van veel van deze apps, Nicola Pero, heeft goed werk 
verricht. 
Nog een goede applicatie van dezelfde Nicola, is Finger. Dat is een gui 
voor finger (zou je het hebben geraden?), ping en traceroute. Hieronder
is het te zien : 
   
Ik zou nog veel meer programma's kunnen noemen, maar ik wil de pret van 
het zoeken overlaten aan de lezer.
 Een echte revolutie van NeXTStep was Interface Builder. Zoals de 
naam al zegt, is het een hulpmiddel om een grafische interface (gui) te 
bouwen voor je applicatie. Maar, wat een hulpmiddel! Bedenk wel, dat het
aan het einde van de jaren 80 was: gewoonweg ongelofelijk!
En waarom was het zo'n revolutie : omdat je een venster kon bouwen in 
minder dan 5 minuten met alle toeters en bellen erop ! Dat wil zeggen,
en venster met een menu, met knoppen, met schuifbalken, enz, werd 
gemaakt door objecten vanuit een palet naar het venster te slepen. Van 
daaruit was het mogelijk om deze objecten te verbinden met andere 
vensters, menu's en wat al niet meer. Er werd een minimale broncode 
gegenereerd die je alleen hoefde aan te vullen. Vanzelfsprekend, konden
deze objecten als ze eenmaal waren aangemaakt, elders weer gebruikt 
worden. 
Onvoorstelbaar in die tijd!
Sindsdien hebben vele grote software ontwikkelaars geprobeerd hetzelfde 
te doen : naar mijn bescheiden mening hebben ze het niveau van het 
origineel nooit bereikt..
En nu kun je zo'n hulpmiddel helemaal gratis gebruiken! Het heet Gorm 
(GNUstep Graphics Object Relationship Modeler) en de auteur is Richard 
Frith-Macdonald.
Gorm is alleen beschikbaar als CVS op de GNUstep website. Ten tijde van
het schrijven van dit artikel is het versienummer nog maar 0.1, 
desalniettemin werkt het, zelfs nu er nog veel functionaliteit 
ontbreekt. Om de Interface Builder look en feel te ontdekken, is Gorm 
het juiste hulpmiddel. 
Hier is een erg eenvoudig (en simpel) voorbeeld, opnieuw met het 
equivalent uit NeXTStep. 
   
   
Zoals hiervoor reeds opgemerkt, worden dit hulpmiddel en zijn voorbeeld 
Interface Builder gebruikt om het grafische deel van een applicatie te 
maken. Uiteraard is dat nog niet genoeg om de applicatie te laten 
werken. Je zult de gegenereerde broncode moeten voltooien en de 
verschillende bronnen moeten managen zoals in elk applicatie project. 
Tot slot, zul je je werk moeten compileren. 
En dan hebben we hier het tweede belangrijke hulpmiddel, genaamd Project
Builder onder NeXTStep en ProjectCenter onder GNUstep. ProjectCenter is
het werk van Philippe C.D Robert en het versienummer is 0.2. Ook hier, 
dit hulpmiddel werkt ondanks het lage versienummer. Je kunt je project 
managen zoals je dat zou doen met Project Builder onder NeXTStep. 
Uiteraard moet er aan dit programma ook nog veel werk verricht worden, 
maar het is de moeite van het downloaden waard. 
En zo ziet het er uit, vergeleken met zijn "vader".
   
   
Het gebruik van deze hulpmiddelen is eenvoudig als je bekend bent met 
NeXTStep of OpenStep. Als je ze nog nooit gebruikt hebt, zul je de 
filosofie er achter moeten ontdekken. Er is veel documentatie 
beschikbaar en het is aan te bevelen deze te lezen (om niet te zeggen 
verplicht). Maar als je eenmaal doorhebt hoe het werkt... kun je niet 
meer zonder! Je bent gewaarschuwd. 
We moeten ook nog een aantal andere geweldige zaken noemen, zoals 
GWorkspace of GSBench. De GNU 3DKit is nog zo'n wonderbaarlijk stukje 
software. Het is een API ontworpen om basis van OpenGL te werken. Je 
kunt het vinden bij http://www.nice.ch/~phip/softcorner.html tesamen met vele andere 
applicaties.
 De hulpmiddelen die we hier aanhalen zijn ontworpen om applicaties 
over te zetten van OpenStep naar GNUstep. Maar, in feite kunnen ze nog 
meer, omdat je er ook Mac OS X programma's mee over kunt zetten. Dat is
een belangrijk punt : later meer hierover! 
Allereerst, is er het hulpmiddel OpenStep2GNUConverter, waarmee je een 
PBProject (Project Builder) naar een GNUstep Makefile over kunt zetten.
Dat wil zeggen dat je een OpenStep project op je Linux box kunt 
compileren (bijvoorbeeld). 
Voor het compileren van het project zelf, heb je nog het hulpmiddel 
nfmake nodig. 
Het hulpmiddel nib2gmodel maakt het mogelijk om een nib bestand 
(aangemaakt met Interface Builder) om te zetten naar zijn evenknie onder
GNUstep, genaamd gmodel. 
Ten slotte kun je gstep-db ophalen, dat is een database library en zelfs
nog meer, namelijk een Oracle adaptor. 
NeXTStep en OpenStep voorzien je van adaptors voor Sybase en Oracle, dat
zijn interfaces om queries uit te voeren op de databases van deze 
fabrikanten. GNUstep biedt je hetzelfde gratis (onder NeXTStep of 
OpenStep, moest je de developer kit aanschaffen die vrij kostbaar is, 
maar dan kreef je de Enterprise Object Foundation er gratis bij - dit 
zijn veel voorbeelden). 
Natuurlijk kunnen deze hulpmiddelen gedownload worden van de GNUstep 
website.  
Helaas kon ik niet alles testen, omdat ik 'slechts' een oud NeXT 
werkstation heb en ik (ongeduldig) wacht op een nieuwe Mac OS X op mijn 
werk. Maar ik heb al 15 jaar vertrouwen in GNU en dat zal vandaag niet
veranderen, daarom durf ik gerust te zeggen: het zal vast en zeker
werken. En binnen een aantal maanden zal ik dit alles getest hebben...
ALs je belangstelling hebt voor ontwikkelen met dit geweldige raamwerk, 
is er veel documentatie beschikbaar, zoals ik al heb opgemerkt. Het 
gebruiksgemak is niet legendarisch, je hebt enige kennis nodig over de 
werkwijze. 
Op de GNUstep website, vindt je veel bruikbare links. Sommige daarvan 
verdienen echter bijzondere aandacht. 
Op de pagina 
http://www.gnustep.org/resources/documentation.html vindt je de 
algemene GNUstep documentatie. Deze bestaan onder ander uit een
Objective C handleiding, installatie instructies, FAQ... 
Er is ook documentatie over de GNUstep library. 
En zelfs meer, je vindt er tutorials. Die van Nicola is het waard door 
te nemen.  Breng hiervoor een bezoek aan 
http://www.gnustep.it/nicola/Tutorials 
Een andere plek die een bezoek waard is is de resources sectie : hier 
zijn vele links artikelen, ontwikkelsites... 
De http://www.gnustep.net/ website
is ook interessant. 
Dat wil zeggen, hier kun je alles vinden dan nodig is om te beginnen met
GNUstep.
Het bijzondere verhaal van NeXT gaat verder, laten we hopen met succes 
deze keer, onder de naam Mac OS X. Wat een geweldige ontwikkeling ! Wat 
denk je van een OS dat 10 jaar geleden werd ontwikkeld en nu een nieuwe
carriere begint? Het was zijn tijd ver vooruit, vindt je niet? 
Maar wat betekent dat voor ons? Wel, waarschijnlijk een groot aantal 
mooie programma's omdat alle bestaande eenvoudig opnieuw gecompileerd 
kunnen worden, en vergeet het niet, Mac OS X en NeXTStep zijn Unix 
systemen. Dat betekent heel veel programma's die mogelijk beschikbaar 
komen, ook voor de vrije Unix versies. Dienovereenkomstig, is GNUstep 
het raamwerk dat je nodig hebt... 
Laten we zeggen dat een (soort van) droom is: ten slotte, we zouden de 
mogelijkheid kunnen krijgen om de software te kiezen die je wil 
gebruiken. Helaas aan alles zit een zonnige en een schaduwzijde.
Laten we een voorbeeld nemen: vandaag de dag, afhankelijk van het OS dat
je gebruikt, heb je niet veel keuze betreffende web browsers. Het is of
Netscrape (en de afgeleiden daarvan) of Exploder, en dat is zoveel als 
twee munitiefabrieken en een brandende lucifer, namelijk 
veiligheidslekken, en dergelijke. Mac OS X levert je OmniWeb: dit is 
echt geweldige web browser. Gebruik hiervan onder NeXTStep is een 
plezier, zelfs al is het een relatief oude versie. 
Het is zo'n soort browser waar je vandaag de dag kunt dromen als je Unix
of M$ zaken gebruikt. De enige "thin" web browsers vindt je tegenwoordig
bij de zogenaamde alternatieve Operating Systems: zoals NetPositive 
onder BeOS of AWeb, bijvoorbeeld, onder AmigaOS.  Natuurlijk, Opera 
lijkt aantrekkelijk, maar tot op heden heeft het mij nog niet overtuigd
(dat is een persoonlijke mening). Wat ik hier bedoel is dat Mac OS X en 
dus ook GNUstep ons voorzien van "nieuwe" tools, vaak beter dan degene 
die we dagelijks gebruiken. Tools waarvan we tien jaar geleden ook al 
voordeel hadden ... met NEXTStep! 
Uiteraard, geldt dit ook voor andere soorten software, niet alleen web 
browsers. 
Een bezoek aan http://www.omnigroup.com/ toont je een stapel beschikbare tools.
Het grootste verschil tussen GNUstep en Mac OS X wordt veroorzaakt 
doordat X-Window wordt gebruikt voor GNUstep en Mac OS X hier geen 
gebruik van maakt. Dat was al een klacht onder NeXTStep. En daarom wordt
GNUstep zo belangrijk: het maakt het mogelijk deze programma's onder X 
te gebruiken. Dit is waarschijnlijk een van de sterkste punten van dit 
project: deze mensen hebben echt geweldig werk gedaan.
 We kunnen met angst de komst van Exploder en enkele andere 
exemplaren van s...oftware van dezelfde producent onder Mac OS X 
verwachten. Ik vind dit beangstigend! Als deze "apps" in Mac OS X 
broncode zijn geschreven, kunnen we het ergste verwachten. Dat wil 
zeggen, de duistere intrede van het Redmond leger in de vrije Unix 
wereld. Natuurlijk, betekent vrij hier niet hetzelfde als gratis omdat 
we het hier over M$ dieven hebben, maar... als je wil weten welke 
applicaties in ontwikkeling zijn voor Mac OS X, kijk dan maar eens op 
http://www.apple.com/macosx/applications/ 
Laten we het maar zo zien, dat is de pessimistische blik: we zullen af 
moeten wachten! 
 Hoewel, laten we niet vergeten dat GNUstep in het bijzonder is 
ontworpen voor software-ontwikkeling. Als het wat meer gemeengoed wordt,
zul je op een eenvoudige manier applicaties kunnen ontwikkelen, net 
zoals onder NeXTStep mogelijk was. GNUstep is veel meer dan enkel een 
framework, je zou kunnen zeggen dat het een groot IDE (Integrated 
Development Environment) is. Het belangrijkste punt is dat deze apps 
gemakkelijk omgezet kunnen worden naar een nieuw platform, naar Mac OS 
X, bijvoorbeeld. 
Trouwens laten we ook Apple's open source, Darwin, niet vergeten. Meer 
over dit onderwerp vindt je op 
http://www.opensource.apple.com// 
Uiteraard is er nog veel meer over GNUstep te vertellen, maar dat ligt 
buiten de scope van dit artikel. Het doel was om je te verleiden dit 
geweldige product te proberen en, waarom niet, deel te nemen aan dit
fantastische project. 
 Een van de leukste kanten van vrije software ligt in deze projecten,
die proberen de fouten van de commerciële bedrijven te repareren.
NeXTStep was een ware revolutie voor mij. Ik ben de gelukkige eigenaar
van een 10 jaar oud werkstation, en geloof maar niet dat het onder stof 
is bedolven: Ik gebruik het nog bijna elke dag, ondanks zijn 68040/25 
Mhz CPU. Gelukkig (of misschien ongelukkigerwijs) denken veel mensen er
hetzelfde over. Dank aan het GNUstep team en aan het Window Maker team
om ons van zo'n geweldig werk te voorzien.  
Het ongelofelijke van NeXTStep is het feit dat veel ontwerpers het 
proberen na te maken.... en ze zijn geslaagd waar het model faalde. Weer 
moeten we het Redmond koninkrijk noemen: heb je ooit gelet op de W95 
vensters en hun toeters en bellen? Kijk nog maar eens naar de NeXTStep 
schermafbeeldingen hierboven. NeXTStep verscheen voor het eerst in de 
USA in 1987 en rond 1990 in Europa. Zoals de naam al zegt verscheen het 
M$ product meer dan vijf jaar later. De vliegende pagina's tussen twee 
mappen, uitgevonden om de omgeving van Seattle, werden gepresenteerd 
onder NeXTStep 2.1, dat is omstreeks 1991... 
Desalniettemin, voor een keer, hebben ze niet gekopieerd in Redmond! 
Nee, ze deden het slimmer: ze "kochten" mensen van NeXT... Naar ik 
verwacht voor veel, zeer veel geld. Dat geeft niet, maar het blijft niet
eerlijk, wel?  
Het toont in ieder geval aan dat NeXTStep de mensen nooit onverschillig 
liet, en dat is zwak uitgedrukt. 
 GNU  is DE absolute bron betreffende
vrije software en hoort dat ook te zijn. De hele wereld is GNU veel 
schuldig: elk OS heeft geprofiteerd van hun werk. Hun compilers zijn 
waarschijnlijk de beste die er ooit geweest zijn, ongeacht het OS. Dat 
is ook waar voor vele andere hulpmiddelen. Zelfs meer, hun projecten 
zijn vaak (zo niet altijd) net zo goed als hun hulpmiddelen. GNUstep is
er een van. Overigens, NeXTStep had een GNU directory... 
Als je net als ik, niet dol bent op de bekende (vrije of 
commerciële) Unix bureaublad omgevingen, probeer dan GNUstep, je 
zult het geweldig vinden! Je zult zelfs niet meer zonder kunnen.
Geniet er van !
Wat leven we toch in een geweldige tijd!