Programmeren: overzicht programmeertalen (ook voor overstappers)

Marco den Teuling
0

Inhoudsopgave

    Er zijn talloze programmeertalen – en minstens even veel meningen over welke de beste is. Voor wie met programmeren begint of een andere taal wil aanleren is de keuze dan ook niet makkelijk. Daarom geven we een overzicht van de punten waar je op kunt letten en welke talen op dit moment de moeite waard kunnen zijn.

    Programmeren is leuk! Terwijl je vingers over het toetsenbord vliegen, creëer je praktische tools, verslavende games of laat je de computer complexe problemen oplossen. Maar zo mooi als het is om te kunnen programmeren, zo moeilijk is het voor beginners soms om het te leren.

    Programmeertalen zijn altijd een compromis. Ze vormen een laag tussen de taal die wij mensen schrijven en begrijpen en de taal die een processor verstaat. Elke programmeertaal gaat bij die vertaalklus weer een beetje anders te werk.

    Programmeertalen kiezen

    Als je als nieuwkomer wilt beginnen met programmeren en op zoek gaat naar een geschikte programmeertaal, krijg je van alle kanten stellige overtuigingen te horen. “Begin met een objectgeoriënteerde taal” raadt de een je aan. Veel anderen zeggen “Kies in elk geval een sterk functionele programmeertaal”. Sommigen komen ook met concrete aanbevelingen over wat de enige ware programmeertaal is en welke je absoluut moet vermijden.

    De debatten worden op de werkvloer en in fora soms met bijna religieuze overtuiging gevoerd en veel aanhangers van een taal verdedigen die gepassioneerd tegen elke vorm van kritiek. Voor beginners zijn die debatten echter helemaal niet nuttig, ze worden daardoor alleen maar bang dat ze door het kiezen van de ene programmeertaal een fatale keuze maken ten opzichte van een andere, misschien wel veel betere taal.

    Het is belangrijk om te weten dat de eerste taal die je leert bijna zeker niet je laatste zal zijn. Als je na de eerste ervaringen enthousiast wordt over programmeren op de lange termijn, zul je uiteindelijk misschien een andere taal proberen en die relatief snel leren. Neem bij je eerste taal de tijd om je enkele basisbegrippen helemaal eigen te maken, zoals datatypes, variabelen en klassen, dan wordt het omschakelen later makke­lijker en leuker. Veel dingen zullen je bij andere talen verrassend bekend voorkomen.


    Een serie artikelen over verschillende talen in c’t magazine uitgave 9 (sept. 2020) kan je helpen een weg te vinden door het landschap van de programmeertalen. In plaats van ­allerlei ideologische discussies te voeren, ­karakteriseren we kort en zo objectief mogelijk veel verschillende programmeertalen – inclusief een kort inzicht in de syntaxis van de taal en een idee van wie we die taal zouden aanbevelen.

    Het kan de moeite lonen om artikelen te lezen over talen die je tot nu toe vermeden hebt. Programmeertalen veranderen voortdurend en oude ideeën zijn meestal niet meer up-to-date.


    Index-verwarring

    In hun zoektocht naar de ‘juiste’ taal nemen veel mensen een kijkje bij ranglijsten en indices. De bekendste en meest geciteerde is de TIOBE-index. Die kijkt gewoon simpelweg naar het aantal hits voor de zoek­opdracht ‘<naam van de taal> language’ in bekende en minder bekende zoekmachines. Die index geeft echter geen informatie over hoe populair, efficiënt of nuttig een taal is. Hij geeft alleen aan hoeveel er op internet al over geschreven is. Het is dus logisch dat C en Java meestal op de topposities belanden. Beide zijn al lang in gebruik en worden nog steeds actief gebruikt.

    De PYPL-index (PopularitY of Programming Language), die volgens de benaming de populariteit zou moeten meten, meet in werkelijkheid ook iets anders. Ook die index gebruikt gegevens van zoekmachines, maar niet het aantal hits, maar het aantal zoekopdrachten voor tutorials. Daarbij wordt uitgegaan van Google Trends. Hoe meer gebruikers zoeken naar ‘<naam van de taal> tutorial’ op Google, hoe ‘populairder’ de taal is volgens de logica van PYPL. Python staat op het moment van schrijven op plaats 1, terwijl C inclusief C++ slechts tot plaats 6 staat. Er is ook op die rangschikking veel aan te merken. Is een taal goed of populair omdat veel mensen op zoek zijn naar hulp, of is dat misschien juist een minpunt?

    programmeren programmeertalen overzicht kiezen index

    In juli 2020 werd er veel gezocht naar tutorials voor Python. Dat is eigenlijk wat de PYPL-index laat zien.

    Al die ranglijsten zijn misschien een leuk gespreksonderwerp voor bij de koffie­corner van een bedrijf dat software ontwikkelt – als een soort alternatief voor het ontbreken van voetbaluitslagen. Je moet je er echter niet door laten leiden bij het kiezen van een programmeertaal. Wat je bij die ranglijsten vooral kunt zien, zijn duidelijke trends. Als een taal ineens meer en meer bij zoekmachines verschijnt, kan dat erop wijzen dat de gebruikersbasis gegroeid is.

    Maar zelfs TIOBE moest in 2004 al toegeven dat de resultaten vertekend kunnen zijn en dat de plotselinge achteruitgang van Java destijds eenvoudigweg kon worden verklaard door een aanpassing van het Google-algoritme.

    Bij het gebruik van de indices moet je dus het volgende bedenken: programmeren is geen sportwedstrijd of religie, maar een ambacht. De programmeertaal is het gereedschap van de ontwikkelaar voor het oplossen van problemen. En die tool hoeft niet het meest gegoogeld te zijn, maar moet vooral passen bij het probleem en ook bij de ontwikkelaar.

    Passende programmeertalen

    Bij het maken van een keuze moet je vooral proberen goed te bedenken wat voor soort projecten je met de taal wilt aanpakken. Meestal heb je een concreet doel voor ogen als je begint. Dat is ook goed: degenen die alleen maar beginnen met programmeren omdat ze het vage idee hebben dat dit moet (bijvoorbeeld omdat het zogenaamd ­onmisbaar is op de arbeidsmarkt), stoppen daar dan meestal snel mee uit frustratie. Het beste is dan ook om met een concreet doel met programmeren te beginnen. Dan blijf je veel langer gemotiveerd om ermee aan de slag te zijn. Het doel moet eigenlijk zodanig zijn dat je het met je huidige kennis nog niet kunt bereiken – alleen dan kun je iets nieuws leren.

    Tegelijkertijd moet het niet te hoog gegrepen zijn: het voornemen om een nieuwe Linux-­kernel te schrijven is gedoemd te mislukken. Je moet eerder denken aan een gezinsplanner, misschien een app om de inventaris van de voorraadkast thuis te bewaken of een database-­gestuurde schoonmaaklijst voor de koffieautomaat op kantoor. Hoe meer potentiële gebruikers je eerste project heeft, des te beter dat voor de motivatie is.

    Als je een eerste project in gedachten hebt, kun je de keuze van je eerste programmeertaal al beperken. Moet de applicatie in een browser draaien? Plan je een grafische interface of een commandline-­applicatie? Voor Windows, Linux, macOS, iOS of Android? Geen enkele programmeertaal is de perfecte keuze voor elk van die combinaties en veel opties vallen dan al snel af.

    Een blik op de syntaxis van programmeertalen kan helpen bij het kiezen van een taal (hier: Scala).

    Belangrijke kenmerken

    Informatici hebben vaak de neiging om een taal hoofdzakelijk te beoordelen op basis van zijn taalkundige constructies. Hoe goed is het overervingsconcept, hoe netjes wordt omgegaan met datatypes en ­uitzonderingen en welke trucs beheerst de ­compiler? Voor beginners zijn dergelijke vragen echter vrij irrelevant. Voor hen is een begrijpelijke syntaxis van primair belang. In de leerfase kun je beter drie regels code meer typen dan een slimme afkorting gebruiken die niet meer intuïtief te lezen is.

    Een programmeertaal is sowieso meer dan de som van de taalkundige details en bijzondere compilertrucs. Bij een taal hoort ook een community die bibliotheken ontwikkelt voor standaardproblemen en helpt met vragen op forums of op stackoverflow.com. Die community moet ook passen bij je probleem. In de PHP-community kun je bijvoorbeeld hulp vinden voor bijna elk denkbaar probleem met betrekking tot webdevelopment, terwijl je bij de Python-community veel specialisten vindt op het gebied van AI en data-analyse.

    Taaltypen

    Een programmeertaal en de bijbehorende community moet niet alleen passen bij het project, maar ook bij de programmeur (of beginner). Niet iedereen benadert het leren van een programmeertaal bijvoorbeeld met een wiskundige achtergrond, en dat is ook niet nodig.

    Misschien wil je leren programmeren om een notitie-applicatie voor Android te schrijven of om tekstanalyses te doen met een geesteswetenschappelijke achter­grond. Je eerste stappen op het pad van een programmeertaal kunnen dan al snel doodlopen als bij een van de eerste voorbeelden matrices worden vermenigvuldigd. Soms helpt het om ­eenvoudigweg andere inleidende lectuur te kiezen en een taal niet meteen op te geven.

    Persoonlijke keuzes

    De korte karakteriseringen van programmeertalen in c’t magazine uitgave 9 (sept. 2020) kun je gebruiken om je te oriënteren en om suggesties te vinden om een nieuwe wereld te betreden. Voor geen enkele van de gepresenteerde talen hoef je te betalen om ermee te beginnen. De drempel om ze uit te proberen is vaak laag. Meestal is een eenvoudige editor voldoende om de eerste regels code te schrijven.

    Elke selectie is onvolledig en het kan zijn dat je een taal mist die voor jou handig is geweest. Misschien komt een taal er in jouw perspectief te goed of te slecht vanaf. Voel je vrij om je eigen ervaringen en ideeën aan ons en andere lezers te laten weten (dat kan onderaan dit artikel) en om te reageren op bijdragen van anderen. Maar bedenk wel: het gaat hier over programmeertalen, niet over religie of sport. Je kunt je tijd beter gebruiken om een nieuwe taal te leren dan om online andere talen af te kraken.

    (Jan Mahn en Marco den Teuling, c’t magazine)

    Lees uitgebreide achtergrondartikelen op je gemak in c't sep/2020

    Meer over

    Software

    Deel dit artikel

    Lees ook

    32-bit programma in 64-bit Windows: informatie bij probleemoplossing

    Wist je dat 32-bit programma's alleen in 64-bit Windows werken dankzij een (soms wat verwarrend) subsysteem? We laten je zien op welke plekken je hier...

    WiFi 6: snelheid en andere verbeteringen in de nieuwe wifi-standaard

    WiFi 6, oftewel IEEE 802.11ax, moet de snelheid verhogen, onder meer door clients slimmer parallel te bedienen. Maar het heeft nog meer te bieden dan ...

    0 Praat mee
    avatar
      Abonneer  
    Laat het mij weten wanneer er