Frameworks worden te pas en te onpas gebruikt. Er lijkt wel een soort wildgroei van allerlei raamwerken te zijn voor de programmeur. Frameworks om sites te bouwen, denk aan Symphony voor PHP, Ruby on Rails, Django en template engines zoals Smarty. En op javascript gebaseerde frameworks zoals React en Angular. Ik ben hier op terug aan het komen en in eerste instantie not to framework.

Een framework lijkt in eerste instantie vaak een geweldige tool en bereik je in korte tijd een leuk resultaat. Echter moet je je er van bewust zijn dat het framework wat je toepast niet het eeuwige leven heeft. Je bent afhankelijk van de ontwikkelaars van het framework dat je toepast. De makers van deze frameworks en engines hebben een bepaald doel voor ogen gehad wat voor hun blijkbaar werkte en die filosofie moet ook werken voor jouw team en projecten. Sommige frameworks hebben daarnaast een best hoge leercurve. Kijk bijvoorbeeld naar Angular (2 en hoger). Je bent daar best een tijdje mee bezig voordat je alle facetten van het framework door hebt en productief bent. Je leert er eigenlijk een taal en werkwijze bij.

Nog even over template engines waarvan Smarty een mooi voorbeeld is. Niet echt een framework maar kan wel in dezelfde 'categorie' meegenomen worden. Je hebt PHP, een prima taal om dynamische websites te bouwen. Je maakt een HTML pagina en plaats op bepaalde plekken dynamisch informatie met PHP. Dus de HTML pagina kun je zien als template die je vult met een scripting taal PHP. Waarom dan Smarty (een template engine) gebruiken? Je hebt al een template engine en dat is je PHP. Met PHP maar ook in andere scripttalen kun je prima een scheiding maken tussen inhoud, opmaak en dynamische elementen. Template engines zijn in mijn ogen dan ook kul.

Mijn advies is, bij kleine projecten not to framework. Creeer je eigen structuur in welke taal je ook prettig vind. Met een framework voeg je onnodig complexiteit toe en dat is voor kleine websites overkill. Bij grote complexe projecten kan een framework voordeel bieden. Het dwingt jou en/of je team in een bepaalde structuur te werken. Hiermee kun je gemakkelijker afdwingen dat iedere ontwikkelaar op de zelfde manier nieuwe onderdelen in het project bouwt. Kies dan wel voor een framework dat zich al min of meer bewezen heeft in de laatste jaren en waar actief aan wordt ontwikkeld zodat je ook de komende jaren op het gekozen framework kunt bouwen.