Kris van Rens (Trainer)
Ondanks een groot aantal opkomende alternatieven is C++ nog steeds een kracht om rekening mee te houden, zeker in de door legacy bedreigde high-tech industrie. Op basis van bijna 25 jaar ervaring introduceert computerprogrammeur Kris van Rens beginnende programmeurs in de basis van de taal en essentiële best practices in zijn nieuwe C++ Fundamentals training bij High Tech Institute.
In de loop der jaren is er een lange lijst programmeertalen naar voren geschoven om C++ te vervangen. D, Rust, Apple’s Swift, de recente toevoeging van Google Carbon en minder bekende alternatieven zoals Nim en Vale, om er een paar te noemen – ze hebben allemaal hun verdiensten en hun specifieke toepassingsgebieden. Desalniettemin is C++ nog steeds springlevend, stelt computerprogrammeerenthousiast Kris van Rens.
“Er is een wijdverbreide opvatting dat je C++ niet moet gebruiken omdat het verouderd is,” zegt Van Rens. “Maar het is eigenlijk deze opvatting die verouderd is. Het is gebaseerd op C++ oude stijl. Sinds de geboorte van het moderne C++ in 2011 is de taal met zijn tijd meegegaan. Met de juiste voorzieningen is het niet minder relevant dan opkomende alternatieven zoals Rust.”
In de nieuwe 4-daagse training “C++ fundamentals”, georganiseerd door High Tech Institute in de laatste twee weken van maart, laat Van Rens deelnemers kennismaken met de basisprincipes van de taal en essentiële best practices. “Ik streef ernaar een positieve vibe over C++ over te brengen. Ik wil dat deelnemers het gevoel krijgen dat ze er echt iets mee kunnen en dat ze weten hoe ze het goed kunnen gebruiken.”
Brood en boter
Van Rens is al gefascineerd door de wondere wereld van het programmeren sinds hij voor het eerst de ZX Spectrum thuiscomputer van zijn vader in handen kreeg. “Het was een machine uit 1983, mijn geboortejaar. Toen ik 7 of 8 was, begon ik ermee te knutselen, met behulp van de programmeertaal Basic. Op de middelbare school, in een buitenschoolse activiteit, leerde een medestudent me X86 real-time assembly, gevolgd door C en vervolgens C++. De afgelopen jaren heb ik me ook verdiept in Rust.”
Na een bachelor in mechatronica aan de Niederrhein University of Applied Sciences in Krefeld, Duitsland, deed Van Rens een master in elektrotechniek aan de Technische Universiteit Eindhoven (TUE), met als specialisatie videocodering en architecturen onder begeleiding van professor Peter de With. “De universiteit is de plek waar ik software engineer ben geworden en mijn eerste ervaringen met lesgeven heb opgedaan. Parallel aan mijn afstudeerproject, dat ging over het converteren van MPEG-2 naar H.264 videostromen, maakte ik een tutorial over beeld- en videocodering – voor mijn eigen begrip, maar ook gewoon voor de lol en om die lol op anderen over te brengen. Het verspreiden van mijn enthousiasme is altijd een belangrijke drijfveer voor me geweest.”
In 2009 begon Van Rens zijn professionele carrière bij zijn huidige werkgever, de slimme surveillancespecialist Vinotion. Op dat moment was deze spin-off van de TUE nog een startup, werkend vanuit een kantoorruimte van de onderzoeksgroep van De With. “Van het coderen van beeldanalyse-algoritmen in C++ verschoof mijn focus langzaam naar het ontwikkelplatform als geheel, inclusief de taal zelf, de programmeerinterfaces en de tooling. Dat werd mijn brood en boter: het mogelijk maken van het maken van robuuste, krachtige code van hoge kwaliteit met behulp van een solide softwarearchitectuur.”
Van Rens’ carrière in training kreeg een duwtje in de rug toen hij werd gevraagd om te spreken op een van de informele 040coders bijeenkomsten voor computerprogrammeurs in de regio Eindhoven. “De bijeenkomst werd gehost door Philips Image Guided Therapy en ik deed een sketch over het introduceren van kinderen in C++. Daarna nodigde IGT me uit om een serieuze presentatie te geven voor hun engineers. Dus deed ik een try-out over een diepgaand onderwerp in C++. Ze vonden het zo leuk dat het is uitgegroeid tot een driemaandelijks evenement – tot nu toe allemaal online, dankzij Covid, waarbij ik vanaf mijn zolder presenteer voor groepen van wel 150 mensen.”
Ontmoetingen met het erfgoed
De nieuwe C++ klassikale training bij High Tech Institute is gericht op veel kleinere groepen van maximaal een dozijn software engineers met basis programmeervaardigheden – elke taal is goed genoeg. De training is ook veel praktijkgerichter, met praktische oefeningen die zijn ontleend aan Van Rens’ meer dan 10 jaar industriële ervaring. “Deze oefeningen zijn niet theoretisch en verzonnen zoals ik in zoveel andere cursussen heb gezien. Het zijn echte industriële cases, geïnspireerd door de problemen die ik in mijn dagelijkse werk tegenkom.”
Een belangrijk concept dat Van Rens behandelt is het ambacht van systeemprogrammering. “Wanneer je embedded software schrijft voor een high-tech systeem, zit je veel dichter op de hardware dan wanneer je een webapplicatie maakt,” wijst hij erop. “In Javascript, bijvoorbeeld, hoef je je over het algemeen niet bezig te houden met zaken als geheugenbeheer; de interpreter regelt dat voor je. In een embedded systeem moet je je wel zorgen maken over de vaak beperkte bronnen en hoe je ze verstandig gebruikt. Bij systeemprogrammeren gaat het erom dat je je bewust bent van de fijne kneepjes op alle niveaus en dat je de flexibiliteit hebt om daarnaar te handelen. De training biedt daarvoor de handvatten. Deze kennis geldt voor elke systeemprogrammeertaal.”
''A lot of legacy is written in some older version of C++.''
De alomtegenwoordigheid van legacycode in de hightechindustrie is nog een reden waarom C++ en zijn training zo relevant zijn, merkt Van Rens op. “Veel van die legacy is geschreven in een oudere versie van C++. Vroeg of laat komt u deze code tegen. Herschrijven of ertegen programmeren in Rust of een andere taal is bijna nooit een haalbare optie; je zult ermee moeten omgaan in C++, en mijn training helpt je daarbij.”
Om voorbereid te zijn op legacy code moeten deelnemers natuurlijk wel het een en ander weten over C++ oude stijl, maar de nadruk ligt op de veilige, moderne aspecten. “Na de eerste standaardisatie in 1998 veranderde de taal lange tijd niet veel. Pas in 2011 onderging C++ een ware metamorfose met de introductie van moderne concepten zoals smart pointers voor veiliger geheugengebruik. Sindsdien wordt de taal regelmatig bijgewerkt, net als de best practices,” legt Van Rens uit. “Mijn primaire focus ligt op de laatste stand van de techniek. Later in de training rust ik de deelnemers ook uit voor hun onvermijdelijke ontmoetingen met C++ oude stijl door in te gaan op de evolutie van de taal en oefeningen te geven waarin stukken legacy code herschreven moeten worden met moderne constructen.”
Superleren
De grondbeginselen die Van Rens in de komende training leert, zijn meer dan genoeg voor deelnemers om een vliegende start te maken, maar ze zijn slechts een fractie van wat er over C++ te vertellen valt. “Het is een enorme taal. Ik gebruik het boek “Beginning C++20″ van Ivor Horton en Peter Van Weert als naslagwerk tijdens de cursus. Het is uitgebreid, bijna duizend pagina’s lang, maar zelfs dat is bij lange na niet genoeg om alles te behandelen. In vier dagen wil ik een solide basis leggen, deelnemers de kneepjes van het vak laten zien en laten zien waar ze terecht kunnen als ze dieper willen duiken.”
''Nothing beats learning by doing.''
Met boeken en online tutorials kom je niet verder. Er gaat niets boven leren door te doen, stelt Van Rens, die wijst op de toegevoegde waarde van klassikaal lesgeven. “Door sinds 1998 met C++ te werken, heb ik bijna 25 jaar ervaring opgebouwd die ik ruimschoots deel in de klas. Ik leg niet alleen de taal uit; ik weet waar ik de juiste accenten moet leggen en ondersteun mijn verhaal met relevante best practices, voorbeelden en oefeningen uit de industrie. Het is supergeladen leren.”
Dit artikel is geschreven door Nieke Roos, tech-redacteur van Bits&Chips.
Recommendation by former participants
By the end of the training participants are asked to fill out an evaluation form. To the question: 'Would you recommend this training to others?' they responded with a 9.1 out of 10.

