Hallo in die Forumsrunde,
ich möchte jetzt einmal mit einigen grundsätzlichen Überlegungen, die mich schon seit einiger Zeit beschäftigen, hier eine Diskussion eröffnen. Nicht zuletzt hat mich eine vorhergehende Absprache mit Michael (m.s) dazu ermutig:
Wie wäre es, wenn unter diesem Thread oder -die weitere Entwicklung in der Zukunft wird es zeigen - sogar in einem separaten Themenkreis oder gar Unterforum alles Grundsätzliche und Allgemeines zum Thema Skripting, so unter dem Motto: Fragen, Anregungen, Probleme, Tipps und Tricks zur Skript-Erstellung zusammengetragen würde. Sicher könnten eine ganze Reihe von Forumsmitglieder einiges an Beiträgen leisten, die sonst einfach untergehen, weil sie möglicherweise zu wenig mit dem einen oder anderen sonstigen Threads in diesem Unterforum zu tun haben; diese sind ja in der Regel einem speziellen Skript zugeordnet. Ich gehe davon aus, auch einiges dazu beitragen zu können. Ein solcher Themenkreis könnte durchaus zur gegenseitigen Anregung und Vertiefung in die Materie beitragen; doch vor allem - denke ich -, würde es anderen dabei helfen, die Unsicherheiten und Schwierigkeiten zum Überwinden von Anfangshürden zu beseizigen.
Das Folgende soll jetzt keine allgemeine Schelte sein, aber ich kann mich häufig nicht des Eindrucks erwehren, als säßen manchmal einige unserer Spezialisten auf einem recht hohen Ross. Zumindest vermitteln sie des öfteren diesen Anschein. Viefach schreckt man davor zurück, sie mit Fragen oder Problemchen anzugehen. Entweder ist ihnen der Aufwand zu lästig, "dumme" Fragen zu erörtern oder sie wissen auch nicht weiter und genieren sich, es zuzugeben. Egal welchen Hintergrund die Fragen haben, ob es Bequemlichkeit oder Unvermögen mangels richtigem Suchbegriff ist, das Forum zu durchstöbern oder ob es schlicht und einfach wirkliche Unwissenheit von Neulingen ist. Wie dem auch sei, einigen unserer "Wissenden" ist vielfach nicht klar, dass mit schnoddrigen oder gar überheblichen Antworten mehr Porzellan zerschlagen wird als einen lobenswerten Beitrag zu hinterlassen; ihnen wird dabei gar nicht bewusst, dass überall nur mit Wasser gekocht wird.
Der lange Rede kurzer Sinn:
Sicher ist FFSF und erst recht FF keine Plattform zum Erlernen von Skripting-Kenntnissen oder gar des Programmierens - so wie JKS mir das auch schon mal vorgehalten hat. Doch wenn FF nun schon mal eine Schnittstelle zur Erstellung von Skripten - sei es nun in JS oder VBS - anbietet, dann sollte diese Thema auch nicht zu kurz kommen. In einem eigens dafür eingerichteten Thread oder Arbeitskreis könnten dann alle damit zusammenhängenden Fragen erörtert werden. Beispielsweise so etwas wie:
* Was ist die sinnvollere Alternative - VBS oder JS
* Vor- und Nachteile der einen oder anderen Script-Sprache
* Programmierstile, guter oder schlechter Prgm-Stil
* Lesbarkeit von Skriptings
* Vor- und Nachteile einer Verschlüsselung von Quelltexten
* Eventhandling und Dialoge in FF-Skripts
* Stolperstellen und Fehler, die häufig unterlaufen
* Erörterung, warum etwas so oder so gelöst wurde
* Erörterung von Lösungsmöglichkeiten
* fachmännische Ratschläge und Beispiele
* und, und, und
So ließe sich dieser Katalog bestimmt noch um einiges verlängern. Vieles was zu diesem Themenkomplex passt, hat sicher auch im "ImageSelector" seinen Niderschlag gefunden und alleine daraus könnte ich einiges an Beiträgen leisten.
So will ich beispielsweise mit ein paar Anmerkungen zum Thema Ausführungszeit und Geschwindigkeit beim Ablauf von Skripten anfangen:
Diese Thema ist etwas "hochgekocht" im Skript "ImageSelector", wo es mich selber auch stört, dass die Reaktion auf den Selektionsbutton ("okay" oder "bad") erst mit einer deutlichen Verzögerung ausgelöst wird. Am Anfang habe ich versucht, die Abfrageschleife im zugehörigen Dialog so weit wie möglich zu optimieren, wissend, dass ein Skripting-Programm ja "nur" interpretiert wird und nicht als kompiliertes Maschinenprogramm mit viel höherer Geschwindigkeit abläuft. Doch das Ergebnis der nicht unerheblichen Optimierung zeigte kaum einen nennenswerten Erfolg. Also musste der Grund für das relativ langsame Verhalten woanders liegen.
Nach reiflicher Überlegung bin ich zu dem Schluss gekommen, das es einfach mit dem Betriebssystem und den Betriebssystemroutinen für die Behandlung von Dialogboxen zusammenhängen muss. Die Ursache ist weder in FF noch im Skript zu suchen, zumal das Handling von Dialogboxen in FF ja offensihtlich recht zügig ans Betriebssystem weitergereicht wird. Und beim Betriebssytem kommt dann zum Tragen, dass bei einem Mausbutton-Event (Klick auf einen Dialogbutton) herausgefunden werden muss, in welchem Button befindet sich gerade der Mauszeiger. Dies ist umso aufwendiger, je größer die gesamte Dialogbox ist (im Falle der "4er"-Ansicht des ImageSelectors eben der gesamte Screen) und je mehr Elemente(Buttons) in relativ kleiner Größe im verhältnis zur Gesamtbox enthalten sind. Ein solcher Suchalgorithmus ist halt eben nicht einfach im Ablauf gestaltbar.
Noch ein Wort zur Interpretationsgeschwindigkeit von Skripten. Im Gegensatz früherer Erfahrungen zur Langsamkeit von Interpretern ist der Ablauf in den heutigen Maschinen und Interpretern doch schon sehr beachtlich. Allein die Tatsache, dass die heutigen Interpreter einen Vorabcheck der Syntax eines Skriptes vornehmen, erspart gegenüber den ursprünglichen Verfahren, dies während der Laufzeit zu erledigen, schon einiges an Ausführungszeit.
Das folgende VBS-Beispiel gestattet auf einfache Weise, selbst einmal die Arbeitsgeschwindigkeit bestimmter Script-Befehle zu ermitteln. Interessiert beispielsweise mal der Zeitaufwand, der für eine als Unterroutine aufgerufene Zählschleife von 0 bis 99 benötigt, kann dies mit folgender Befehlsfolge ermittelt werden:
Beim ersten Test traut man seinen Augen kaum. Das Ergebnis ist einfach nur 0. Man muss schon in einer zweiten Schleife den Aufruf beispielsweise 1 Million mal vornehmen, um überhaupt auf ein vernünftiges Messergenis zu kommen:
Bei meinem Rechner erhalte ich als Ergebnis ein wenig unter 5 Sekunden!
Das soll's im Augenblick gewesen sein. Was haltet ihr von derartigen Überlegungen? Wie ist eure Meinung dazu? Was habt ihr für Ideen?
Genug der vielen Worte; ihr seid dran!
Viele Grüße
Heinrich
ich möchte jetzt einmal mit einigen grundsätzlichen Überlegungen, die mich schon seit einiger Zeit beschäftigen, hier eine Diskussion eröffnen. Nicht zuletzt hat mich eine vorhergehende Absprache mit Michael (m.s) dazu ermutig:
Wie wäre es, wenn unter diesem Thread oder -die weitere Entwicklung in der Zukunft wird es zeigen - sogar in einem separaten Themenkreis oder gar Unterforum alles Grundsätzliche und Allgemeines zum Thema Skripting, so unter dem Motto: Fragen, Anregungen, Probleme, Tipps und Tricks zur Skript-Erstellung zusammengetragen würde. Sicher könnten eine ganze Reihe von Forumsmitglieder einiges an Beiträgen leisten, die sonst einfach untergehen, weil sie möglicherweise zu wenig mit dem einen oder anderen sonstigen Threads in diesem Unterforum zu tun haben; diese sind ja in der Regel einem speziellen Skript zugeordnet. Ich gehe davon aus, auch einiges dazu beitragen zu können. Ein solcher Themenkreis könnte durchaus zur gegenseitigen Anregung und Vertiefung in die Materie beitragen; doch vor allem - denke ich -, würde es anderen dabei helfen, die Unsicherheiten und Schwierigkeiten zum Überwinden von Anfangshürden zu beseizigen.
Das Folgende soll jetzt keine allgemeine Schelte sein, aber ich kann mich häufig nicht des Eindrucks erwehren, als säßen manchmal einige unserer Spezialisten auf einem recht hohen Ross. Zumindest vermitteln sie des öfteren diesen Anschein. Viefach schreckt man davor zurück, sie mit Fragen oder Problemchen anzugehen. Entweder ist ihnen der Aufwand zu lästig, "dumme" Fragen zu erörtern oder sie wissen auch nicht weiter und genieren sich, es zuzugeben. Egal welchen Hintergrund die Fragen haben, ob es Bequemlichkeit oder Unvermögen mangels richtigem Suchbegriff ist, das Forum zu durchstöbern oder ob es schlicht und einfach wirkliche Unwissenheit von Neulingen ist. Wie dem auch sei, einigen unserer "Wissenden" ist vielfach nicht klar, dass mit schnoddrigen oder gar überheblichen Antworten mehr Porzellan zerschlagen wird als einen lobenswerten Beitrag zu hinterlassen; ihnen wird dabei gar nicht bewusst, dass überall nur mit Wasser gekocht wird.
Der lange Rede kurzer Sinn:
Sicher ist FFSF und erst recht FF keine Plattform zum Erlernen von Skripting-Kenntnissen oder gar des Programmierens - so wie JKS mir das auch schon mal vorgehalten hat. Doch wenn FF nun schon mal eine Schnittstelle zur Erstellung von Skripten - sei es nun in JS oder VBS - anbietet, dann sollte diese Thema auch nicht zu kurz kommen. In einem eigens dafür eingerichteten Thread oder Arbeitskreis könnten dann alle damit zusammenhängenden Fragen erörtert werden. Beispielsweise so etwas wie:
* Was ist die sinnvollere Alternative - VBS oder JS
* Vor- und Nachteile der einen oder anderen Script-Sprache
* Programmierstile, guter oder schlechter Prgm-Stil
* Lesbarkeit von Skriptings
* Vor- und Nachteile einer Verschlüsselung von Quelltexten
* Eventhandling und Dialoge in FF-Skripts
* Stolperstellen und Fehler, die häufig unterlaufen
* Erörterung, warum etwas so oder so gelöst wurde
* Erörterung von Lösungsmöglichkeiten
* fachmännische Ratschläge und Beispiele
* und, und, und
So ließe sich dieser Katalog bestimmt noch um einiges verlängern. Vieles was zu diesem Themenkomplex passt, hat sicher auch im "ImageSelector" seinen Niderschlag gefunden und alleine daraus könnte ich einiges an Beiträgen leisten.
So will ich beispielsweise mit ein paar Anmerkungen zum Thema Ausführungszeit und Geschwindigkeit beim Ablauf von Skripten anfangen:
Diese Thema ist etwas "hochgekocht" im Skript "ImageSelector", wo es mich selber auch stört, dass die Reaktion auf den Selektionsbutton ("okay" oder "bad") erst mit einer deutlichen Verzögerung ausgelöst wird. Am Anfang habe ich versucht, die Abfrageschleife im zugehörigen Dialog so weit wie möglich zu optimieren, wissend, dass ein Skripting-Programm ja "nur" interpretiert wird und nicht als kompiliertes Maschinenprogramm mit viel höherer Geschwindigkeit abläuft. Doch das Ergebnis der nicht unerheblichen Optimierung zeigte kaum einen nennenswerten Erfolg. Also musste der Grund für das relativ langsame Verhalten woanders liegen.
Nach reiflicher Überlegung bin ich zu dem Schluss gekommen, das es einfach mit dem Betriebssystem und den Betriebssystemroutinen für die Behandlung von Dialogboxen zusammenhängen muss. Die Ursache ist weder in FF noch im Skript zu suchen, zumal das Handling von Dialogboxen in FF ja offensihtlich recht zügig ans Betriebssystem weitergereicht wird. Und beim Betriebssytem kommt dann zum Tragen, dass bei einem Mausbutton-Event (Klick auf einen Dialogbutton) herausgefunden werden muss, in welchem Button befindet sich gerade der Mauszeiger. Dies ist umso aufwendiger, je größer die gesamte Dialogbox ist (im Falle der "4er"-Ansicht des ImageSelectors eben der gesamte Screen) und je mehr Elemente(Buttons) in relativ kleiner Größe im verhältnis zur Gesamtbox enthalten sind. Ein solcher Suchalgorithmus ist halt eben nicht einfach im Ablauf gestaltbar.
Noch ein Wort zur Interpretationsgeschwindigkeit von Skripten. Im Gegensatz früherer Erfahrungen zur Langsamkeit von Interpretern ist der Ablauf in den heutigen Maschinen und Interpretern doch schon sehr beachtlich. Allein die Tatsache, dass die heutigen Interpreter einen Vorabcheck der Syntax eines Skriptes vornehmen, erspart gegenüber den ursprünglichen Verfahren, dies während der Laufzeit zu erledigen, schon einiges an Ausführungszeit.
Das folgende VBS-Beispiel gestattet auf einfache Weise, selbst einmal die Arbeitsgeschwindigkeit bestimmter Script-Befehle zu ermitteln. Interessiert beispielsweise mal der Zeitaufwand, der für eine als Unterroutine aufgerufene Zählschleife von 0 bis 99 benötigt, kann dies mit folgender Befehlsfolge ermittelt werden:
Code:
dim merkzeit
sub schleife
dim l_index
for l_index=0 to 99
next
end sub
merkzeit=timer
schleife
msgbox(timer-merkzeit)
Beim ersten Test traut man seinen Augen kaum. Das Ergebnis ist einfach nur 0. Man muss schon in einer zweiten Schleife den Aufruf beispielsweise 1 Million mal vornehmen, um überhaupt auf ein vernünftiges Messergenis zu kommen:
Code:
dim merkzeit,index
sub schleife
dim l_index
for l_index=0 to 99
next
end sub
merkzeit=timer
for index=0 to 1000000
schleife
next
msgbox(timer-merkzeit)
Bei meinem Rechner erhalte ich als Ergebnis ein wenig unter 5 Sekunden!
Das soll's im Augenblick gewesen sein. Was haltet ihr von derartigen Überlegungen? Wie ist eure Meinung dazu? Was habt ihr für Ideen?
Genug der vielen Worte; ihr seid dran!
Viele Grüße
Heinrich