0%

Waar Python niet de eerste keuze is

Interfaces voor desktop, browser en telefoon

Alle drie die omgevingen hadden schermen. Daar beginnen de verschillen, in plaats van dat ze daar ophouden.

Een interface is het deel van een programma dat iemand daadwerkelijk gebruikt: knoppen, velden, tekst, menu’s, gebaren en berichten. Stel je één hulpmiddel voor je persoonlijke budget voor, op drie manieren gebouwd. Geïnstalleerd op een laptop, geopend in een browser en geïnstalleerd op een telefoon. Dezelfde totalen, drie verschillende werelden.

Desktop

Python kan vensters voor desktopprogramma’s maken. De standaardbibliotheek bevat tkinter, dat Python verbindt met een hulpmiddelenset voor vensters, knoppen en menu’s. Er bestaan ook andere sets.

Voor een intern hulpmiddel, een laboratoriumprogramma of iets dat draait op computers die je kent, kan dit heel goed werken. Eén taal verzorgt de interface, bestanden, berekeningen en verbindingen met de rest.

De afweging komt in beeld wanneer het programma bij anderen terecht moet komen. Een Python-programma heeft Python zelf nodig, plus de pakketten die het gebruikt. Verpakkingshulpmiddelen kunnen dat bundelen tot iets wat iemand kan starten. Maar een pakket voor Windows is geen pakket voor macOS. Elk systeem dat je belooft te ondersteunen, moet je apart voorbereiden en testen.

Dus: bruikbaar met afwegingen, en goed geschikt wanneer het programma een duidelijk afgebakende taak heeft en je weet op wiens computers het draait.

Browser

Een browserpagina gebruikt HTML voor structuur, CSS voor uiterlijk en JavaScript voor gedrag. Browsers begrijpen die drie rechtstreeks.

Python kan daar ook draaien, en deze cursus bewijst dat: Python Land gebruikt Pyodide. Dat brengt Python naar de browser via WebAssembly, een overdraagbaar formaat dat browsers kunnen uitvoeren. Daardoor kun je in de browser leren, gegevens verkennen en wetenschappelijke demonstraties uitvoeren zonder iets te installeren. Dat biedt mooie mogelijkheden.

Het blijft wel binnen de regels van de browser werken. De uitvoeromgeving moet eerst worden gedownload. Sommige Python-modules verwachten een besturingssysteem dat daar niet aanwezig is. En lange berekeningen vragen aandacht, anders reageert de pagina niet meer.

Python is dus nuttig in de browser voor duidelijke doelen met bekende grenzen. Voor de belangrijkste interface van een gewoon webproduct is het meestal niet de eerste keuze.

De server is een andere vraag, en het antwoord daarop is niet veranderd: JavaScript aan de voorkant, Python daarachter om regels toe te passen en een API aan te bieden.

Telefoon

Een native telefoonapp wordt gebouwd met de eigen bedieningselementen, diensten en verspreidingsprocedure van het platform. Apple richt zich daarbij op Swift, Android op Kotlin. Die talen sluiten het directst aan op documentatie en voorbeelden voor schermen, gebaren, meldingen, camera’s, toestemmingen en de beoordeling voor de appwinkel.

Ontwikkeling van mobiele apps met Python bestaat en is geen speelgoed. Briefcase kan iOS- en Android-projecten met Python-applicaties maken. Kivy kan Python verpakken voor Android. Voor een team waarvan de applicatie daarbij past, kunnen dit de juiste oplossingen zijn.

Voor de belangrijkste interface van een nieuwe consumentenapp op een telefoon is Python toch meestal niet de eerste keuze. Niet omdat het niet kan, maar omdat zowel de interface als de verspreidingsroute thuishoren in ecosystemen die rond andere hulpmiddelen zijn opgebouwd.

Python kan nog steeds een groot deel van dat product verzorgen: de server, het voorbereiden van gegevens, het model, de tests en de regels die bewust buiten de telefoon worden gehouden.

Wat als de interface een spel is?

Een game-engine levert herbruikbare onderdelen om een spel weer te geven, invoer te verwerken en de spelwereld te laten werken. Als je project van een engine afhangt, zijn de ondersteunde talen belangrijk. Godot ondersteunt bijvoorbeeld officieel GDScript, C#, C en C++. GDScript lijkt op sommige punten op Python, maar is een andere taal.

Python kan nuttig zijn voor kleine spellen en hulpmiddelen rond de productie van spellen. Voor de belangrijkste spelcode in een engine die rond een andere taal is gebouwd, is het meestal niet de eerste keuze. Begin bij de engine en de apparaten die je wilt bereiken. Kies daarna een taal die de engine ondersteunt.

Kies voor de route die je nodig hebt

Op de desktop is Python vaak bruikbaar en soms uitstekend, met aandacht voor het verpakken. In de browser verzorgen de eigen talen van de browser het zichtbare oppervlak. Op een telefoon bieden de hulpmiddelen van het platform de directste route.

Daarmee wordt Python niet minder waardevol. Het vertelt je waar je het moet inzetten.

Het volgende bezwaar is snelheid. “Python is traag” klinkt alsof de keuze daarmee vaststaat, maar verbergt dezelfde vraag als deze les: traag bij welke taak en ten opzichte van welke eis?

Verder lezen (Engels)

Godots gids voor scripttalen legt de ondersteunde keuzes uit. Het is optionele achtergrondinformatie, geen advies om die engine voor elk spel te kiezen.