@ticaki
Ja, das mit der Sinnhaftigkeit ist so eine Sache.
Bei mir haben sich mittlerweile über 100 Skripte angesammelt und es kommt immer wieder mal noch was dazu.
Und auch hier, ja, mir ist bewusst das 5 Instanzen vom Javascript-Adapter speichermäßig „teuer“ erkauft sind. Daher auch der eigene Pi als Slave. Performanceprobleme hatte ich dadurch bis dato noch keine, zumindest nicht bemerkt.
Was für mich nicht sinnvoll war / ist, ist mehrfach verwendeten Code zu kopieren oder parallel in Skripten zu haben, das macht aus meiner Sicht irgendwann die Wartung oder Ausrollung von Erweiterungen fast unmöglich.
Die Klassen und Module im großen Stil in global zu verpacken ist für mich auch keine sinnvolle Option. Auch wenn es vermutlich nicht soviel Performance kostet. Ich habe auch mehrere Funktionen die ich mehr oder wenige in jedem Skript in irgendeiner Art verwende, z.B. erweiterte Logging-Funktionen, die habe ich auch im global in zwei Closures zusammengefasst. Mir gefällt dabei aber nicht, das bei einer kleinen Änderung in einem globalen Skript alle Skripte in allen Instanzen neu starten und weiters auch nicht, dass ich da im Hauptskript irgendwas unsichtbar im Vorbau geschrieben habe (das ist aber eine persönliche Befindlichkeit).
Aber als Beispiel, ich habe ein Modul mit Funktionen zu diversen Farbwertumrechnungen. Diese benötige ich in 7 von den etwas über 100 Skripten. Dafür jetzt diese in global überall „mitzuschleppen“ widerstrebt mir irgendwie.
Aus diesem Grund ist für mich die Einbindung von Modulen und Klassen über require die sinnvollste Lösung.
Vor allem weil ich
alles an einem Platz im Javascript-Adapter habe,
nicht mit externen Files herumhantieren muss,
im Hauptskript immer genau sehe was ich über require eingebunden habe,
die Skripte aus meiner Sicht besser strukturieren und aufteilen kann
und auch die Sicherung mit allen Hauptskripten einfach mitläuft.
(und ja, das bietet global im Wesentlichen auch)
Aber wie geschrieben für mich. Ich denke es muss jeder für sich selbst die praktikabelste Lösung finden.