Infi Coding Dojo: Elm

Functioneel programeren en Elm stonden centraal in deze Coding Dojo. Wat kan je bereiken met deze ontwikkelingen?

Functioneel programmeren. Het bestaat al tientallen jaren, maar de laatste jaren hoor je de term eigenlijk pas vaak vallen. Er doen steeds meer programmeertalen de kop op die zich richten op dit functionele paradigma. In veel gevallen gaat het hier om talen die in de back-end gebruikt worden. Voorbeelden zijn Scala en F#. Ook aan de front-end begint de functionele inslag steeds meer grip te krijgen. 

Een taal die snel aan populariteit wint is Elm. Het leek ons bij Infi daarom leuk om deze taal eens uit te proberen. Gezien onze positieve ervaringen met eerdere Coding Dojo's was de keuze snel gemaakt. Het doel van de avond was duidelijk: een gevoel krijgen hoe Elm werkt en wat je ermee zou kunnen. Tegelijk wilden we ervaringen delen met andere programmeurs. 

Elm

Elm is een zogeheten purely functional programmeertaal. De code wordt omgezet naar JavaScript zodat het in alle standaardbrowsers werkt. De geschreven code gaat door een compiler waardoor er van een eigen syntax gebruik gemaakt kan worden. Zo kunnen er allerlei eisen gesteld worden aan de code, bijvoorbeeld dat alle data sterk getypeerd is (in tegenstelling tot JavaScript zelf), en dat er bijvoorbeeld geen "null"-waardes mogelijk zijn. Dit zorgt ervoor dat de code duidelijker en minder foutgevoelig wordt. Dit is één van de grote voordelen van functioneel programmeren. 

Een standaard Elm-webapplicatie maakt gebruik van berichten (ook wel messages) die door de applicatie heen verstuurd worden. Als er bijvoorbeeld een API-call gedaan moet worden zal daar een bericht voor worden verstuurd. Zodra de response binnenkomt wordt er een ander bericht uitgestuurd waar alle opgehaalde data in opgeslagen zit. Dit zorgt voor een overzichtelijke en voorspelbare dataflow. Dit kan de kwaliteit van de applicatie uiteindelijk alleen maar ten goede komen. 

Coding Dojo

Een Coding Dojo is een middel om in een korte tijd, zonder al teveel voorkennis, bekend te raken met een onderwerp door er op praktische wijze mee bezig te zijn. Net als in onze eerdere Coding Dojo’s probeerden we een basis klaar te hebben staan om de deelnemers van de Dojo een vliegende start te geven. Voor deze sessie wilden we iedereen eerst bekend maken met de basissyntax en structuur van een Elm-applicatie, om daarna een simpele real-world webapplicatie te bouwen met de opgedane kennis.

Als eerste kennismaking met Elm was er een korte tutorial over de basiselementen van de taal. Daarnaast was er de mogelijkheid om een aantal koans te doorlopen om wat bekendheid met de taal te creëren. Met die voorkennis konden de deelnemers hun eigen versie van een Quizapplicatie gaan bouwen. De benodigde uitbreidingen op deze basis waren onder andere het ophalen van data uit een externe API, het tonen van een vraag en de bijbehorende antwoorden op een pagina en het controleren van een gegeven antwoord. 

Het merendeel van de aanwezigen is het uiteindelijk gelukt om de vraag en antwoorden op de pagina getoond te krijgen. Een klein aantal had het ook (deels) voor elkaar gekregen om de antwoorden daadwerkelijk te controleren. Wat ons betreft een uitstekend resultaat gezien de korte tijd die er voor was.

Hoe nu verder?

De eerste kennismaking met Elm was wat ons betreft positief. De geluiden tijdens de Coding Dojo waren ook overwegend enthousiast, al is het na een enkele sessie natuurlijk lastig in te schatten hoe goed het op de lange termijn zal bevallen.

Binnen Infi zijn er in ieder geval een aantal mensen geïnteresseerd geraakt in Elm. Er worden al kleine stappen gezet om het binnen onze projecten te kunnen gaan gebruiken. De ontwikkelingen van de programmeertaal zullen in ieder geval op nauwe voet gevolgd worden. Er gaan zelfs al geluiden op om zelf open-source packages voor Elm te gaan ontwikkelen.

Ben je zelf geïnteresseerd in Elm en wil je ook eens kijken of het iets voor jou is? De tutorials, koans en webapplicatie opzet die gebruikt zijn bij de Coding Dojo kun je direct van onze GitHub account halen:

Github: Coding Dojo Elm Tutorial
Github: Coding Dojo Elm

[Jiri is ontwikkelaar bij Infi.]

Wil je iets waarmaken met Infi?

Wil jij een eigen webapplicatie of mobiele app waarmee jij het bij anderen maakt?

Waargemaakt door de nerds van Infi.
Nerds met liefde voor softwareontwikkeling en die kunnen communiceren. En heel belangrijk: wat we doen, doen we met veel lol!

Wij willen het fixen. Laat jij van je horen?

Voor wie heb je een vraag?