Hallo
Der einsatz von Angularjs macht dann Sinn wenn man eine Web Anwendung und nicht nur eine Webside erstellen will.
Die Grenzen sind zwar fließend aber bei einer Webanwendung erstellt der Anwender aktiv Inhalt während er bei einer Webside vor allen Inhalte abruft.
Mittlerweile gibt es einiges an Browseranwendungen z.B. Chrome-Apps die zeigen was heute bei intensiven Javascript einsatz möglich ist.
Javascript hat einiges an Nachteilen, aber es ist die einzige Programmiersprache die der Browser versteht.
Setzt man Javascript nicht nur für die Validierung eines Eingabeformulars ein, sondern will man den Anwender das Gefühl geben er arbeitet mit einem richtigen Anwendung dann kommt man um eine gute Planung / Strukturierung nicht herum.
Angularjs kann dabei helfen. Angularjs ist z.B. von Grundauf als testbar entwickelt worden.
Da Javascript im gegensatz zu Lazarus keinen echten Compiler kennt führt jeder noch so kleine Tippfehler den bei Pascal der Compiler sofort melden würde zu einem Laufzeitfehler.
Will man bei einer komplexen Javascript Anwendung nicht bei jeder Änderung / Erweiterung anfangen zu beten ob noch alles funktioniert kommt man um autmatisierte Test nicht herum.
Damit die Testbarkeit wirklich funktioniert benötigt man Konsepte wie Dependency Injection / Inversion of Control ==> Das bietet AngularJS
Angularjs unterstützt das MVVM Konsept, und fördert dadurch eine saubere Trennung von Logik und View.
In Lazarus ist man verführt die Daten aus den Eingabefeldern direkt in der Logik zu verwenden, oder sogar Daten in Viewkomponenten zwischenzuspeichern.
Man kann in RAD Entwicklungsumgebungen jahrelang sehr umfangreiche Anwendungen in diesem Stil entwickeln, die erstaunliche Ergebnise liefern,
aber wie einfach es auch aussieht den Inhalt des Editfeldes direkt für die Berechnung (innerhalb des Formulars zu verwenden) irgendwann kommt man die Grenzen was man Pflegen kann ( vor allem wenn das Team größer wird, oder z.B. einer der Entwickler das Projekt verläßt)
In Angularjs liegen alle "Daten" im scope (viewmodel), AngularJS synchronisiert den Inhalt des scopes automatisch mit den Viewelementen und den Modeldaten, und zwar in beide Richtungen!
Klingt für jemand für den diese Art der Entwicklung neu ist komplett unverständlich / umständlich / unnötig.
Aber so reicht es z.B. den Scope (ein Object) zu sichern und man hat den kompleten Zustand z.B. eines Formulars gesichert.
Die Logik bleibt testbar, unabhängig von der View.
Mit Angularjs ist es möglich eigene HTML Tags (Directiven) zu erfinden also z.B könnte man innerhalb von HTML <Lazarus ....> .... </Lazarus> schreiben.
Richtig eingesetzt wird HTML dadurch besser lesbar /strukturierbar / erweiterbar, da eigene Komponenten Aufgaben übernehmen können.
(Angularjs ersetzt zur laufzeit mittels Javascript die eigenen Tags durch die hinterlegten Elemente).
Ohne Framework kommt man bei komplexen Webanwendungen nicht weit, und wenn nicht Angularjs (stammt immerhin von Google) was den dann ?
Ich habe mit Lazarus ein kleines Analysetool / Editor für Angularjs geschrieben. (Mein erster Versuch mit Lazarus)
https://github.com/rweinzierl1/AngularjsAnalyseVielleicht kanns jemand brauchen
mfg
Reinhold