PietO schreef :
De grootte van de totale installatie van SignalK installation (incl. NodeJS) onder Windows 10 is verrassend: 246 MB.
In detail: 29.527 files in 7403 folders; dit lijkt niet erg KISS. Nog erger: er is geen deinstallatie procedure of executable dus niet erg aan te bevelen wat mij betreft. Misschien anders op RPI
Dat het explodeert in aantal bestanden en folders is een beetje eigen aan NodeJS.
NodeJS wordt niet gecompileerd tot 1 executable, maar de broncode wordt bij het opstarten geïnterpreteerd. Alle broncode moet dus altijd beschikbaar zijn, niet alleen van Signal K zelf, maar ook van alle packages waar het van afhankelijk is. Dat hoeft overigens niet te zeggen dat het daarmee automatisch heel inefficiënt is en heel veel CPU-power nodig heeft.
Voor stukken code die voor meerdere programma's nuttig kan zijn wordt vaak een package gemaakt, die dan wordt gepubliceerd npmjs.com. Die code kan dan met de Node Package Manager (NPM) toegevoegd worden aan een NodeJS programma. Dit kan heel handig zijn, en is als het goed gedaan wordt ook een vorm van KISS, want elk package is verantwoordelijk voor een relatief klein en simpel deel van de code.
Een nadeel is dat veel van die packages ook weer afhankelijk zijn van andere packages, die ook weer afhankelijk zijn van andere packages, etc. Signalk-server heeft 58 directe afhankelijkheden (dat is al best veel), maar met alle indirecte afhankelijkheden erbij worden dat 386 packages.
Voor veel problemen zijn ook meerdere packages beschikbaar die ongeveer hetzelfde doen, en met zoveel afhankelijkheden krijg je dan ook bijna altijd dubbele packages. Voor het parsen en formatteren van datum en tijd zijn er bijvoorbeeld twee packages geïnstalleerd als afhankelijkheid van Signal K:
Deze packages hebben vergelijkbare functionaliteit, maar signalk-server heeft gekozen voor 'moment', en een van zijn afhankelijkheden voor 'date-fns'.