Gepubliceerd op: 07 mei 2024
Expert:
Ir. Kris van Rens
Trainer
Lees meer over Kris van Rens
Deel

C++ is in de loop der tijd sterk geëvolueerd. Software engineers die nog steeds gebruik maken van verouderde paradigma’s van de programmeertaal realiseren zich de mogelijkheden niet ten volle. In zijn training “C++ fundamentals” bij High Tech Institute introduceert computerprogrammeur Kris van Rens C++20, inclusief onderwerpen als templates en ranges.

In de loop der jaren zijn er veel programmeertalen voorgesteld als alternatieven voor C++. Toch heeft dit C++ niet minder relevant gemaakt, benadrukt computerprogrammeerenthousiast Kris van Rens. “Er zijn miljoenen regels C++-code in productie en een aanzienlijk aantal engineers in de industrie is opgeleid in de populaire programmeertaal.”

Een van de uitdagingen van het beheersen van C++ is de enorme omvang van de taal, merkt Van Rens op. “C++ is een oude taal en is behoorlijk omvangrijk en relatief complex geworden door de veelheid aan nieuwe functies die de taal in de loop der tijd heeft gekregen. Als gevolg daarvan hebben veel C++ ontwikkelaars hun kennis van de taal in fragmenten opgebouwd, zonder een duidelijk, alomvattend overzicht.”

Deze uitgebreide kijk op de programmeertaal wil Van Rens bieden in zijn 4-daagse training “C++ fundamentals”, georganiseerd door High Tech Institute. In deze training introduceert hij de fundamenten van het moderne C++ aan software engineers van alle niveaus, of het nu hun eerste contact met de programmeertaal is of dat ze hun kennis van oudere C++ versies willen updaten.

''Many books and online resources are still teaching older versions of C++, thereby restricting you from realizing the language’s potential to the fullest.''

Een levende taal

Omdat C++ en de bijbehorende tooling in de loop der tijd veel zijn veranderd, is het gemakkelijk om vast te komen zitten in het leren van verouderde paradigma’s. Van Rens waarschuwt: “Veel boeken en online bronnen onderwijzen nog steeds oudere versies van C++, waardoor u beperkt wordt in het volledig benutten van het potentieel van de taal.” C++ als taal is nog steeds springlevend, met nieuwe versies die elke drie jaar verschijnen en grote feature-updates die minstens elke zes jaar verschijnen. “Het is aan software engineers en hun werkgevers om op de hoogte te blijven van de veranderingen in de taal en te profiteren van de nieuwe functies,” vindt Van Rens.

Van Rens behandelt C++20 in zijn training, inclusief krachtige onderwerpen als templates en ranges. “Deze C++-versie uit 2020 wordt volledig ondersteund door de meeste nieuwste toolchains, en in industriële productieomgevingen is de adoptie ervan relatief nieuw. Misschien kunnen sommige deelnemers aan de training C++20 niet direct in hun omgeving toepassen. Ze zullen echter wel in staat zijn om de potentiële verbeteringen en veranderingen te identificeren die C++20 zal brengen in hun code. Op deze manier kunnen ze hopelijk bijdragen aan een toekomstige migratie naar nieuwere C++ versies in hun bedrijf. Tijdens de training benadruk ik ook de functies van C++20 die in eerdere versies van de taal ontbraken.”

De training “C++ fundamentals” beslaat in totaal vier dagen, verdeeld over twee blokken van twee volle dagen, met een week pauze ertussen. “Ik behandel de basiselementen van de taal in de eerste twee dagen, gevolgd door een meer diepgaande duik tijdens de volgende dagen. De focus ligt op het opbouwen van een solide basiskennis van C++, en op weten waar bronnen te vinden zijn voor verdere professionele ontwikkeling in C++,” vat Van Rens de training samen. Hij besteedt ongeveer de helft van de training aan klassikale oefeningen, allemaal afgeleid van zijn praktische ervaring als doorgewinterde C++ software engineer. Voor degenen die nog dieper willen graven, zijn er een paar grotere huiswerkoefeningen.

''Perhaps in the distant future, C++ might evolve to accommodate strict safety requirements, but not at this moment. However, using the right discipline, guidelines and tools, working with C++ can be mostly safe.''

Veiligheid en beveiliging van software

Een nieuw thema op het gebied van programmeertalen is de verschuiving naar strengere regelgeving rond softwareveiligheid en -beveiliging. Dit zal elk gebied van softwareontwikkeling beïnvloeden, benadrukt Van Rens. “Software engineers zullen waarschijnlijk meer garanties moeten geven over veiligheid en beveiliging.” De twee belangrijkste benaderingen hiervoor zijn het gebruik van een geheugenveilige programmeertaal zoals Rust of het gebruik van een taal met garbage collection om handmatig geheugenbeheer te elimineren.

Hoewel C++ geen strikt veilige programmeertaal is, bevestigt Van Rens dat C++-code nog steeds zijn plaats heeft in het applicatielandschap. “Misschien zal C++ in de verre toekomst evolueren om aan strenge veiligheidseisen te voldoen, maar nu nog niet. Met de juiste discipline, richtlijnen en tools kan het werken met C++ echter grotendeels veilig zijn. Dit komt zonder harde garanties, maar het kan ‘veilig genoeg’ zijn voor uw doeleinden.”

Dit artikel is geschreven door Koen Vervloesem, freelancer voor Bits&Chips.

De training 'C++ Fundamentals' wordt één keer per jaar georganiseerd