Scala in Depth

Het leren van een nieuwe programmeertaal gaat tegenwoordig vaak via het downloaden van een geschikte IDE om vervolgens de beschikbaar gemaakte voorbeelden uit te puzzelen en de documentatie te lezen. Hierbij is het gebruik van de informatie op internet onontbeerlijk, omdat vaak uitgebreide handleidingen beschikbaar zijn en interessante cursussen tegenwoordig allemaal online staan. Zo begon ik ook met Scala, eerst via de website (www.scala-lang.org) en daarna met een online cursus. De informatie op de scala website is uitgebreid en zeker wanneer de kennis van Java goed is, dan is deze nieuwe taal makkelijk op te pakken is. Daardoor begin je jezelf af te vragen of een boek misschien niet een overbodig hulpmiddel aan het worden is. Met dat perspectief begon ik aan het boek 'Scala in depth' van Joshua D. Suereth.

Tegen de tijd dat ik aan het boek begon, had ik samen met een klein team al mijn eerste Scala-applicatie gerealiseerd. Het enige wat echt tekortschoot gedurende dit project was het functionele aspect; ik had immers nog nooit de principes van functioneel programmeren doorgrond. Gelukkig begint het boek daarmee direct goed; het eerste hoofdstuk laat de lezer op een toegankelijke manier kennismaken met dit paradigma en geeft een korte introductie hoe Scala is opgebouwd. Waar ik echter al heel snel achter kwam, is dat dit boek echt bedoeld is voor de al wat meer gevorderde Scala programmeur. Voordat je aan dit boek begint, kan het absoluut geen kwaad om eerst nog even het geheugen op te frissen met een boek dat ingaat op de grondbeginselen van Scala. Dit boek is namelijk niet bedoeld om de eerste stappen in Scala te leren. De voorbeelden zijn zonder gedegen basiskennis niet altijd makkelijk te interpreteren en de genoemde basisregels zijn veel begrijpelijker als je al wat programma's hebt geschreven. Wel biedt het boek een goede uitleg waarom bepaalde conventies dienen te worden toegepast en dat kan ik zeer waarderen.

Welke toegevoegde waarde biedt dit boek dan wel? Welnu, het boek doet zijn naam absoluut eer aan. Het gaat behoorlijk diep in op de taal en legt op een redelijk te begrijpen manier uit welke keuzes een ontwikkelaar moet maken en welke aandachtspunten belangrijk zijn als hij of zij een complexe Scala applicatie wil maken. De focus ligt absoluut op degenen die zich concentreren op het bouwen van een herbruikbaar component en welke aspecten van de taal daarin kunnen helpen. Per facet van de taal wordt beschreven hoe de compiler zich gedraagt,  welke specifieke condities zich kunnen voordoen en/of welke valkuilen vermeden moeten worden. Voordat je het weet, bewonder je het tamelijk complexe type systeem van Scala en ga je los op de impliciete conversies!

Voor mij was dit boek erg interessant, maar helaas nog een stap te ver om alle facetten goed tot mij door te kunnen laten dringen. Ik ben immers nog een beginnende Scala-programmeur. Wel is het zo dat zodra ik voldoende extra kennis heb van deze fascinerende taal, ik dit boek absoluut weer zal oppakken en nogmaals van voor tot achter zal doorwerken.

Cijfer: 4

Author: Joshua D. Suereth

ISBN: 978-1-935182-70-2