Welke programmeertaal kies ik voor mijn app?

Welke programmeertaal kies ik voor mijn app?

Als je een app of ander software pakket gaat bouwen heb je misschien de neiging om meteen te bedenken welke programmeertalen daarvoor gebruikt moeten worden.

Ho. Stop.

Dat is zo’n beetje hetzelfde als een lading bakstenen bestellen voor je nieuwe huis, zonder dat je eerst hebt nagedacht of een houten woonboot niet veel beter bij je past.

Why you should start with WHY

Geen goed idee dus. Zoals met veel projecten het geval is (niet alleen in de IT), werkt het een stuk handiger om eerst met de WAAROM te beginnen (drie keer hoera voor 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 ga ik in op een aantal populaire talen die voor het bouwen van verschillende soorten apps gebruikt kunnen worden.

Maar eerst: het verschil tussen een taal en een framework

Een programmeertaal is een gecodeerde taal die programmeurs gebruiken om instructies te schrijven richten een apparaat, zodat deze begrijpt wat de gebruiker wil.

Een framework is geschreven in een programmeertaal. Een framework is een soort structuur 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.

Binnenkort ga ik in een ander artikel verschillende frameworks bespreken – voor dit artikelen houden we het even bij de programmeertalen.

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 client-side talen uitgevoerd op het apparaat waarmee je bezoeker je site of applicatie bezoekt. Server-side talen worden uitgevoerd op de server. Gegevens uit bijvoorbeeld een database worden vaak opgeslagen op de server. Als je met je app of website gegevens uit een externe database wilt aanspreken, heb je dus een server-side taal nodig.

Een overzicht van populaire talen

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 naar de browser gestuurd en 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.

Python

Python werd al begin jaren negentig ontwikkeld in Nederland. Python wordt gebruikt voor het bouwen van webapplicaties. Bij de start stond Python erom bekend dat het vooral gebruikt 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 dat er ook snel fouten kunnen worden gemaakt omdat er minder ruimte voor controle is. Werken met C betekent dus dat je als programmeur heel secuur moet 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. C++ 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.

Swift

Swift is een programmeertaal die door Apple is ontwikkeld om native iOS en Mac-apps te maken. Swift is gebaseerd op Objective-C, welke voorheen werd gebruikt voor het maken van iOS apps.

Kotlin

Kotlin is sinds vorig jaar 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. Het is gebaseerd op de programmeertaal C++. C++ is namelijk krachtig maar vrij complex – Java werd gebouwd met het idee om een goede maar makkelijk te gebruiken taal te ontwikkelen.

Ruby

Ruby is een programmeertaal die wordt gebruikt om objectgeoriënteerd te programmeren. Dat houdt kort gezegd in dat het systeem wordt opgebouwd uit objecten die hergebruikt kunnen worden. Aan die objecten worden functies en taken toegevoegd. Daarmee kan een programmeur vaak sneller programmeren en bovendien geeft het meer structuur. Het gebruik van Ruby groeide enorm toen het op Ruby gebaseerde ontwikkelsysteem Ruby on Rails werd uitgebracht. Deze werd en wordt nog steeds door veel programmeurs gebruikt om webapplicaties te bouwen.

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.

De meeste programmeurs zijn gespecialiseerd in één of 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 voors en tegens. De keuze van de programmeerta(a)l(en) die je gaat 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.

Gerelateerde artikelen: