Linux Magazine
Abonneren
Nabestellen
Adverteren
Lezersonderzoek
Nieuws Magazine Forum Links Sitemap

Linux Magazine nummer 2, 2002: Bram Moolenaar

Interview met Bram Moolenaar

Bram Moolenaar is Open Source software engineer van het eerste uur. Als geestelijke vader van Vim is hij sinds 1991 actief betrokken bij de Open Source gemeenschap. Onlangs is versie 6.0 vrijgegeven, tijd voor Linux Magazine om eens op bezoek te gaan bij de ontwikkelaar.

Marcel Beelen

Iedereen die een beetje is opgegroeid met UNIX kent de editor Vi. Dit is een standaard tekst-editor zoals die bij alle UNIX-besturingssystemen al enkele decennia wordt geleverd. Verbeteringen worden er al sinds de jaren tachtig niet meer op uitgevoerd. En dat is ook niet nodig, want er is een sterk verbeterde Open Source versie beschikbaar, genaamd Vim: ‘Vi improved’. Bram Moolenaar is de ontwikkelaar van deze editor. Vim is erg populair bij Linux gebruikers. Nagenoeg alle distributies hebben Vi vervangen door Vim, dus een afzonderlijke installatie is in principe niet nodig. Als je configuratiebestanden wijzigt, gebruik je daar bijna altijd Vim voor, misschien zonder dat je het zelf weet. Vooral programmeurs zijn erg blij met Vim door de vele ingebouwde voorzieningen voor allerlei programmeertalen.



Amiga
Als software engineer gebruikt Bram sinds het einde van de jaren tachtig zakelijk diverse UNIX-systemen waaronder VAX-computers met BSD4 en SUN-systemen met SunOS. Op een bepaald moment is thuis een Commodore Amiga aangeschaft, een computersysteem dat destijds zijn tijd ver vooruit was. De Vi-kloon Stevie voor AmigaOS voldeed niet helemaal en daarom is Bram begonnen met het maken van uitbreidingen aan Stevie, primair om hiermee te voorzien in de eigen behoefte. Van de oorspronkelijke Stevie is na tien jaren weinig tot niets meer overgebleven.
In de werkkamer is nog steeds een plaats ingeruimd voor een Amiga 2000, weliswaar een beetje aan de kant geschoven, maar het systeem is nog steeds zo nu en dan in gebruik om een nieuwe versie van Vim te compileren en te testen op dat platform. Bram heeft daarnaast de beschikking over een SUN, maar geeft als dagelijkse werkplek en ontwikkelstation de voorkeur aan een PC met FreeBSD 4.3; een upgrade naar FreeBSD 4.5 ligt klaar. In de werkkamer staan honderden boeken over programmeertalen, besturingssystemen en toepassingen, en uiteraard ontbreekt het door Steve Oualline geschreven en door New Riders uitgegeven boek over Vim niet. Bram heeft het boek geredigeerd, maar jammer genoeg hebben diverse verbeteringen de drukker niet gehaald. Op de Website van Bram is een aanvulling op het boek beschikbaar. Op diverse kasten hangen UNIX-posters en een opwindbare Linux Pinguïn gemaakt van blik en aluminium op de tafel begint te waggelen. In de achtergrond klinkt Tubular Bells. In deze gepaste universitaire omgeving wordt Vim onderhouden.



Uitbreidingen
Na de eerste distributie van Vim op de beroemde Amiga Fred Fisk disks, is het eigenlijk als vanzelf gegaan. Gebruikers van Vim kwamen met vragen voor uitbreidingen of kwamen zelf met verbeteringen. Sommigen waagden een port naar een ander besturingssysteem. Op deze wijze is een editor ontstaan die beschikbaar is voor ongeveer ieder platform wat je kunt bedenken; de laatste aanpassingen aan de variant voor Mac OS X (een Berkeley UNIX-versie) worden gemaakt. Inmiddels is eind 2001 Vim versie 6.0 afgerond en beschikbaar gesteld. In totaal heeft de ontwikkeling van deze versie ruim twee jaren geduurd. Vim 6.0 is voorzien van een groot aantal geavanceerde mogelijkheden en ondersteunt meerdere talen en lettertypen. Handige mogelijkheid is de ingebouwde diff-functie, waarbij je zeer eenvoudig en in kleur kunt zien wat de verschillen zijn in twee met Vim geopende bestanden. Vim is voorzien van zeer uitgebreide documentatie in het Engels, waarin iedere instelling en functie beschreven is. Vim is uitgegroeid tot een ingewikkeld programma, en ondanks dat is de lijst met gevraagde verbeteringen en uitbreidingen erg lang (zie het bestand todo.txt dat met Vim 6.0 wordt gedistribueerd).



