Als je een app of ander software pakket gaat bouwen, heb je misschien de neiging om meteen te bedenken welke programmeertaal daarvoor gebruikt moeten worden. Maar voor we hierop verder gaan, is het belangrijk stil te staan bij de waarom van het hele verhaal. Elke programmeertaal heeft andere functionaliteiten, dus het is belangrijk te achterhalen waar je de applicatie voor gaat gebruiken en hoe deze eruit moet komen te zien.
Why you should start with WHY
Zoals met veel projecten het geval is (niet alleen in de IT), werkt het een stuk handiger om eerst met de WAAROM te beginnen – sterk uitgelicht door Simon Sinek. Want waarom wil je nou eigenlijk dat product bouwen? Welk probleem lost het op voor de eindgebruiker?
Aan de hand daarvan bekijk je WAT je nodig hebt om dat probleem op te lossen. Wie is de eindgebruiker? Op welk apparaat zal hij of zij de software gaan gebruiken? En hoe moet de app eruit komen te zien om naadloos aan te sluiten bij de wensen van die persoon?
De programmeertalen die gebruikt worden in software ontwikkeling zijn namelijk voor een groot deel afhankelijk van:
- Het apparaat waarmee de app gebruikt wordt (is dat een smartphone, tablet of desktop?)
- Of het een native, hybride of webapp moet zijn en op welk besturingssysteem het gaat draaien (iOS of Android bijvoorbeeld)
- Het soort functionaliteiten dat de app moet hebben, bijvoorbeeld:
- Wordt er gebruikt gemaakt van GPS?
- Komen er animaties en video’s in de app?
- Moet de app offline beschikbaar zijn?
- Zijn er koppelingen nodig met andere software pakketten en/of externe databases?
Zo gebruik je voor een native iOS app andere talen dan voor een native Android app. Voor webapplicaties zijn weer andere programmeertalen geschikt. En om het allemaal nog iets ingewikkelder te maken: vaak worden voor één applicatie verschillende programmeertalen gebruikt, afhankelijk van onder andere het type functionaliteiten.
Er zijn heel veel verschillende talen die gebruikt kunnen worden in (web)app ontwikkeling. Hieronder gaan we in op een aantal populaire talen die voor het bouwen van verschillende soorten apps gebruikt kunnen worden.
Maar eerst: het verschil tussen een programmeertaal en een framework
Een programmeertaal is een gecodeerde taal die programmeurs gebruiken om instructies te schrijven richting een apparaat, zodat deze begrijpt wat de gebruiker wil.
Een framework is geschreven in een programmeertaal. Een framework is een soort structuur of blauwdruk voor de programmeertaal. De programmeur kan hiermee sneller functionaliteiten bouwen. Hij of zij hoeft met behulp van een framework namelijk niet vanaf nul het wiel opnieuw uit te vinden. In het framework zijn oplossingen beschikbaar voor veelvoorkomende problemen. Vaak kan de programmeur met een kleine aanpassing het gewenste resultaat voor elkaar krijgen.
Webapps: het verschil tussen server-side en client-side scripting
Daarnaast is het handig om het verschil tussen zogenaamde server-side en client-side scripting te kennen. Heel simpel gezegd worden bij client-side scripts uitgevoerd op het apparaat waarmee je bezoeker jouw site of applicatie bezoekt. Bij server-side scripts worden dezen uitgevoerd op de server. Gegevens uit bijvoorbeeld een database worden vaak opgeslagen op de server. Als je met jouw app of website gegevens uit een externe database wilt aanspreken, heb je dus een server-side script nodig om de data op te vragen en beschikbaar te stellen voor je app of website.
Een overzicht van populaire talen
Onderstaande programmeertalen zijn zeker niet alle talen. Dit is een selectie van de meest populaire programmeertalendie op dit moment veel gebruikt worden en waar wij zelf veel mee werken.
JavaScript
Naast HTML en CSS wordt JavaScript beschouwd als één van de belangrijkste componenten van het web. Het is een programmeertaal waarmee webpagina’s interactief worden gemaakt en webapplicaties worden ontwikkeld. Met behulp van HTML wordt het script dat de ontwikkelaar heeft geschreven naar de browser gestuurd en vervolgens uitgevoerd. JavaScript begon als een client-side script, maar met de introductie van Node.js in 2009 kan het nu ook als server-side technologie gebruikt worden.
TypeScript
TypeScript is een gratis en open source programmeertaal die door Microsoft ontwikkeld is. Het is niet zozeer een nieuwe taal maar een variant op JavaScript: TypeScript voegt er extra functionaliteiten aan toe en werkt in bestaande JavaScript omgevingen.
De talen JavaScript en TypeScript gebruiken wij beide ook voor het bouwen van mobiele hybride apps.
Python
Al in de jaren negentig werd Python ontwikkeld in Nederland. Python wordt gebruikt voor het bouwen van webapplicaties. Bij de start stond Python erom bekend dat het vooral gebruikt werd om scripts te bouwen om de ‘saaie taken op de achtergrond’ te automatiseren. Maar inmiddels is het een belangrijke speler die goed van pas komt bij nieuwe technologische ontwikkelingen als big data en machine learning.
PHP
PHP staat voor Hypertext Preprocessor en is een veelgebruikte open-source programmeertaal voor het ontwikkelen van web apps en websites. Met PHP kun je webpagina’s maken met dynamische content. PHP werd heel populair als back-end van content management systemen als WordPress en Drupal. Het Laravel framework is ook gebouwd in PHP. Het grootste verschil met JavaScript is dat PHP een server-side script is.
C
C is één van de oudste programmeertalen in deze lijst. Het wordt gebruikt om systeem apps te ontwikkelen die een belangrijk onderdeel zijn van besturingssystemen als Windows en Linux. Het voordeel van C is dat het dicht aansluit bij de hardware waarop het programma moet draaien. Dat betekent dat C vrij snel is, maar ook dat er snel fouten kunnen worden gemaakt, omdat er minder ruimte is voor controle. Werken met C houdt dus in dat de programmeurs heel secuur moeten werken.
C#
C# spreek je uit als C sharp en is een programmeertaal die door Microsoft is ontwikkeld. Het lijkt qua logica sterk op Java. Met C# kunnen webapplicaties en mobiele applicaties voor het Windows besturingssysteem gebouwd worden.
C++
C++ spreek je uit als C plus plus. Deze taal is ontwikkeld als verbetering op de programmeertaal C. De kracht van deze taal is de efficiëntie van de code, waardoor de computer snel instructies uit kan voeren. C++ wordt veel gebruikt voor het ontwikkelen van ingewikkelde games met bijvoorbeeld 3D features. Tegenhangers van C++ zijn Java of Objective C, die vaak voor de wat eenvoudigere games gebruikt worden.
Objective-C
Objective-C is een superset van de programmeertaal C, wat betekent dat elk C-programma ook een correct Objective-C programma is. Het voegt echter extra mogelijkheden toe, zoals het object-georiënteerd programmeren. De programmeertaal Objective-C is destijds door Apple ontwikkeld.
Swift
Ook Swift is een programmeertaal die door Apple is ontwikkeld om native iOS en Mac-apps te maken. Daarnaast is Swift gebaseerd op Objective-C, welke voorheen uitsluitend werd gebruikt voor het maken van iOS apps.
Kotlin
Kotlin is sinds enige tijd de nieuwe programmeertaal voor Android apps, zoals aangekondigd door Google. De taal is gebaseerd op Java en daarnaast beïnvloed door onder andere C#.
Java
Java werd in 1995 al geïntroduceerd. De programmeertaal Java kan in principe voor het bouwen van apps op elk platform gebruikt worden, maar werd vooral populair doordat Google het als officiële taal introduceerde voor het bouwen van Android apps.
SQL
SQL staat voor Structured Query Language en is een standaardtaal voor een relationeel databasemanagementsysteem. Een relationele database is een database waarin – zoals het woord al zegt – gegevens in tabellen staan opgeslagen die afhankelijk van elkaar zijn. Met SQL kan de programmeur taken als het opvragen en aanpassen van gegevens uit een database aanmaken.
Conclusie
De meeste programmeurs zijn gespecialiseerd in één of slechts een paar programmeertalen die gerelateerd zijn aan elkaar: C, C# en C++ bijvoorbeeld. Het is niet te doen om alles onder de knie te krijgen, en daarom een stuk nuttiger om te specialiseren in één of een paar talen die elkaar aanvullen.
Zoals je ziet heeft elke programmeertaal zijn voor- en nadelen. De keuze van de programmeerta(a)l(en) die je wilt gaan gebruiken, hangt voornamelijk af van de wensen en behoeften van de eindgebruiker. Bij het ontwikkelen van nieuwe digitale producten beginnen veel software bouwers daarom eerst met een uitgebreide inventarisatie fase. In die fase, die vaak zo’n 2 tot 4 weken duurt bij complexe apps, wordt eerst gekeken voor wie de app wordt gebouwd en welke functionaliteiten deze moet hebben. De interaction designer maakt vervolgens een interactief klikmodel. Aan de hand daarvan beslissen de programmeurs welke talen en technieken ze nodig hebben om dat ontwerp tot leven te brengen. Als je hier meer over wilt weten, raden wij je aan eens te kijken bij onze werkwijze, waar we ingaan op dit inventarisatie proces.