Onderwijstaal/Declaratief
Declaratief
[bewerken]Bij de ontwikkeling van een eigen taal voor leerprocessen zijn de voordelen van declaratief programmeren essentieel.
Beknoptheid
[bewerken]Een opmerkelijk voordeel van dit paradigma is de beknoptheid die het in de code brengt, mits de interpreter of engine bedreven is in het optimaal interpreteren van de declaraties. Deze beknoptheid is bijzonder gunstig bij het maken van een domeinspecifieke taal (DSL), omdat het een meer intuïtieve en leesbare verwoording van de domeinlogica biedt.
In tegenstelling tot Objectgeoriënteerd Programmeren (OOP), dat vaak ingewikkelde relaties en interacties tussen objecten met zich meebrengt, houdt de declaratieve aanpak de code overzichtelijk. OOP kan, indien niet nauwgezet beheerd, leiden tot 'spaghetti-code' — een verwarde en moeilijk te volgen codebase.
Resultaatgericht
[bewerken]Gezien de missie van Freell is de adoptie van declaratief programmeren een harmonieuze keuze. Het belichaamt eenvoud, elimineert onnodige franje en stelt gebruikers in staat om het leren met gemak te beschrijven. Deze rechtstreekse benadering stelt gebruikers in staat om zich te concentreren op het formuleren van wat ze willen bereiken op het gebied van leren, waarbij het 'hoe' aan de interpreter wordt overgelaten.
Effectiviteit
[bewerken]De intelligente interpreter van Freell vertaalt deze declaraties vervolgens naar tastbare outputs, zoals bouwstenen voor leergames, xAPI-opslag, Moodle-cursussen of API-responses. Dit proces legt de nadruk op het faciliteren van vrij leren. Het doel is om het ontwerpproces van leren te stroomlijnen en het intuïtief, effectief en gebruikersgericht te maken, wat perfect aansluit bij het ethos van onbelemmerd leren.
De Rol van OOP
[bewerken]Hoewel de Freell-taal declaratief is voor de eenvoud van de gebruiker, profiteert de onderliggende interpreter van een objectgeoriënteerde architectuur. Deze OOP-basis in de interpreter maakt een gestructureerde aanpak mogelijk voor het afhandelen van de diverse en potentieel complexe vertalingen naar verschillende outputs. Inkapseling, overerving en polymorfisme bieden een robuust raamwerk om de verschillende vertaalmodules efficiënt te beheren en uit te breiden.
