Kies de juiste taal
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.
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 makkelijker en leuker. Veel dingen zullen je bij andere talen verrassend bekend voorkomen.
De volgende artikelen kunnen je helpen een weg te vinden door het landschap van de programmeertalen. In plaats vanallerlei 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. De auteurs hebben al veel tijd besteed aan de taal waarover ze schrijven. Ze hebben die vervloekt, hebben eraan getwijfeld, en hebben uiteindelijk geleerd hem te waarderen. Ze weten uit eigen ervaring veel van de sterke en zwakke punten en hebben vaak zelf grammaticale veranderingen meegemaakt.
OVERSTAPPEN LOONT
Deze artikelen zijn uitdrukkelijk niet alleen bedoeld voor beginners die nog nooit eerder in aanraking zijn gekomen met programmeren. De profielen van de talen zijn ook bedoeld om ervaren ontwikkelaars en herintreders die jaren of decennia geleden voor het laatst een code-editor hebben aangeraakt, te inspireren om hun meningen over andere talen te heroverwegen. Misschien ontdek je een taal die een van je problemen op een heel andere en wellicht veel efficiëntere manier kan oplossen dan je vertrouwde programmeertaal.
Het kan daarbij ook zeker de moeite lonen om de artikelen te lezen over de talen die je tot nu toe vermeden hebt. Programmeertalen veranderen voortdurend en je ideeën van 15 jaar geleden 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 wimpelweg naar het aantal hits voor de zoekopdracht ‘
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 ‘
Al die ranglijsten zijn misschien een leuk gespreksonderwerp voor bij de koffiecorner 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.
VOORAL PASSEND
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 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 PHPcommunity kun je bijmaar hebben we talen gekozen waarvan we denken dat ze relevant zijn, het leren waard en nuttig: in elk geval voor bepaalde taken en bepaalde soorten ontwikkelaars. Het spectrum aan talen is vrij groot.
Veel van de talen hebben een grote community achter zich (C, Java, Python, PHP, JavaScript) of zijn populaire onderwijstalen op universiteiten (Java en Python). Andere zijn geselecteerd ondanks een kleine community, omdat ze een deelprobleem bij softwareontwikkeling op een interessante manier oplossen. Voorbeelden daarvan zijn Haskell (pagina 91), Go (pagina 89) en R (pagina 90).
Er zitten ook talen bij die nieuwe wegen inslaan of die kans maken talen te vervangen waarvoor zogenaamd geen alternatieven zijn. Kotlin (pagina 85) heeft bijvoorbeeld een einde gemaakt aan de alomtegenwoordigheid van Java in de Androidwereld en Scala (pagina 86) is in opkomst als Javavervanger voor bedrijfsapplicaties – redenen om ze in deze selectie op te nemen.
PERSOONLIJKE KEUZES
De korte karakteriseringen 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.
Ondanks al onze inspanningen om een objectief overzicht te geven van programmeertalen die de moeite waard zijn om te leren, zal niet iedereen tevreden zijn met onze selectie. 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 ideeen aan ons en andere lezers te laten weten (via de link bij 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.