Interview met de auteur van Konsole, Lars Doelle

 

Wanneer begon je met werken aan Konsole?

Vrijwel gelijktijdig met de start van het KDE project. Ongeveer een jaar eerder was ik de mogelijkheden van grafisch programmeren onder Linux aan het onderzoeken. De situatie in die tijd was op zijn minst een ramp te noemen, behalve X11 natuurlijk, wat zeker een goede basis is. De meest veelbelovende ontwikkeling in die tijd was Lesstif, een vrije Motif-kloon, maar dat boekte slechts langzaam vooruitgang, hoewel het uiteindelijk wel zeer succesvol is geworden.

Het vroegste werk van Konsole had een ietwat andere richting; omdat het een terminal moest gaan emuleren, om te gebruiken met, wat toendertijd mailboxen genoemd werden: eigenlijk gewoon een console die aan het uiteinde van een modem draaide, in plaats van de pseudo pty-apparaten (pseudo pty devices) die vandaag de dag in zwang zijn.

Nadat ik wat meer geleerd had over terminal-emulatie en nadat ik beseft had dat er een X-terminal voor KDE zou nodig zijn om kvt te vervangen, een programma van de hand van Matthias Ettrich en in wezen een port van xvt naar Qt, begon ik te werken aan Konsole.

In eerste instantie nam, - nou laten we zeggen - archeologisch onderzoek naar de prehistorie en de vroege historie van gegevensverwerking het grootste deel van het werk in beslag. Technisch gezien is Konsole gebaseerd op DEC VT100 en zijn vele navolgelingen, in principe allemaal uitbreidingen van het soort dat we vandaag de dag een 'hack' zouden noemen. Het duurde bijna 2 maanden om alle soorten escape codes te verzamelen en te groeperen die nodig zijn om een X-terminal te laten werken zoals het hoort.

VT100
DEC VT100

Het eigenlijke programmeren van Konsole was beduidend eenvoudiger.

 

Naast de onderhouder Waldo Bastian ben jij de enige die als auteur vermeld staat. Is Konsole enkel door jou gemaakt? Zijn er anderen die genoemd moeten worden wanneer we over Konsole praten?

Waldo Bastian onderhoudt vandaag de dag zowel Konsole als andere programma's; hij draagt zo'n beetje verantwoordelijkheid voor het KDE-project als geheel. Hij verricht fantastisch werk en ik ben hem zeer dankbaar dat hij Konsole onderhoudt. Zelf verricht ik af en toe een klein beetje onderhoud en soms voer ik nog steeds wat correspondentie over Konsole.

De sectie 'Met dank aan' in het dialoogvenster 'Info over' vermeldt naar mijn mening eigenlijk veel te weinig mensen, omdat Konsole toch heel veel bijdragen heeft mogen ontvangen. De persoon wiens bijdrage ik zelf het meest heb weten te appreciëren, was Peter Silva, omdat hij de eerste aanzienlijke contributor was. Het was een van die gevallen die je wel eens vaker ziet in de Vrije Software beweging. Precies op het moment wanneer ik me uitgeput voelde en wanhopig over het afwerken van Konsole verscheen hij ten tonele en hielp me met iets belangrijks, het implementeren van de mogelijkheid tot markeren(marking ability). Zo snel als Peter gekomen was, zo snel was hij ook weer verdwenen. Hij trok verder om iemand anders te helpen maar liet in ieder geval een gelukkige en herboren auteur achter. In elk freeware-project waar ik aan meegewerkt heb, ben ik dat soort mensen tegengekomen, en het zijn vaak mensen als Peter die het schrijven voor Vrije Software projecten zo leuk en vruchtbaar maken.

Een ander voorbeeld van een enorme verbetering is de hulp van David Faure, die Konsole naar een compleet ander niveau heeft getild: Konsole kan nu probleemloos samenwerken met andere applicaties zoals Konqueror of KDevelop.

Vele anderen schreven goede en vaak onopgemerkte bijdragen. Vaak verscheen hun werk opeens in het CVS. Het gaat daarbij om zowel kleine als grote contributies, die Konsole gemaakt hebben tot wat het nu is.

