Wat is het verschil tussen frontend en backend software?
Software bestaat uit grofweg twee delen: voorkant en achterkant. En omdat we in IT graag alles in het Engels doen: frontend en backend.
Wat is een applicatie?
Eerst even afstemmen wat een applicatie is.
Een applicatie is een functioneel stuk software. Iets waar een gebruiker een taak mee kan uitvoeren. Denk aan webwinkelsoftware, een agenda-app of een boekhoudsysteem.
Al die termen, software, app, systeem en applicatie duiden op net iets anders, maar die verschillen zijn voor de verdere uitleg niet belangrijk.
App is een afkorting van applicatie.
Wat is de frontend van een applicatie?
De voorkant van de applicatie is wat de gebruiker ziet en waar hij/zij mee werkt .
De voorkant kan een mobiele app zijn, een webapp of een desktop applicatie.
Wat is de backend van een applicatie?
De achterkant bevat de data en technische onderdelen om die data met de voorkant te delen.
De achterkant zie je niet, maar merk je wel. Meestal werkt de achterkant op Windows of Linux servers.
Wat is het verschil tussen frontend en backend?
Beide onderdelen zijn software, maar hebben een eigen dynamiek.
- De voorkant is meer aan mode onderhevig, wat we mooi of handig vinden verschilt in de loop der tijd.
- De achterkant is stabieler en richt zich op veiligheid en snelheid.
- De achterkant moet groei aankunnen, meer gebruikers moeten nog steeds goede response hebben.
- Op één achterkant kunnen meerdere voorkanten aangesloten zijn: sommigen kijken via een mobiele app, anderen gebruiken de webapp.
- Soms zijn er voorkanten voor verschillende doelen: voor gebruikers en voor beheerders.
Verschillende platformen
Een platform is het systeem waarop de software uitgevoerd wordt.
De technieken om een voorkant te maken verschillen per platform. iOS van Apple, Android van Google, Windows van Microsoft zijn platformen waarop we software apps kunnen uitvoeren.
Een echte mobiele app voor iOS bestaat uit hele andere programmacode dan een desktop applicatie voor Windows. Sterker, een mobiele app voor iOS is iets heel anders dan dezelfde mobiele app voor Android.
Van alle technieken is alleen een webapp op alle platformen te gebruiken. Dat komt omdat de webbrowser op alle platformen hetzelfde werkt en de webapp alleen met de webbrowser te maken heeft.
De code van de webbrowser zelf verschilt per platform, maar daar heb jij geen last van, dat regelen Google, Microsoft, Apple, Mozilla en al die andere browserleveranciers voor jou.
Frontend software
Waarom apps maken per platform?
Een mobiele app die speciaal voor iOS geschreven is, voelt net iets beter aan voor de gebruiker. Datzelfde geldt voor speciale Android apps.
Is dat gevoel van gebruikers voor jou belangrijk, dan is twee keer schrijven en onderhouden de enige oplossing. Wil je ook een webapp, dan komt daar nog een derde keer bij.
Waarom apps maken voor meer dan één platform?
Er zijn ontwikkelsystemen die apps voor alle platformen kunnen genereren met één stuk programmacode. Er zijn ook ontwikkelsystemen die zich alleen op mobiele platformen richten en dan één stuk code voor iOS en Android gebruiken.
Zoals altijd heeft dit niet alleen voordelen. Het belangrijkste nadeel is dat deze systemen achterlopen op de doelplatformen.
Als Apple met iets nieuws komt, dan duurt het een tijdje voordat je dat kunt gebruiken in zo’n algemeen ontwikkelsysteem. Als je pech hebt, dan komt die nieuwe mogelijkheid er nooit in. Dat kan een grote belemmering zijn om deze systemen te gaan gebruiken.
Een ander nadeel is, is dat de makers van deze systemen derde partijen zijn. Je moet afwachten of de systemen over een paar jaar nog bestaan. Zelfs als die partij Google heet, dan ben je niet zeker dat de software die je maakt over een paar jaar nog gebruikt kan worden.
Tenslotte voelen sommige apps net iets minder aan. Ze zijn net iets trager, zien er net iets anders uit dan je gewend bent. Hoeveel minder hangt af van de gebruikte techniek. Maar belangrijker is of de gebruiker er last van heeft. Zo niet, dan is deze manier van apps maken een hele goede.
Backend software
De achterkant is wat dat aangaat wat simpeler. Ook daar bestaan verschillende platformen, zoals Windows en Linux, maar we hebben maar één achterkant. De keuze voor de achterkant is daarmee één keer te maken.
De ontwikkelingen aan de platformen aan de achterkant gaan ook minder hard en zijn van minder belang voor bestaande applicaties. Bij de achterkant draait het om stabiliteit.
Je kunt de achterkant vervangen of overzetten naar een ander platform, zonder dat je gebruikers dat merken.
Verdeel en heers
De software voor de achterkant kan zo worden ingericht dat het makkelijk verplaatst kan worden naar andere platformen. Dat helpt bij het groeien van het systeem, bijvoorbeeld door meer data of meer gebruikers.
Soms is het mogelijk om de achterkant in kleinere, communicerende delen te knippen. Je kunt dan zwaar belaste delen vergroten en minder belaste delen ongemoeid laten. Dat kan zelfs heel snel en naar behoefte. Denk aan pieken in het gebruik, zoals Black Friday voor webwinkels. Het voordeel is, is dat je alleen betaalt voor meer capaciteit als je het nodig hebt.
Niet voor één gat te vangen
Nog een voordeel van zo'n verdeelde opzet is dat je verschillende talen en technieken kunt inzetten. Dat kan handig zijn omdat je software engineers verschillende talen gebruiken, maar vooral omdat je zo de beste techniek voor jouw probleem kunt kiezen en combineren met andere technieken.
Voorbeeld is verschil van database. In een database slaan we data op. Maar de manier waarop het databasesysteem met die data omgaat, kan heel specialistisch zijn. Heb je bijvoorbeeld data die nooit meer verandert, zoals beurskoersen of sportuitslagen, dan kun je daarvoor een gespecialiseerde database gebruiken. En die kun je prima laten samenwerken met andere databases.
Al die deeltjes maken je backend complexer maar ook flexibeler. Wat voor jou van belang is en hoeveel ervaring je hebt met de flexibele opzet zal de keuzes bepalen.