verlanglijst
Het moeilijkste om te ontwikkelen was de folding-functie. Bij folding kun je bij elkaar horende tekstblokken in- en uitklappen. Dit is een erg handige en tijdbesparende functie. “Folding was wel het meest ingrijpende. Alle commando’s die de cursor over regels bewegen moesten worden aangepast. Ook scrollen en displayen van tekst werkt anders. Kon er voorheen vanuit worden gegaan dat elke regel in de buffer minstens een regel op het scherm heeft, bij een gesloten fold is dat niet zo. Dus al het rekenwerk met regelnummers moest gecontroleerd worden en op veel plaatsen ook worden uitgebreid,” Aldus Bram.
“Het verlanglijstje is erg lang. Hoe meer mogelijkheden een Vim-gebruiker krijgt, hoe meer hij bedenkt wat hij nog zou willen hebben! Een tekst-editor moet vooral betrouwbaar en gemakkelijk te gebruiken zijn. Daarom stel ik uitbreidingen die Vim nog ingewikkelder maken voorlopig uit. Ik concentreer me vooral op het verbeteren van de bestaande functionaliteit. Vim 6.1 zit er aan te komen. Daarin zijn een flink aantal bugs van Vim 6.0 opgelost en zijn er updates van syntax-scripts. Veel nieuws zit er niet in; een aantal vertalingen van menu’s en een dozijn nieuwe syntax-scripts.”



Eerste plaats
Of en wanneer er nog een versie 7.0 wordt ontwikkeld is onduidelijk. Wellicht wordt versie 7.0 een opgeschoonde versie die compacter, sneller en beter is, zonder concrete uitbreidingen. Gezien het nieuwe Open Source project (zie verderop) is dit een logische conclusie.
Vi-klonen als Stevie en Elvis hebben beduidend minder mogelijkheden. Op de vraag of en wat de concurrenten zijn van Vim, heeft Bram een politiek juist antwoord paraat. “Er bestaan specifieke editors die erg handig zijn voor programmeertalen zoals Java. Algemeen toepasbare editors zijn er echter niet zo veel. Emacs is natuurlijk de grote concurrent, hoewel dat meer is dan een editor. In verkiezingen van ‘de beste editor’ staan Vim en Emacs meestal in de top. Om een voorbeeld te geven, bij de Linux Journal Readers’ Choice Awards van 2001 stond Vim op de eerste plaats, ‘Vi (and clones)’ op de tweede en GNU Emacs op de derde (Linux Journal november 2001).Vim is erg populair bij Linux gebruikers. De veelal standaard geïnstalleerd versie kan echter wat uitgekleed zijn en mist features. Wil je de complete versie installeren, kijk dan in de extra bijgeleverde packages of download de complete versie van de Website.
Bij FreeBSD en Solaris 8 moet je zelf een package toevoegen. Windows-gebruikers zullen Vim moeten downloaden en installeren, bijvoorbeeld van http://vim.sf.net, http://ftp.vim.org/pub/vim of http://www.vim.org.”