Uiteindelijk is alleen de rendering core en de interpreter van control codes en ander elementair materiaal van mij afkomstig en verbazingwekkend genoeg zijn die delen sinds het begin nooit meer gewijzigd.

 

De "klassieke" shell is essentieel op Linuxmachines om productief en snel te kunnen werken; er zijn bovendien nogal wat variaties te vinden van de X-terminal. Wat miste je dan tot nog toe al die programma's? Wat bracht je ertoe om een andere X-terminal te programmeren en wat is er naar jouw idee zo specifiek voor Konsole, vergeleken met andere terminals?

Wel, omdat je me toch over de shell vraagt wil ik van de gelegenheid gebruik maken om een en ander recht te zetten, een typische misvatting over de Konsol en over wat een X-terminal nu eigenlijk is.

Omdat de meest prominente applicatie die in Konsole draait een shell is, namelijk bash, wordt de X-terminal vaak verward met de applicatie die erin draait. Konsole is eigenlijk een emulatie (of simulatie, wat je wil) van een terminal. Een terminal is een concept dat sterk ingegraven zit in het genetisch materiaal van UNIX en alles wat daarop lijkt, bijvoorbeeld Linux. Als je bijvoorbeeld het commando ps draait, zul je een terminal gekoppeld zien staan aan ieder proces dat op de machine draait. Een UNIX-host had ooit pakweg 20 of zelfs 100 terminals aan zich gekoppeld via seriële lijnen en op elke terminal zat een gebruiker druk te werken of aan te schuiven om toegang te krijgen tot de machine. Ik veronderstel dat een moderne pc van vandaag de dag gemakkelijk duizend of meer gebruikers zou kunnen bedienen, maar hardware is zo goedkoop geworden dat we het ons kunnen permitteren om al die kostbare middelen te verspillen aan een enkele gebruiker, die geniet van een spelletje Quake met 200 frames per seconde.

Naarmate de pc en grafische terminals steeds meer in zwang raakten, ontstond de behoefte aan een soort simulatie van wat de terminals deden voor de oudere machines; deze vervanging is de huidige X-terminal. Nog steeds communiceren X-terminals met hun host via de een of andere soort seriële verbinding, zodat programma's gedraaid kunnen worden die geschreven werden voor de vroegere terminals.

Wat de vergelijking met andere X-terminals betreft, dit zijn stuk voor stuk degelijke programma's. Vooral bij het prille begin van Konsole was ik erg blij dat ze er überhaupt waren: ze namen een groot deel van de druk op mijn schouders weg, omdat er steeds iets beschikbaar was voor gebruikers om op terug te vallen, mocht er iets mislopen met Konsole.

Konsole is misschien meer geavanceerd in de details, vooral met betrekking tot lettertypes en kleurschema's, al zijn die dingen ook voor de andere X-terminals wel te configureren. Misschien is de grootste troef van Konsole wel de nauwe integratie in KDE, het concept van een sessie, of vele andere nuttige zaken die de eigenheid van het huidige Konsole uitmaken. Vele reductionisten neuzelen over de overdaad van Konsole; daarbij geven ze transparantie als voorbeeld, maar hey, die transparantie zorgt toch voor prachtige schermafdrukken? Konsole heeft veel te maken met mijn eigen voorkeuren over het uiterlijk en het aanvoelen van een terminal-emulatie. Ik ben met Linux begonnen met de Linux-console als voornaamste interface en ik heb geprobeerd om Konsole een waardige vervanger daarvoor te maken. Daartoe heb ik me beziggehouden met het originele lettertype, wat me ongeveer een maand werk kostte, ik heb de kleuren aangepast om ze passend te maken met een VGA kleurenschema en ik heb het concept van een sessie toegevoegd, dat echt uniek en nuttig is. Konsole had zelfs een fullscreen modus, die tot op de pixel identiek was met de Linux-console die op dezelfde resolutie in een framebuffer draaide. Het is jammer dat die mogelijkheid verdwenen is met de jaren. Ik kijk er naar uit ze weer tot leven te roepen in de volgende onderhoudsronde.

