In deze blogpost worden de noodzaak en de voor- en nadelen van een standaard coderingsstijl onderzocht om de leesbaarheid en de efficiëntie van samenwerking te verbeteren in een tijdperk waarin programmeren populair is geworden.
Met de recente vooruitgang in IT-technologie is de interesse in IT toegenomen, wat heeft geleid tot een toename van mensen die willen leren programmeren. Of ze nu zelfstandig studeren met boeken of een paar maanden cursussen volgen aan gespecialiseerde programmeeracademies, het is nu voor iedereen mogelijk om eigen programma's te maken, zelfs zonder diepgaande kennis. Dit is te danken aan de ontwikkeling van diverse tools die de toegankelijkheid van programmeren vergroten. Zo biedt Google de Android SDK (Software Development Kit) gratis aan, waarmee programma's kunnen worden ontwikkeld die op het Android-besturingssysteem draaien. Deze tools bieden gemak en helpen zelfs mensen zonder specialistische kennis om eenvoudig te programmeren.
Het feit dat programmeren voor iedereen toegankelijk is geworden, is echter niet geheel positief. De popularisering van programmeren heeft geleid tot verschillende problemen, met name de moeilijkheid om programmacode te lezen die in verschillende codeerstijlen is geschreven. Codeerstijl is analoog aan schrijfstijl in de context van schrijven. Hoewel schrijven begrijpelijk kan lijken zolang de grammatica correct is, gebruiken auteurs een stijl die past bij het doel van de tekst om het voor lezers gemakkelijker te maken om te begrijpen. Net zoals een essay bijvoorbeeld een beknopte en heldere stijl vereist in plaats van bloemrijke formuleringen, resulteert ook bij coderen, zelfs als een programma met de juiste syntaxis functioneert, het toevoegen van een geschikte codeerstijl in beter leesbare code. Omgekeerd maakt een ongepaste codeerstijl de code moeilijk te begrijpen.
Naarmate programma's groter worden, vereist de ontwikkeling vaak samenwerking tussen meerdere mensen. Programmeurs moeten daarom rekening houden met leesbaarheid om ervoor te zorgen dat anderen hun code gemakkelijk kunnen lezen en begrijpen. Niet-experts met beperkte programmeerervaring hebben echter moeite met het schrijven van goed leesbare code. Dit komt doordat degenen die programmeren leren via een korte training zich uitsluitend richten op het creëren van 'programma's die op de een of andere manier werken', zonder te leren hoe ze 'leesbare code' moeten schrijven. Code met een slechte leesbaarheid belemmert niet alleen de samenwerking, maar kan ook problemen veroorzaken bij toekomstige codewijzigingen.
Om dit probleem op te lossen, moeten we beginners een manier bieden om zeer leesbare code te schrijven. Hiervoor stel ik de invoering van een standaard codeerstijl voor. Een standaard codeerstijl verwijst naar regels die programmeurs verplichten hun individuele stijlen te verlaten en zich te houden aan een vooraf bepaalde standaardstijl. Hoewel de meeste programmeertalen geen beperkingen opleggen aan de codeerstijl, afgezien van de syntaxis, kan het standaardiseren van de codeerstijl de begrijpelijkheid van de code vergroten en leesbaarheidsproblemen verminderen.
Natuurlijk kunnen er tegenargumenten zijn tegen het voorstel om een standaard codeerstijl vast te stellen. Omdat iedereen zijn eigen voorkeursstijl heeft, kan een standaardstijl voor sommige programmeurs een lastige beperking zijn. Coderen volgens een vaste stijl in plaats van je eigen stijl kan lastig zijn en de werktijd verlengen. Ik heb dit probleem zelf ervaren. Afgelopen juni, toen ik werkte als nakijkassistent voor de Koreaanse Informatica Olympiade, had ik ervaring met het schrijven van code die ik als modelantwoord aan studenten gaf. Ik probeerde de stijl van de modelantwoorden van vorig jaar te evenaren om het voor studenten gemakkelijker te maken om te begrijpen, maar door een onbekende stijl te volgen, duurde een taak die een uur had moeten duren, nu meer dan twee uur.
Hoewel standaardcoderingsstijlen de werkefficiëntie op deze manier kunnen verminderen, geloof ik dat ze op veel manieren positieve effecten hebben.
Ten eerste zijn standaard coderingsstijlen efficiënt voor het onderhoud van programma's op de lange termijn. Bedrijven upgraden programma's continu na de release door bugs te verhelpen of functies toe te voegen. Omdat programmeurs tijdens dit proces vaak veranderen, is leesbare code essentieel voor nieuwe programmeurs om bestaande code gemakkelijk te begrijpen. Het hanteren van een standaard coderingsstijl vermindert de noodzaak voor individuele programmeurs om zich individueel te richten op leesbaarheid, en de gedefinieerde stijl maakt de code gemakkelijker te lezen.
Sommige bedrijven hanteren zelfs hun eigen codeerstijl om de onderhoudsefficiëntie te verbeteren en eisen dat alle programmeurs zich daaraan houden. Tijdens een bezoek aan Google Korea vijf jaar geleden benadrukte Google dat alle programmeurs de door het bedrijf gedefinieerde codeerstijl moeten volgen. Een vriend die bij een gamebedrijf werkte, vertelde daarentegen dat ze geen vaste codeerstijl hebben.
Ten tweede zou een standaard codeerstijl programmeurs enorm ten goede komen, gezien de huidige trend waarin open-sourceprojecten hoog gewaardeerd worden. Open-sourcecode is openbaar beschikbaar, waardoor niet alleen professionele programmeurs, maar ook niet-experts er gemakkelijk toegang toe hebben. Dit stelt diverse gebruikers in staat de functionaliteit van het programma te verbeteren en ongemakken op te lossen. Door het collaboratieve karakter van open source kan code die in verschillende stijlen is geschreven, door elkaar raken, waardoor deze moeilijk te begrijpen is. Ik gebruik regelmatig open-sourcecode die gerelateerd is aan computergraphics en heb persoonlijk problemen ondervonden met het lezen van code vanwege de verscheidenheid aan codeerstijlen. Een gestandaardiseerde codeerstijl had dit ongemak kunnen verlichten.
Ten derde kunnen gestandaardiseerde codeerstijlen ook de efficiëntie van het programmeeronderwijs verbeteren. Dit vermindert ook de werklast voor docenten. Terugdenkend aan mijn ervaring als docent aan een programmeeracademie, besteedde ik veel tijd aan het lezen van de code van studenten en het oplossen van problemen. Studenten concentreerden zich vaak op het schrijven van 'werkende code' in plaats van 'leesbare code'. Onleesbare code maakte het vinden van bugs lastig, wat veel tijd en moeite kostte en voor veel stress zorgde. Als studenten code hadden geschreven volgens een standaardstijl, zouden deze problemen zijn verminderd. De faculteit Computerwetenschappen van de Seoul National University biedt ook verschillende cursussen aan met leesbaarheidstoetsen, die studenten aanmoedigen om zeer leesbare code te schrijven. Een gestandaardiseerde codeerstijl is dus gunstig voor zowel docenten als studenten.
Vanuit het perspectief van de student kunnen gestandaardiseerde codeerstijlen verwarring verminderen en de motivatie verhogen. Programmeerboeken en online cursussen gebruiken vaak inconsistente stijlen en leren soms zelfs onjuiste stijlen. Als student is het moeilijk om de correctheid van deze stijlen te beoordelen, en het simpelweg volgen ervan kan ertoe leiden dat je een programmeur wordt die onleesbare code schrijft. Een standaardstijl zou dit probleem voorkomen.
Hoewel we de positieve effecten van een gestandaardiseerde coderingsstijl hebben besproken, moeten we ook rekening houden met de haalbaarheid van standaardisatie. Aan de andere kant kan het, vanwege het wiskundige model van programmeertalen, voor computers een uitdaging zijn om codeerstijlen te verwerken die verder gaan dan alleen syntaxis. Bovendien zijn er problemen met het converteren van alle bestaande code, geschreven in verschillende stijlen, naar een standaard, en er bestaat discussie over welke stijl als standaard moet worden aangenomen.
Het vinden van een positieve oplossing voor deze haalbaarheidsproblemen is lastig, maar naarmate het onderzoek vordert, nemen de mogelijkheden geleidelijk toe. Python probeert bijvoorbeeld de codeerstijl te reguleren door een syntaxisvoorwaarde toe te voegen, de zogenaamde inspringregel.
Kortom, het standaardiseren van codeerstijlen heeft aanzienlijke positieve effecten op onderhoud, open-sourcepromotie en onderwijs. Studenten informatica, niet-studenten en iedereen die geïnteresseerd is in programmeren, moeten ernaar streven om zeer leesbare code te schrijven. Hoewel dit in de huidige situatie moeilijk is zonder een standaardstijl, geloof ik dat een gestandaardiseerde codeerstijl om deze redenen absoluut noodzakelijk is.