Een ervaren

Elixir ontwikkelaar

Naast onze app ontwikkelaars zitten onze back-end ontwikkelaars, iedere iOS, Android of web-applicatie heeft een vorm van datavoorziening en dataverwerking nodig en is grotendeels afhankelijk van deze achterkant. Of dit nu een content management systeem (CMS) is om de inhoud te kunnen beheren of een API om data uit externe bronnen op te halen en in een app te presenteren. Wij ontwikkelen vrijwel al onze back-end applicaties in Elixir.

Wat is Elixir?

Elixir is een relatief nieuwe programmeertaal waarmee we back-end applicaties mee ontwikkelen. Elixir is gebouwd op Erlang en maakt gebruik van het Erlang Open Telecom Platform (OTP). Erlang OTP is ontwikkeld door Ericsson om vele verbindingen tegelijk af te handelen voor telecom-toepassingen. Denk hierbij aan GSM centrales waarbij het essentieel is dat er heel veel processen tegelijk worden afgehandeld, in tegenstelling tot meer traditionele systemen die zich vooral focussen op het heel snel afhandelen van één enkele taak.

Erlang en OTP wordt vandaag de dag nog steeds in een groot deel van alle telefooncentrales gebruikt om zowel telefoonverbindingen als mobiel internet mogelijk te maken. Maar ook moderne systemen zoals WhatsApp maken gebruik van OTP om vele processen tegelijk te verwerken en om het systeem zo fout-tolerant mogelijk te maken.

Vriendelijke taal voor programmeurs

Erlang is echter niet een heel vriendelijke taal voor programmeurs. Het is immers in 1986 ontwikkeld en, ondanks dat de taal nog steeds actief wordt ontwikkeld, komt de basis uit een tijd dat hogere programmeertalen nog een academische oefening waren. In tegenstelling tot modernere programmeertalen zoals Ruby waarbij er veel meer aandacht is voor de ontwikkelaar en zijn tijd. De bedenkers waren zelf eerst onderdeel van het Ruby on Rails ontwikkelteam en hebben daardoor bij Elixir hun ervaring in het opzetten van een prettig taal nogmaals kunnen toepassen. Het resultaat is Elixir, een moderne taal die door vele programmeurs gewaardeerd wordt door de prettige syntax, die de krachtige Erlang Virtual Machine (BEAM) aan kan sturen en daarmee de performance biedt van een "lower-level" programmeertaal. Het beste van beide werelden.

Fout tolerantie en concurrency

Doordat Elixir bouwt op het OTP systeem en daarbij gebruik maakt van dezelfde BEAM VM zijn Elixir applicaties ook in staat om heel veel processen tegelijk te runnen, dit noemt men "concurrency". In een webapplicatie ontwikkeld met Elixir zal elk request zijn eigen BEAM process opstarten. Het voordeel is dat de performance van het enkele request niet sterk afhankelijk is van de de hoeveelheid gelijktijdige request, theoretisch is er zelfs geen limiet op het aantal requests dat tegelijkertijd loopt. Daarnaast zijn de processen ook geïsoleerd van elkaar, een enkel request kan een fout tegenkomen en "crashen", zonder dat dit enig gevolg heeft voor andere processen. Dit resulteert in een hoge mate van stabiliteit van het ontwikkelde systeem.

Functioneel programmeren

In tegenstelling tot vele andere back-end talen die we hebben gebruikt, zoals: Ruby on Rails, Node.js, PHP enzovoorts is Elixir een functionele programmeertaal. De eerder genoemde zijn OOP programmeertalen, dat betekent dat ze object georiënteerd zijn. Dat is even wennen voor programmeurs maar onze ervaring leert dat een programmeur al binnen een paar weken als Elixir ontwikkelaar aan de slag kan. Met name voor webapplicaties merken wij zelf dat het functionele paradigma ineens veel logischer lijkt dan de OOP principes die vooral uitgaan van het bijhouden van "state".

Phoenix Framework

Het Phoenix framework

Elixir is nauw verbonden met Phoenix, het bijbehorende web-framework, ontwikkeld door de Elixir ontwikkelaars. Phoenix is ontzettend snel en tevens functioneel.

De eerder genoemde problematiek met vele gelijktijdige verbindingen (concurrency) heeft veel raakvlakken met het huidige internet. Websites en apps zijn tegenwoordig niet meer stand-alone en maken op zichzelf ook weer vele verbindingen naar andere services. Denk bijvoorbeeld aan microtransacties zoals chatberichten, notificaties, likes, file uploads of het ophalen van bepaalde datasets.

Doordat de eerder genoemde problematiek met vele gelijktijdige verbindingen door Erlang is opgelost wordt Elixir nog veel interessanter. Groot bijkomend voordeel is dat het veel minder (server)geheugen nodig heeft dan object-georiënteerde programmeertalen.

Een goede keuze voor web-applicaties

Het feit dat je binnen Elixir ontzettend veel gelijktijdige verbindingen kunt leggen maakt het zeer populair bij verschillende bedrijven. Een sociaal medium als Pinterest is inmiddels volledig over op Elixir en ook populaire diensten als Pinterest, Slack, Discord en Adobe maken gretig gebruik van deze programmeertaal.

Elixir lijkt (zeker in combinatie met Phoenix) enorm op Ruby on Rails, een ander populair platform voor webapplicaties.

Wat je goed in Elixir kunt maken

Eigenlijk iedere applicatie is in Elixir goed te ontwikkelen. Wat de programmeertaal zo goed maakt is vooral goed van toepassing op applicaties die:

  • Veel gelijktijdige verbindingen moeten ondersteunen zoals een live-chat
  • Veel dezelfde handelingen moeten uitvoeren zoals het geven van een like of een comment

YipYip is een Elixir ontwikkelaar

Sinds het begin van Elixir zijn wij betrokken bij de ontwikkeling van het platform. We noemen onszelf ook een echte Elixir ontwikkelaar met inmiddels ruime ervaring.

Onze keuze is vrijwel altijd voor Elixir in combinatie met Amazon Web Services (AWS). Dit doen we altijd in combinatie met een verspreiding middels Docker containers. Omdat back-end applicaties ontzettend klein en snel zijn hoeven er ook geen grote resources van AWS te worden gevraagd, wat resulteert in lage kosten.

Elixir is hét ideale platform als back-end voor een app of website.

Waarom YipYip als back-end ontwikkelaar?

  • We gaan voor een langdurige relatie met onze klanten zodat we echt het verschil kunnen maken op de middel-lange termijn, we zien dit als essentiëel om goed ondersteunde back-ends op te leveren.
  • We verdiepen ons écht in de materie van het bedrijf zodat we optimale systemen kunnen ontwikkelen die goed aansluiten bij de doelstellingen van de organisatie.
  • We hebben enkel in-house developers met brede kennis van back-ends, API's en server omgevingen.
  • Onze ontwikkelaars zijn zeer gedreven in alle diensten van AWS en zetten altijd schaalbare systemen op.
  • YipYip innoveert mee door gebruik te maken van de nieuwste techniek, ook op het gebied van native (iOS en Android) apps en te experimenteren met alles wat app ontwikkelaars tot nu beschikking krijgen.

Interesse?

Wilt u een back-end applicatie laten ontwikkelen in Elixir en Phoenix? Of heeft u een web-based applicatie waar u ondersteuning voor zoekt?

Neem contact met ons op