Motivatie. Er waren wel wat drijfveren, eigenlijk. Om te beginnen was ik op zoek naar een voorbeeldproject, om te leren programmeren met X11 en Qt. Ten tweede wou ik echt bijdragen tot het bestaan van wat je een desktop voor Linux zou kunnen noemen; toendertijd, in de beginperiode van het KDE-project, was er niets die naam waardig. De desktop voor Linux is zonder twijfel de verdienste van KDE. Zonder slechte bedoelingen mag ik wel zeggen dat het GNOME-project pas als reactie opgericht is. Er was dringend nood aan een desktop voor Linux, herinner je immers dat Windows 95 op dat moment al twee jaar geleden uitgebracht was, en bovendien veel geavanceerder dan alles wat Linux te bieden had (uitgezonderd X11 misschien, dat technologisch nog steeds superieur is, al zou het een grote stap voorwaarts kunnen gebruiken). Ten derde: ik hield eenvoudigweg erg veel van Linux en de hele freeware-gedachte, het gaf me het gevoel om in warme regen te staan en ik wou iets teruggeven. Een vierde, maar zeker niet minder belangrijke reden, is dat ik stomweg een betere X-terminal nodig had, eentje die even aangenaam was als de Linux-console. Kortom, het ontbrak me zeker niet aan motivatie voor dit project.

 

Hoe ben je begonnen met programmeren?

Ik studeerde computerwetenschappen in Darmstadt en Hamburg en tegenwoordig ben ik al 20 jaar zelfstandig programmeur. Meestal werkzaam in UNIX-omgevingen, maar ik heb ook wat dingen gedaan op Windows. Net genoeg om al mijn slechte Windows-vermoedens te bevestigen, Windows is zelfs erger dan zijn roep. Tegenwoordig werk ik al enige jaren met Linux, zowel professioneel als privé.

 

Word je betaald om te werken aan Konsole?

Nee, ik heb wel een aantal keren de core van Konsole gebruikt voor specialistische toepassingen. Op die manier zou je kunnen zeggen dat ik er toch gedeeltelijk voor betaald ben, wat voor mij nogal een verrassing was. Het verdienen van een paar centen beschouwde ik gewoon als bijzaak. Ik had nooit verwacht er geld voor te krijgen, maar ik deed het voor mijn plezier, ik wilde wat goeds doen en ik had zelf een goede X-terminal nodig.

 

Hoe intensief ontwikkel je nog verder aan Konsole? Wat zijn je plannen voor de volgende versie?

Wel, zoals ik al zei, ik heb me min of meer teruggetrokken van de actieve ontwikkeling van Konsole, maar er staat al lang een onderhoudsronde op til, om een paar dingen bij te schaven.

Ik denk niet dat ik persoonlijk in staat zal zijn om Konsole noemenswaardig uit te breiden tegenover wat het nu al is, maar omdat je erom vraagt, kan ik wel wat dingen noemen die ik ooit als volgende taak beschouwde.

  1. Afronden van Unicode-ondersteuning. Dat is eigenlijk niet echt aan de orde voor Konsole zelf, maar eerder voor alle CLI-programma's, meestal tekst-utils: denk maar aan grep, sed en al die toepassingen die iets te maken hebben met reguliere expressies. Die dingen werken nog niet goed met Unicode.
  2. Integratie van CLI-programma's met sessiemanagement. Sessiemanagement is onafhankelijk van de grafische interface, dus CLI-programma's zouden er deel van moeten uitmaken, maar dat doen ze dus nog niet. Stel je eens voor dat je bash of mutt of mc of vi op hetzelfde punt aantreft waar je uitgelogd had.
  3. Internationalisatie. Ik heb met hoofdzakelijk Aziatische ontwikkelaars gesproken, maar om ondersteuning te bieden voor Aziatische of bi-directionele scripts is een veel grondiger begrip van hun gebruik in een console nodig dan wat ik heb kunnen vergaren.

 

