Hoofdstuk 3
Waar Python niet de eerste keuze is
"Kan het?" is de verkeerde eerste vraag
Python kan rapporten automatiseren, een webserver draaien, onderzoeksgegevens door een analyse leiden en AI-hulpmiddelen coördineren. Die brede inzetbaarheid is echt, maar kan je ook op het verkeerde been zetten.
Zodra je weet dat Python iets kan, is het verleidelijk om geen verdere vragen te stellen. Maar “Kan Python dit?” helpt alleen als het antwoord nee is. Bij ja, en dat is meestal het antwoord, weet je nog vrijwel niets over de vraag of je het ook moet willen.
Een bestelwagen kan over een landweggetje rijden. Of dat verstandig is, hangt af van het weggetje, de lading en wie aan de andere kant staat te wachten.
Begin bij wat het project nodig heeft
Een eis is iets wat een project moet kunnen of een voorwaarde waaraan het moet voldoen. Op een telefoon werken zonder internetverbinding. In heel weinig geheugen passen. Vertrouwd aanvoelen op het apparaat waarop het is geïnstalleerd.
Sommige eisen laten ruimte. Een rapport dat zes seconden duurt in plaats van vijf is nog steeds een rapport. Andere eisen laten helemaal geen ruimte.
Daarom kies ik een taal niet op populariteit. Ik begin met de vraag wat dit specifieke project laat slagen of mislukken. Een paar vragen maken dat meestal duidelijk:
Waar moet het werken? Een laptop, browser, telefoon en bedrijfsserver zijn verschillende werelden. Het doelplatform bepaalt vaak welke hulpmiddelen überhaupt beschikbaar zijn.
Wat ziet en bedient de gebruiker? Python past goed achter veel interfaces. Voor het bouwen van de interface zelf is het zelden de gebruikelijke keuze.
Hoe snel moet het zijn? Vraag om een getal in plaats van “zo snel mogelijk”, en vraag wat te laat zijn werkelijk kost.
Wat bestaat er al? Een team met jaren aan werkende software in een andere taal lost een ander probleem op dan iemand die net begint.
Dezelfde dienst in drie omgevingen
Een bedrijf ontvangt facturen en maakt een dagelijks rapport. De bedrijfsregel blijft hetzelfde. Waar mensen de dienst gebruiken, verandert wel.
Op een server is Python hiervoor goed geschikt. De hulpmiddelen voor documenten, gegevens en het web werken allemaal in dezelfde richting.
Als klein desktopprogramma voor kantoormedewerkers is het bruikbaar met afwegingen. Python kan het venster maken en het rapport uitvoeren, maar iemand moet het programma verpakken voor elk systeem dat het team ondersteunt. Voor veertig bekende kantoorcomputers kan dat heel redelijk zijn.
Als belangrijkste interface van een consumentenapp op een telefoon is het meestal niet de eerste keuze. Daar is de interface niet zomaar een onderdeel van het product: de interface ís het product. De telefoonplatforms bieden hun bedieningselementen, toestemmingen en uitgaveproces aan via hun eigen hulpmiddelen.
Let op wat er niet gebeurde. Python werd tussen die drie situaties niet slechter. Het project vroeg de taal ergens anders een andere taak te doen.
Dat is eigenlijk goed nieuws. Je hoeft één taal nooit overal te verdedigen. Je hoeft het werk alleen goed genoeg te begrijpen om hulpmiddelen te kiezen die daarbij helpen.
Python blijft hoog op mijn lijst omdat het bij zoveel nuttige taken past. Ik vertrouw dat advies meer als ik ook duidelijk zeg waar ik iets anders zou kiezen. Dat doen de volgende lessen, te beginnen bij het deel dat mensen zelf bedienen.