[LinuxFocus-icon]
Home  |  Map  |  Index  |  Zoek

Nieuws | Archieven | Links | Over LF
Dit document is beschikbaar in: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
door Georges Tarbouriech
<georges.t/at/linuxfocus.org>

Over de auteur:

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.



Vertaald naar het Nederlands door:
Christ Verschuuren <cjmversch(at)netscape.net>

Inhoud:


 

GNUstep, de open source OpenStep variant

Kort:

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.


_________________ _________________ _________________

 

Om te beginnen...

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.

 

Installeren...

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'.

 

Voorbeelden

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.

fontp.jpg fontpn.jpg

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 :

finger.jpg

Ik zou nog veel meer programma's kunnen noemen, maar ik wil de pret van het zoeken overlaten aan de lezer.

 

De unieke kenmerken

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.

gorm.jpg ib.jpg

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".

prcent.jpg pb.jpg

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.

 

Hulpmiddelen

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...

 

Documentatie

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.

 

Wat is NeXT ?

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.

De zonnige zijde

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.

De schaduwzijde

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.

 

En het orkest speelt verder

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!

 

Talkback voor dit artikel

Elk artikel heeft zijn eigen talkback pagina. Daar kan je commentaar geven of commentaar van anderen lezen:
 talkback pagina 

Site onderhouden door het LinuxFocus editors team
© Georges Tarbouriech, FDL
LinuxFocus.org
Vertaling info:
en --> -- : Georges Tarbouriech <georges.t/at/linuxfocus.org>
en --> nl: Christ Verschuuren <cjmversch(at)netscape.net>

2004-01-10, generated by lfparser version 2.36