Heb je (buiten Konsole ;-)) bepaalde favoriete applicaties onder KDE?

Natuurlijk. Zeer zeker Konqueror en KMail. Minder opvallend, maar steeds aanwezig, KWin en Kicker. En natuurlijk de erg belangrijke werktuigen die je onder het spelletjesmenu kan vinden.

 

Konsole is vrijgegeven onder de GPL. Wat vind je van "Open Source"? Heb je ooit overwogen om je software commercieel te verspreiden?

Wat ik denk van "Open Source" heeft sterk te maken met de invalshoek vanwaaruit ik het beschouw. Bekijk je het in de context van "Closed Source", dan weet ik uit eigen praktijkervaring dat het werken met Closed Source een hel op aarde is. Als het om freeware gaat: daar heb ik een sterke voorkeur voor. Ja ik geloof wel degelijk dat freeware te maken heeft met vrijheid en "Open Source" is in dat opzicht niks anders dan water vermengd met heerlijke wijn, misschien wel met de juiste bedoelingen, omdat het te geconcentreerd te sterk zou zijn voor sommige mensen.

De vraag over het "commerciële" is minder gemakkelijk te beantwoorden, zeker als je een enggeestige opvatting van het begrip hebt. Heb je er ooit over nagedacht dat het vrijgeven van software onder de GPL evengoed een bewust commerciële zet kan zijn? Dat dat misschien zelfs in vele gevallen gewoon zo is?

Een voorbeeldje. Hoeveel boekhoudprogramma's, denk je, zijn er enkel in Duitsland voor afzonderlijke bedrijven geschreven? 10 000, 100 000? Hoe vaak denk je dat de producent van dergelijke programma's zijn programma heeft kunnen verkopen? Hoeveel hebben ze gekost om geschreven te worden, om ze te onderhouden voor de klanten? Aan hoeveel verschillende soorten boekhoudprogramma's heeft een maatschappij als de onze behoefte? Stel dat je een van de bedrijven vertegenwoordigt die zo'n programma heeft besteld, zou het "commercieel" zijn om de broncode ervan onder de GPL vrij te geven, zodat je de productie- en onderhoudskosten kan verdelen, zelfs onder de grootste concurrenten?

Een ander voorbeeld, helemaal hetzelfde als het eerste. Hoeveel programma's zijn voor slechts één klant geschreven, denk je, en zijn enkel in gebruik door die ene klant? Hoeveel gelijkaardige programma's zijn er voor talloze anderen geschreven? De broncode van dergelijke programma's is ergens in een hoekje langzaam aan het wegteren en veroudren. Hoeveel honderden miljoenen dollar worden volgens jou op zo'n manier verspild? Zou het niet "commercieel" zijn om die programma's vrij te geven onder de GPL en om er een gigantische afzetmarkt rond te creëren, gebaseerd op dienstbaarheid en herbruikbaarheid?

Beide voorbeelden tonen aan dat er een gigantisch commercieel potentieel beschikbaar is in het handig modelleren van broncode-licentie en hergebruik van broncode. De GPL is misschien wel een van de meest intelligente licenties die ooit bestaan hebben, als je ziet dat hij bijgedragen heeft aan het onstaan van het hele GNU/Linux-gebeuren en zoveel meer.

De basis van de bedrijfsstrategie van een onderneming is het ontwerpen van een broncode-licentie op zodanige wijze, dat zowel een geschikte aaneenschakeling van gebruik als een nieuwe afzetmarkt gecreëerd worden. Er zijn voor die kwestie zoveel oplossingen als er producten zijn. Een voorstelling opbouwen van de ketting van gebruikers is een taak voor slimme mensen, niet voor het "al onze broncode is ons geheim"-soort pipo's, dat volgens mij helemaal _niets_ te verbergen heeft. Neem de Trolltech-aanpak als slechts één mogelijk antwoord, dat duidelijk een succesvolle commerciële behandeling van [library-]achtige producten behelst. Oh, dacht je trouwens dat de bijdragen van IBM, Oracle, SGI, Sun of Novell ook maar iets met liefdadigheid te maken hadden?