Charityware
In de periode 1994/1995 hebben de ontwikkelingen van Vim even op een wat lager pitje gestaan, omdat Bram een jaar vrijwilligerswerk bij het Kibaale Children’s Centre heeft gedaan in Uganda. Getroffen door de situatie daar, is het idee van Charityware ontstaan. Vim heeft als ‘licentievorm’ Charityware. Vim blijft Open Source en gratis, maar door het als Charityware te classificeren worden twee doelen bereikt. Enerzijds is het doel de bewustwording van de problematiek van armoede en AIDS in Uganda bij Open Source software gebruikers, anderzijds is het doel op vrijwillige basis geld in te zamelen voor het kindercentrum in Uganda. Iedere keer bij het starten van Vim word je gewezen op deze problematiek met de melding “Help Poor Children in Uganda”. Om dit mogelijk te maken is de stichting ICCF Holland opgericht. Charityware donaties komen via deze stichting rechtsreeks ten goede aan het kindercentrum. In de jaarcijfers van 2001 is te zien dat de stichting nauwelijks overhead heeft en dus het totale ingezamelde bedrag naar Uganda gaat. Bram zelf staat als integer Open Source ontwikkelaar en bestuurslid van de stichting garant voor een correcte afhandeling van de bijdragen en het slagen van de projecten. Er blijft niets achter bij de organisatie.Als je meer wilt weten over de stichting, bezoek dan de Web site op http://iccf-holland.org of http://www.moolenaar.net.
Het maken van een goed product, het al tien jaar onderhouden, vernieuwen en het in source-vorm beschikbaar stellen daarvan, gecombineerd met het opmerkelijke Charityware-idee maakt Bram bekend in de Open Source gemeenschap. Hij wordt regelmatig gevraagd voor presentaties en andere bijdragen. Een door Bram zelf geschreven artikel over Vim, Charityware en dergelijke is te vinden op http://www.rons.net.cn/english/FSM/vim.



Het A-A-P project
En nu een primeur voor Linux Magazine. De Open Source wereld krijgt een stevige stimulans. Bram gaat vanaf maart 2002 minimaal een jaar werken aan het door de Stichting NLNET gesponsorde Open Source project genaamd A-A-P. Het project A-A-P moet een bij het open concept passend raamwerk worden voor ontwikkeling, distributie, versiebeheer en onderhoud van programmatuur en hulpmiddelen voor Open Source ontwikkelaars (en gebruikers). Op een gedistribueerde wijze worden via Internet referenties bijgehouden naar programma’s, patches, libraries en documentatie. Je kunt eenvoudig source code downloaden gebruik makende van een versiebeheersysteem als CVS, vervolgens worden de aanpassingen die nodig zijn om het geheel op het door jouw gebruikte platform te ontwikkelen van een ftp-server gedownload. Daarna kun je zelf aan de slag met aanpassingen en verbeteringen, die je automatisch weer kunt integreren en vrijgeven via het software projectmanagement platform A-A-P. Zoals het hoort in de Open Source-wereld, is het bijhouden van (deel)project-informatie mogelijk door software ontwikkelaars zelf, doordat ze in zogenaamde Manifestbestanden hun deelproject kunnen beschrijven. Het wordt zelfs mogelijk aan een softwareproject te werken, zonder alle componenten lokaal beschikbaar te hebben. Indien nodig, worden ze vanzelf gezocht en geïnstalleerd. Je kunt op deze wijze aan software werken, zelfs op een portable computer in de trein.
Multi-platform beschikbaarheid is uiteraard erg belangrijk. Het raamwerk zal daarom kunnen samenwerken met diverse tools, waaronder uiteraard Vim, en komt gratis (als Open Source) beschikbaar voor UNIX, Windows en andere systemen.



Stap vooruit
Als A-A-P net zo degelijk wordt als Vim, belooft dit voor Open Source een enorme stap vooruit. Het implementeren van een softwareproduct waarvan de ontwikkelaars over de wereld verspreid zijn, zal sneller lukken met hogere kwaliteit. Voor de winter moet er een versie 0.1 beschikbaar zijn en zal duidelijk worden hoe het raamwerk zich gaat ontwikkelen. Een officiële oplevering van de eerste Open Source versie is gepland in het voorjaar van 2003. Voor informatie zie http://www.a-a-p.org. Mocht je je afvragen waar A-A-P voor staat: de betekenis van de afkorting moet nog bedacht worden en is misschien nog wel eens een prijsvraag waard. In ieder geval staat de site helemaal bovenaan als je alle URL’s sorteert.

Links:
http://vim.sf.net: De Vim paginaÂ’s
http://www.moolenaar.net: De home page van Bram Moolenaar
http://iccf-holland.org: De stichting die kinderen in Uganda helpt
http://www.a-a-p.org: Het nieuwe project van Bram Moolenaar

Bram Moolenaar