Javascript vs. Formcalc
In Formularprojekten wie auch in anderen Softwareprojekten unterliegen Entwickler einer sogenannten Entwicklungsrichtlinie. Dieses Rahmenwerk gibt beispielsweise vor, wie mit globalen Variablen umgegangen, in welcher Form dokumentiert und wie Entwicklungsobjekte benannt werden sollen. Innerhalb dieser rahmengebenden Vorgaben handeln Entwickler in den ihnen gelassenen Freiheiten nach bestem Wissen und Gewissen. Der individuelle Entwicklungsstil eines Entwicklers prägt sich in den Entscheidungen, die ihm in diesen Freiräumen gelassen werden, aus.
Wahl der Skriptsprache
Eine wesentliche Entscheidung bei der Entwicklung von Adobe Forms, wenn diese nicht explizit durch eine Entwicklungsrichtlinie vorgeschrieben ist, ist die Wahl der Skriptsprache: Javascript oder Formcalc. Im Folgenden werde ich diese zwei Skriptsprachen gegenüberstellen und kurz erläutern, wie ich die Ausprägung des jeweiligen Vergleichsmerkmals bewerte. Als Vergleichsmerkmale dienen:
- Funktionsumfang
- Weiterentwicklung
- Performanz und Handhabung
- Dokumentation
Funktionsumfang
Hinsichtlich des Funktionsumfangs ist Javascript mächtiger als das eigens für die Formularentwicklung eingeführte Formcalc. Beispielsweise können wiederkehrende Aufgaben mit Javascript als function ausgegliedert werden. Dazu wird, wie in der nachfolgenden Abbildung dargestellt, ein Skriptobjekt angelegt, in welchem die gewünschte Funktion definiert wird. Der Aufruf findet dann wie gewohnt als Skript-Ereignis eines Objekts statt. Formcalc lässt die Definition eigener Funktionen vermissen. Eine mögliche Ursache des erweiterten Funktionsumfangs von Javascript wird im nächsten Abschnitt erläutert.
Weiterentwicklung
Die Weiterentwicklung des proprietären Formcalcs ist an Adobe gebunden, während Javascript zwar ebenso eine eingetragene Marke von Oracle ist, aber wesentlich mehr Verwendungszwecke als nur die Formularentwicklung aufweist. Infolgedessen besitzt Javascript einen ganz anderen Innovationstreiber als Formcalc. Allerdings birgt diese Eigenschaft auch Risiken. Bei Formcalc hat der Entwickler gegenüber Adobe immer die Sicherheit, dass das Script auch nach Aktualisierung des Adobe Document Services, des Adobe Livecycle Designer oder des Adobe Acrobat Readers funktioniert. Bei Javascript kann sich der Entwickler nur auf die Charakteristik des De-facto-Standards verlassen.
Performanz und Handhabung
Während Javascript über eine spezielle Laufzeitumgebung auf dem XFA-Prozessor ausgeführt wird, läuft Formcalc nativ auf diesem und greift ohne Umweg auf die Objekte des Formulars zu. Folglich ist die Performanz eines Formcalc-Skripts wesentlich besser als die eines äquivalenten Javascripts. Ebenso ist die Formcalc-Schreibweise aufgrund fehlender geschweifter Klammern (Akkoladen) kürzer und weniger fehleranfälliger als Javascript. Infolgedessen ist Formcalc hinsichtlich Handhabung im Formularumfeld meiner Meinung nach Javascript überlegen.
Dokumentation
Ausführliche Dokumentationen zu Javascript im Allgemeinen sind an vielen verschiedenen Stellen im Netz zu finden. Beispiele hierfür sind W3Schools und SELFHTML. Allerdings wird für die Mehrzahl der entwickelten Adobe Formulare nur ein relativ kleiner Funktionspool benötigt, wodurch eine formularbezogene Dokumentation zweckmäßig einzuschätzen ist. Obschon Adobe beide Skriptsprachen bei der Dokumentation berücksichtigt, liegt der Fokus seitens Adobe auf Formcalc.
Fazit
Javascript ist deutlich mächtiger als Formcalc und wird unabhängig von Adobe ständig weiterentwickelt, wodurch jedoch auch Gefahren entstehen können. Für komplexe, interaktive Formulare ist Javascript aufgrund des erweiterten Funktionsumfangs die richtige Skriptsprache. Bei den meisten SAP-Druckformularen, bei denen zusätzlich Performanz eine sehr wichtige Rolle spielt, ist Formcalc als Skriptsprache zweckadäquat. Einsteigern, die zuvor nicht mit Javascript gearbeitet haben, fällt zudem die Skriptentwicklung mit Formcalc aufgrund der einfacheren Handhabung und der besseren formularbezogenen Dokumentation leichter.
Letztlich ist die Wahl der Skriptsprache, wie eingangs behauptet, eine Sache des Entwicklungsstils. Ich persönlich arbeite momentan fast ausschließlich mit SAP-Druckformularen und entscheide mich dementsprechend regelmäßig für Formcalc. Um bei komplexen Formcalc-Skripten den Überblick zu behalten, benutze ich ein externes Sprachpaket für Notepad++, welches über “Sprachen” -> “Eigene Sprache definieren …” -> “Importieren” eingefügt werden kann (Javascript sollte bereits als Standard-Sprache vorhanden sein).
Stimmen Sie mit meiner Einschätzung überein oder bewerten Sie die oben beschriebenen Eigenschaften anders? Fragen und Bemerkungen können Sie wie immer als Kommentar hinterlassen.