Op dit moment lijkt de hele wereld om AngularJS te draaien: programmeurs willen er in programmeren, bedrijven willen alleen nog webpage apps in Angular, en recruiters weten niet waar ze de Angular developers vandaan moeten halen. Het lijkt wel als of we het nieuwe Macromedia Flash hebben ontdekt anno 2016. Maar is Angular wel de oplossing of waait het net zo snel over als Flash?

In de praktijk wordt AngularJS afgekort. Angular is een javascript library ontwikkeld door o.a. Google om op een “eenvoudige” manier web applicaties te kunnen bouwen. AngularJS is een framework specifiek voor Single Page Apps (SPA) en is niet bedoeld voor webpagina’s.

Om applicaties te kunnen bouwen worden in HTML een aantal specifieke attributen geplaatst, waarna er door javascript en de Angular library interactiviteit aan toegevoegd wordt.

Er is een reden dat het in Nederland niet uitpuilt van de Angular developers. Angular is een relatief jong framework en heeft een behoorlijke steile leercurve. Daarnaast vereist het een aantal jaren programmeerervaring. De documentatie is niet echt gebruiksvriendelijk en dus moet je als programmeur behoorlijk je best doen om het onder de knie te krijgen.

Daarnaast zien zien veel traditionele backend-developers het als een front-end applicatie, front-end developers het als een backend applicatie. Zo zwart-wit is het niet, het is front-end en een beetje back-end.

Zoals eerder gezegd is Angular niet bedoeld voor je complete website maar voor Single Page Apps (SPA). Maar wat zijn dan SPA’s? Dat kan bijvoorbeeld een reken tool zijn of een storelocator. Dit zijn pagina’s die in een keer laden alle informatie ophalen en behoorlijk wat interactie met de bezoeker kunnen bevatten. Omdat de bezoeker niet de pagina verlaat maar alles op die ene pagina doet noemen we dat SPA.

Het Angular Framework kan er voor zorgen dat gebruikers op een generieke manier interacteren met bijvoorbeeld formulieren op je website. Deze generieke manier moet je echter wel zelf definiëren en ontwikkelen. Angular levert de tools en zelf kun je elementen en componenten definiëren die je vervolgens naar keuze kun inzetten en combineren.

Dat is lastig te zeggen, er zijn namelijk meerdere afwegingen. De eerste vraag is hoeveel SPA pagina’s er zijn binnen je website. En in hoeverre je deze generiek kunt maken.

Daarnaast kan het zijn dat je al een prima oplossing hebt of dat je niet verwacht dat er op korte termijn veel zal veranderen op je SPA pagina’s.

Begin je een nieuwe website met veel SPA pagina’s dan kun je Angular overwegen, maar Angular is niet het enige framework dat deze interactie mogelijk maakt. Bekende andere frameworks zijn Ember.js en Meteor.js die in meer of mindere mate hetzelfde faciliteren.

Stel je kiest er voor je om Angular toe te passen op je nieuwe website. Hoe zit het dan met duurzaamheid? Moet ik over een tijdje alles weer opnieuw laten ontwikkelen?

Die kans is enigszins aanwezig aangezien er binnen de AngularJS community veel discussie wordt gevoerd over de huidige opzet van Angular 1 en Angular 2. Het grote verschil tussen beide versies is dat men geprobeerd heeft de leercurve te vergemakkelijken en de performance te verbeteren. Nadeel hiervan is dat de huidige ontwikkelde code op de Angular 1 variant niet altijd compatibel is met de Angular 2 variant. Waardoor je niet gemakkelijk zou kunnen migreren naar nieuwere versies en de kans op herprogrammeren en ontwikkelen aanwezig is.

Angular kan een mooie toevoeging zijn op je website om gebruikers op een eenduidige manier te laten interacteren. Het kan er voor zorgen dat bijvoorbeeld je formulieren beheersbaar worden. En het kan het mogelijk maken dat je nieuwe technieken in de website kun toepassen. Je moet er wel in investeren omdat het niet out of the box bruikbaar is, en je zult goed moeten nadenken of de investering terug verdiend kan worden.

Of het een oplossingen is die voor jou geschikt is, valt niet gemakkelijk te beoordelen. Wel kun je een bewuste keuze maken van frameworks en de voor en nadelen tegen elkaar afwegen.
Wat is jou ervaringen met Angular en ontwikkelen? Gebruik jij het op je website of heb je het overwogen? Of welke prangende onbeantwoorde vragen heb je nog? Ik hoor het graag!