Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Script Engines - Wer die Wahl hat hat die Qual! (https://www.delphipraxis.net/135756-script-engines-wer-die-wahl-hat-hat-die-qual.html)

Win32.API 17. Jun 2009 10:17


Script Engines - Wer die Wahl hat hat die Qual!
 
Hallo,

ich stehe gerade vor der Entscheidung mir eine Scriptengine aussuchen zu müssen, welche in einem größeren Projekt verwendet werden soll.

Da ich noch nie intensiv mit einer Scriptengine gearbeitet habe wende ich mich an euch.

Zur zeit stehen diese Scriptengines zur Auswahl:
  • Sysygy Script Engine (von littleDave aus der DP)
  • TMS Scripter Studio
  • RemObjects Pascal Script
  • paxCompiler
  • DelphiWebScript
  • FastScript
Es ist nur eine Auswahl, wenn Ihr noch bessere/nennenswerte Alternativen kennt würde es mich freuen, wenn Ihr sie mir mitteilt.

Die Hauptaufgaben der Scriptengine sind es Daten zu kontrollieren, modifizieren und GUI ausgaben (Logs). Integrierte RegEx-Expressions wären super, sind aber nicht zweingend nötig (können ja selber implementiert werden). Desweiteren wäre Pointer-Arithmetik wünschenswert.

Die Grammatik sollte Pascal ähneln, darf aber ruhig etwas fehler toleranter bzw "scriptartiger" sein (paxCompiler).

Jetzt seid Ihr gefragt, mit welcher Scriptengine habt Ihr gut Erfharungen gemacht (Stabilität, Performance und Usability)? Welche Engine ist euer Favorit und warum?


Grüße Win32.API

chaosben 17. Jun 2009 10:58

Re: Script Engines - Wer die Wahl hat hat die Qual!
 
Ich hab mal in einem Projekt mit FreePascal als "Script" gearbeitet. Das ist zwar nicht wirklich "Script" aber ging recht gut und vor allen Dingen schnell.

Intern habe ich den Code den der User geschrieben hat in eine EXE kompiliert, die dann per NamedPipe mit dem Hauptprogramm kommuniziert hat. Allerdings könnte man das auch in eine DLL kompilieren, die das Hauptprogramm lädt.

XiaN 17. Jun 2009 14:40

Re: Script Engines - Wer die Wahl hat hat die Qual!
 
Also aus Erfahrung kann ich eigentlich nur über TMS und den PaxCompiler berichten.

Der TMS Scripter ist sinngemäß das Wohnzimmer Script. Das merkste sofort, wenn du damit arbeitest.
Alles schön auf Run&Go getrimmt, was ja nicht unbedingt ein Nachteil ist, aber für unsere Zwecke ungeeignet war.

Vorteile
-> Sehr einfache Handhabung und trotzdem guter Funktionsumfang.
-> Funktioniert super in Verbindung mit deren IDE-Klone Komponenten

Nachteil
-> Kein primäres Projekt von TMS. Dadurch keine regelmäßigen Updates und vermutlich ( rein vom Gefühl und dem arbeiten mit den Komponenten ) eine eher "einfache" Umsetzung im Bezug auf die Codebasis.
-> Auch hat das mit den Updates zu Delphi 2009 einige Zeit gedauert.
-> Beim Support biste nur einer von vielen.
( -> Wenn ich mich recht erinnere, konnte man mit denen Events nicht direkt aus dfm und pas benutzen, sondern musste sich selbst darum kümmern, dass Button1OnClick dann auch zugewiesen wurde. Aber da bin ich mir nichmehr ganz sicher )

Momentan arbeiten wir mit dem PaxCompiler ( davor PaxScripter ). Wie du schon angemerkt hast, ist das ein vollwertiger Compiler und kein Scripter mehr. Das merkt man auch deutlich beim arbeiten mit der Komponente.

Vorteile
-> Funktionsmäßig gibts Multilanguage Support ( Basic, JavaScript, Pascal )
-> Der Programmierer selbst übernimmt den Support ( der is 24-7 online ) und kann dir bei Bedarf auch hochtechnische Fragen beantworten.
-> Pascalmäßig gibts nix zu meckern : Du hast bestimmt schon die Hilfe gelesen und der Funktionsumfang is wirklich beeindruckend : Du kannst z.B. in deinen "Scripten" auf alle Variablen und Typen der Hauptanwendung zugreifen usw.
-> Dazu gibts sehr regelmäßig Updates und bei Bugs meist innerhalb von 2-3 Tagen ne neue Version.

Nachteil
-> Die Lernkurve ist alles andere als symetrisch. Die ersten 2-3 Wochen wirst du wie der Prophet vorm Berg stehen. Auch ist das Arbeiten mit Forms ( wenn du die DFM für deine dynamisch via Script erstellten Forms irgendwo seperat hast ) mit einigen Kniffen behaftet.
-> Die regelmäßigen Updates ändern gelegentlich auch interne Abläufe d.h. du musst dein Programm dementsprechend anpassen und darauf achten, wenn du die Komponente updatest
-> Fetter Footprint an die EXE. Mit 3-4mb mehr biste da schon dabei.

Alternativ gibts da übrigens noch den Dream Scripter. Allerdings wurde der Support eingestellt, d.h. es werden auch keine Versionen über Delphi 7 unterstützt. Aber das sind die Urväter aller Delphi Script Componenten. Die waren ihrer Zeit schon arg voraus :-D

Ich seh grad ... Wer is er denn : :dance: ? o_O

Win32.API 17. Jun 2009 15:32

Re: Script Engines - Wer die Wahl hat hat die Qual!
 
Zitat:

Zitat von chaosben
Ich hab mal in einem Projekt mit FreePascal als "Script" gearbeitet. Das ist zwar nicht wirklich "Script" aber ging recht gut und vor allen Dingen schnell.

Intern habe ich den Code den der User geschrieben hat in eine EXE kompiliert, die dann per NamedPipe mit dem Hauptprogramm kommuniziert hat. Allerdings könnte man das auch in eine DLL kompilieren, die das Hauptprogramm lädt.

Auch wenn die Idee gar nicht so schlecht ist, ist es keine akzeptable Lösung für dieses Projekt. Trotzdem danke für deine Rückmeldung.


Zitat:

Zitat von XiaN
Also aus Erfahrung kann ich eigentlich nur über TMS und den PaxCompiler berichten.

Der TMS Scripter ist sinngemäß das Wohnzimmer Script. Das merkste sofort, wenn du damit arbeitest.
Alles schön auf Run&Go getrimmt, was ja nicht unbedingt ein Nachteil ist, aber für unsere Zwecke ungeeignet war.

Vorteile
-> Sehr einfache Handhabung und trotzdem guter Funktionsumfang.
-> Funktioniert super in Verbindung mit deren IDE-Klone Komponenten

Nachteil
-> Kein primäres Projekt von TMS. Dadurch keine regelmäßigen Updates und vermutlich ( rein vom Gefühl und dem arbeiten mit den Komponenten ) eine eher "einfache" Umsetzung im Bezug auf die Codebasis.
-> Auch hat das mit den Updates zu Delphi 2009 einige Zeit gedauert.
-> Beim Support biste nur einer von vielen.
( -> Wenn ich mich recht erinnere, konnte man mit denen Events nicht direkt aus dfm und pas benutzen, sondern musste sich selbst darum kümmern, dass Button1OnClick dann auch zugewiesen wurde. Aber da bin ich mir nichmehr ganz sicher )

Momentan arbeiten wir mit dem PaxCompiler ( davor PaxScripter ). Wie du schon angemerkt hast, ist das ein vollwertiger Compiler und kein Scripter mehr. Das merkt man auch deutlich beim arbeiten mit der Komponente.

Vorteile
-> Funktionsmäßig gibts Multilanguage Support ( Basic, JavaScript, Pascal )
-> Der Programmierer selbst übernimmt den Support ( der is 24-7 online ) und kann dir bei Bedarf auch hochtechnische Fragen beantworten.
-> Pascalmäßig gibts nix zu meckern : Du hast bestimmt schon die Hilfe gelesen und der Funktionsumfang is wirklich beeindruckend : Du kannst z.B. in deinen "Scripten" auf alle Variablen und Typen der Hauptanwendung zugreifen usw.
-> Dazu gibts sehr regelmäßig Updates und bei Bugs meist innerhalb von 2-3 Tagen ne neue Version.

Nachteil
-> Die Lernkurve ist alles andere als symetrisch. Die ersten 2-3 Wochen wirst du wie der Prophet vorm Berg stehen. Auch ist das Arbeiten mit Forms ( wenn du die DFM für deine dynamisch via Script erstellten Forms irgendwo seperat hast ) mit einigen Kniffen behaftet.
-> Die regelmäßigen Updates ändern gelegentlich auch interne Abläufe d.h. du musst dein Programm dementsprechend anpassen und darauf achten, wenn du die Komponente updatest
-> Fetter Footprint an die EXE. Mit 3-4mb mehr biste da schon dabei.

Alternativ gibts da übrigens noch den Dream Scripter. Allerdings wurde der Support eingestellt, d.h. es werden auch keine Versionen über Delphi 7 unterstützt. Aber das sind die Urväter aller Delphi Script Componenten. Die waren ihrer Zeit schon arg voraus :-D

Ich seh grad ... Wer is er denn : :dance: ? o_O

Mein erster Eindruck des TMS Scripters deckt sich zu 100% mit Deiner Aussage. Und nachdem ich mir den PaxCompiler genauer angeschaut habe wäre es reine Geldverschwendung.

Der PaxCompiler ist wirklich herrausragend! Das nenne ich mal Flexibilität! Ich glaube hiermit habe ich meine Entscheidung getroffen, der PaxCompiler ist für meine Bedürfnisse genau das richtige.

Vielen Dank für den Ausführlichen Vergleich der beiden Produkte.

--Win32

PS: Ich habe keine guten Erfahrungen mit Produkten gemacht, die nicht mehr weiterentwickelt werden, desewegen scheidet der Dream Scripter aus.

shmia 17. Jun 2009 15:42

Re: Script Engines - Wer die Wahl hat hat die Qual!
 
Man kann auch VBScript oder JavaScript vom Microsoft Scripting Host ansteuern.
Vorteil:
es gibt viel Literatur und Webseiten, die sich damit beschäftigen
normalerweise Bestandteil des OS
Nachteil:
Kommunikation mit der Anwendung muss über Übergabeparameter und/oder COM-Objekte erfolgen

PMM 17. Jun 2009 17:14

Re: Script Engines - Wer die Wahl hat hat die Qual!
 
Also ich arbeite mit RemObjects Pascal Script.
Vorteil: Freeware, Source verfügbar, aktive Community, sehr flexibel anpass-/erweiterbar,...
Nachteile: fallen mir so auf Anhieb nicht ein.
PMM

toms 17. Jun 2009 17:25

Re: Script Engines - Wer die Wahl hat hat die Qual!
 
Zitat:

Zitat von PMM
Also ich arbeite mit RemObjects Pascal Script.
Vorteil: Freeware, Source verfügbar, aktive Community, sehr flexibel anpass-/erweiterbar,...
Nachteile: fallen mir so auf Anhieb nicht ein.
PMM

Zitat:

Zitat von Win32.API
Desweiteren wäre Pointer-Arithmetik wünschenswert.

So viel ich weiß, werden Pointers nicht unterstützt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz