Boek: The productive programmer
Neal Ford is één van de weinige mensen/sprekers uit de Javawereld die vooral bezig is met het gebruiken van de techniek in plaats van het steggelen over triviale verschillen. Hij spreekt op Java, Ruby en .NET conferenties; werkt met zowel MS Windows als OSX en geeft voorbeelden in Java, Groovy, Ruby, Haskell en C#. Ik was dus erg benieuwd naar zijn recentste boek: The Productive Programmer.
Inhoudelijk
Het boek bestaat uit een tweetal delen (Mechanics en Practice) en leest als een weblog: Neal geeft tips, trucs en advies afgewisseld met de nodige anekdotes.
Mechanics
Mechanics gaat over het automatiseren en versnellen van taken en over het verbeteren van focus op het op te lossen probleem.
Neal is duidelijk in zijn standpunt: hedendaagse programmeurs nemen vaak niet de tijd om hun systeem goed te leren kennen. Ontwikkelaars voeren vaak repetitieve handelingen uit terwijl dat nou juist iets is waar een computer goed in is. Hij laat voorbeelden zien van bash scripts en powershell oplossingen maar ook tools als Quicksilver (launcher applicatie), Selenium en scripts in Groovy en Ruby. Zijn standpunt: het schrijven van een script is vaak erg leuk en leerzaam, het uitvoeren van een repetitieve handeling lijdt af van je echte werk.
Overigens lijdt Neal alles terug naar zijn ‘Ceremony vs. Essence’ concept: zorg ervoor dat de balans niet doorslaat naar teveel ceremonie!
Aan de hand van een aantal voorbeelden laat Neal in dit onderdeel ook zien hoe belangrijk het is een reproduceerbare ontwikkelomgeving te hebben; met oplossingen via versiebeheer en VMware. Aardig, maar dit is typisch zo’n onderwerp waar ik wat meer diepgang had willen zien.
Practice
In Practice vertelt Neal hoe je code te refactoren zodat je zowel productiviteit als de kwaliteit van je code kunt verbeteren.
Hij heeft het over onder andere TDD, YAGNI, Refactoring, SLAP, DSL, Fluent interfaces, DRY en meer van die krachttermen waar je het als ontwikkelaar vaak alleen maar mee eens kan zijn. In plaats van uitleggen wat het is laat Neal aan de hand van voorbeelden in verschillende talen zien hoe je code kunt verbeteren met deze verschillende technieken als uitgangspunt. Weinig nieuws, maar veel goede tips en advies uit het werkveld.
In dit onderdeel gaat Neal ook in op Polyglot- en Metaprogamming. De tips zijn aardig (java testen met groovy, fluent interfaces in ruby), maar als je net zoals ik de eerste stappen in deze richting al hebt gezet is het wat oppervlakkig. Als de termen je niks zeggen is het zeker een interessante introductie in deze takken van de software ontwikkeling.
Kiezen van tools
Neal besteedt veel aandacht aan het kiezen van de geschikte tools. Alhoewel ik zijn uitkomsten niet altijd even interessant vind (ik wist al dat JEdit, TextMate en VI goede editors zijn) vind ik het wel interessant om te lezen hoe iemand zo’n conclusie onderbouwt.
Conclusie
Inhoudelijk vond ik het boek af-en-toe net wat diepgang missen. Dit wil echter zeker niet zeggen dat ik het een slecht boek vond. Ik had regelmatig de drang om het boek neer te leggen om even te spelen met de aangedragen concepten en voorbeelden. Ook bevat het boek stof waar ik in de praktijk veel aan heb (je hebt een codebase zonder tests, en nu?).
Voor technische diepgang of theoretische uitdieping hoef je het dus niet te lezen. Zie het is als een bron van inspiratie. En, als een boek je ook maar 1% productiever maakt is het zijn 30-40 euro en paar avonden leesgenot meer dan waard!
Naschrift
Ik kreeg de vraag of ik dacht dat The Productive Programmer een klassieker gaat worden. Een boek wat iedereen in zijn kast zou moeten hebben staan. Het boek bevat teveel zaken die ieder jaar zouden moeten worden herzien. Veel voorbeelden zijn gebaseerd op specifieke versies van applicaties en operating systemen. Alhoewel er veel advies in staat waar iedere programmeur wat aan heeft ga je het boek over een jaar niet uit de kast halen om nog eens wat op te zoeken; jammer want die verwachting had ik wel een beetje. Ik denk dus dat het geen klassieker gaat worden.



Leuk artikel Peter. Zal het boek eens lezen. Ben nog niet overal in thuis, dus dit is wel een leuke aanzet.
Jayjay - augustus 27, 2008 22:43
Vandaag op RailsConf Europe heb ik overigens gemerkt dat Neal’s stem angstig veel lijkt op die van Dr. Phil…
Marcel de Graaf - september 2, 2008 19:09
@Marcel de Graaf … haha…. nu je het zo zegt
Peter Maas - september 2, 2008 19:38
Aardig naschrift Peter :-). Het boek is inderdaad alles behalve en klassieker. Een eye-opener voor de verwende muisprogrammeur. Meer niet. Maar … en dat schrijft meneer Ford ook zelf in zijn boek … hoeveel verwende muisprogrammeurs zijn er heden ten dagen? Genoeg! Genoeg om iets te leren uit dit boek. Ondanks dat, zoals je al schrijft, sommige tips vragen om de laptop op schoot tijdens het lezen. Dus geen klassieker maar genoeg kortstondig vermaak.
Maar stel je schrijft wel een klassieker met de titel ‘The productive programmer’ ? Wat zou de inhoudsopgave zijn?
Okke van 't Verlaat - september 4, 2008 23:22
@Okke dat is een goede vraag; daar moet ik wel nog even over nadenken….. daar kom ik op terug!
Peter Maas - september 5, 2008 7:24