De man achter de Python-bindings in KDE

Introduceer jezelf en wat is je rol binnen het KDE-project?

Ik ben Simon Edwards en werk vanaf versie 1.0 al met KDE als een gebruiker en als ontwikkelaar. Sindsdien heb ik een Linux firewall-programma Guarddog geschreven en sinds KDE 3.3 draag ik zorg voor een kopie van Qt/KDE Python bindings welke in de module kdebindings zijn te vinden in KDE-CVS. Daarnaast heb ik ook nog zo'n twee KDE/Python projecten waaraan ik werk en ben ik betrokken binnen KDE-NL.

Hoe is Python te vergelijken met bijvoorbeeld C++ of andere talen die men gebruikt voor softwareontwikkeling binnen KDE?

Ik denk dat Python een perfecte taal is om KDE-applicaties in te ontwikkelen. Naar mijn mening is het voor de meeste applicaties een betere taalkeuze dan C++. Python is een volwassen taal met voldoende functionaliteit aan boord die je in staat stelt om snel en effectief iets te ontwikkelen. Het heeft de gebruikelijke functionaliteit wat je verwacht van zo'n hogere programmeertaal zoals classes/OOP, exceptions, garbage collection, etc, etc. Maar datgeen wat ik nog het meest fijn vind is dat het ook doet wat je ervan verwacht. Er zijn maar weinig verborgen valkuilen en de taal is klein en eenvoudig genoeg zodat je het makkelijk kunt onthouden. Dit alles maakt dat het ontwikkelen lekker snel gaat en ook leuker om te doen.

Waarom denk jij dat er zo weinig KDE-applicaties zijn geschreven in Python ondanks de volwassenheid van de bindings?

Een werkende set bindings betekende van oudsher dat je 3 verschillende softwarepakketen diende te downloaden en deze dan vervolgens compileren voor je systeem. Je moest erop bedacht zijn dat de versies van de verschillende softwarepakketten die je gebruikte compatibel met elkaar waren en ook nog eens compatibel met de versie van KDE/Qt die je zelf draaide. Dit weerhield een hoop mensen ervan om Python software te kunnen schrijven en te distribueren welke makkelijke te installeren en te gebruiken is door eindgebruikers. En omdat er weinig KDE Python programma's zijn is de prikkel voor distributies om de bindings mee te leveren zeer klein.

Goed, tot nog toe spraken we alleen over KDE-applicaties, maar Qt-gebaseerde applicaties zijn een totaal ander verhaal. Phil Thompson vertelde me dat er honderden commerciële licenties zijn verkocht voor voor het Qt-gedeelte van de bindings. De volgende commerciële Qt-applicatie die je ziet zou best wel eens Python onder zijn motorkap kunnen hebben.

Hoop je dat op een dag Python de meest gekozen taal is voor KDE of Qt?

Ik zou graag willen dat de dag komt dat hogere talen het meest gebruikt zullen worden voor ontwikkelen binnen KDE. Er is een toenemende interesse binnen het KDE-project voor andere talen dan C++. Dus ik denk dat we niet lang hoeven te wachten totdat die dag komt. Uiteindelijk bewoog het merendeel van de IT-branche altijd naar hogere talen wanneer dat mogelijk was. Kijk maar naar het gebruik van Java of zelfs Visual Basic (!) binnen het bedrijfsleven. Er zijn vandaag de dag waarschijnlijk veel meer oplossingen geschreven in deze hogere talen dan in C en C++.

Zou het reëel zijn om de gehele KDE-desktop in Python te schrijven?

Nou in ieder geval heb je het technische probleem hoe andere talen nu gebruik kunnen maken van de objecten in KDE die geschreven zijn in Python en dat sommige delen van KDE bepaalde sneldheidscriteria kennen, denk daarbij aan het tekenen en renderen van de GUI. Toch denk ik dat grote delen van KDE geschreven kunnen worden door gebruik te maken van Python. Het KDE-configuratiescherm is daar een goed voorbeeld van. Er is werkelijk geen reden te bedenken waarom het hele gebeuren niet gemaakt zou kunnen worden in Python.

Hoe zie je Python bindings inpassen met andere technologieën zoals Korundum, KJSEmbed en Kommander?

Voor het ontwikkelen van applicaties zie ik Python als een alternatief voor C++. Kommander is meer toegespitst op snel ontwikkelen van grafische frontends bovenop shellprogramma's. KJSEmbed lijkt me meer een toevoeging te gebruiken voor scripts en macro's binnen een toepassing in plaats van applicatieontwikkeling. Ik heb dus zo'n mijn bedenkingen of Javascript wel zo geschikt is voor grote programma's. Vergeet niet dat het Mozilla-project dit al een tijdje doet. In ieder geval zijn er genoeg plekken waar deze verschillende programmeertools kunnen worden ingezet. Voor iedereen is er plek.

Tenslotte wil ik Phil Thompson en Jim Bublitz bedanken. Dit zijn de mensen die in de eerste plaats het harde werk hebben gedaan om deze Python bindings te creëeren. Bedankt jongens!

Over deze site | Laatst gewijzigd: $Date: 2005/03/29 19:01:33 $ door: $Author: fab $