Ik denk dat freeware of vrijheid commerciële activiteit niet in de weg hoeven te staan, wel integendeel. Ik geloof net heel sterk dat de freeware-gemeenschap vooral door sterke economische drijfveren voortgestuwd wordt, eenvoudigweg omdat freeware, of "Open Source" economisch gunstiger is dan "Closed Source", om de meest voor de hand liggende redenen. Het is duidelijk dat het moeilijk lijkt de zaken zodanig vorm te geven dat een deel van de uiteindelijke winst bij de auteurs zelf terecht komt, maar misschien is dat enkel op het eerste gezicht zo.

Immers, zelfs zonder een duidelijk plan te volgen, maken we al enorme winst, stomweg door de algehele structurele verbeteringen van onze specifieke branche. De tijden waarin het hele vakgebied overschaduwd werd door een monopolie, en waarin niemand ook maar iets goeds of zelfs "innovatiefs" durfde te creëren, die tijden zijn intussen echt wel voorbij.

 

Hoe stel je je de "desktop van de toekomst" voor? Hoever zijn we van dat stadium verwijderd?

Ernstig? Ik ben niet zo goed in voorspellingen, maar ik merk wel degelijk een aantal interessante trends op. Het werken rond Ksvg lijkt me erg belangrijk, zeker naarmate het volledige ondersteuning voor scripts begint te bieden. Enkele recente wijzigingen aan XFree86 lijken me ook veelbelovend. Verder hoop ik dat wij (de freeware-beweging) er stilletjes aan in slagen om artiesten, grafisch designers en muzikanten te engageren, die bijdragen zouden kunnen leveren van hoge kwaliteit en met een hoge graad van integratie, zoals wij het als software-auteurs al langer doen. Ja, de desktop van de toekomst zou wel eens een spetterende gebeurtenis kunnen worden, maar had ik al gezegd dat ik niet zo goed ben in voorspellingen?

De "desktop van de toekomst", zo hij al bestaat, kan je je moeilijk voorstellen. Hij zou wel eens kunnen opduiken als een absolute verrassing voor iedereen die zich bezighoudt met het maken van bizarre voorspellingen zoals degene die ik net maakte.

 

Hoe zien de hard- en software waar je zelf mee werkt eruit?

Qua hardware zit ik altijd twee generaties achter, de software is sinds een jaar of drie, vier altijd Debian unstable.

 

Vertel eens iets over jezelf? Waar ben je beroepsmatig zoal mee bezig? Hoe besteed je je vrije tijd?

Drie jaar geleden ben ik 42 geworden. Beroepsmatig ben ik zelfstandige als consultant en ontwikkelaar. De kern van wat ik doe is sinds een jaar of tien de ontwikkeling van producten. Ik hoop in de komende jaren zelf enkele producten te kunnen ontwikkelen en verkopen, misschien als freeware, maar dat valt nog af te wachten. Ik heb enkele jaren in het buitenland gewerkt en veel gereisd voor mijn beroep, maar op dit moment ben ik tevreden hier in Hamburg.

Ik ben een fanatiek programmeur, dus veel van mijn vrije tijd breng ik voor het scherm door. Cultuur boeit me ook best, naar de opera of naar tentoonstellingen gaan, ik probeer ook te leren pianospelen, ik lees heel graag en ik hou van lange wandelingen en lekker eten. Ik heb ook wel wat politieke en sociale interesses, en oh, ik hou van vele en lange vakanties op warme zonnige eilanden, maar daarvan maak ik er helaas te weinig mee.


Lars Doelle kan per e-mail worden bereikt onder lars.doelle@on-line.de. Het interview rond de applicatie van de maand, Konsole, werd gevoerd door Andreas C. Diekmann..

Een korte beschrijving van Konsole vind je elders op deze site..

Over deze site | Laatst gewijzigd: 21 maart 2004, 16:09 door: Wilbert Berendsen