Mit Javascript und Frameworks wie jQuery haben Sie volle Flexibilität und volle Kontrolle. Mit ext's usw. verlieren Sie viel Kontrolle und müssen sich an das Framework anpassen. Mit JSF verlieren Sie die Kontrolle und müssen sich vollständig an das Framework anpassen. Sie werden in Lebenszyklen usw. aufgerufen und haben schließlich keine Kontrolle darüber, wann der Anruf beim Server getätigt werden kann und wo nicht. Wenn Sie etwas tun wollen, das als "besonders" gilt, sind Sie in einer sehr schwierigen Position. Und in der JSF-Welt werden selbst grundlegende Dinge wie mehrspaltige Tabellensortierung oder Felder, in die Sie nur einen begrenzten Satz von Zeichen eingeben können (z. B. ein Zahlenfeld), als "speziell" betrachtet.
Je mehr Flexibilität Sie haben, desto mehr Fehler oder schlechte Praktiken können Sie machen. Hohe Flexibilität funktioniert nur mit hochintelligenten Programmierern, andere machen das Projekt zu einem unüberschaubaren Albtraum.
Aber mit JSF und seiner begrenzten Flexibilität gibt es immer nur wenige (oder sogar nur einen) richtigen Weg, um etwas zu tun. Sie sind sehr eingeschränkt, Sie können keine Verknüpfungen erstellen, Sie müssen mehr XML usw. schreiben. Wenn Sie sich jedoch an den Standard anpassen, können Sie den Code, den unerfahrene oder gering qualifizierte Programmierer erstellen, besser kontrollieren. Aus diesem Grund lieben große Unternehmen JSF, weil es für sie „sicherer“ ist.
Als ich von GWT zu JSF wechselte, war ich schockiert, wie viele Dinge, die für mich natürlich waren, als höchst untypisch angesehen wurden und wie viele einfache Dinge so schwer zu erreichen waren. Selbst wenn kleinste Änderungen vorgenommen wurden, z. B. das Hinzufügen eines ':' - Zeichens nach dem Etikett, das in der GWT / jQuery-App eine Funktion zum Generieren des Etiketts ändern würde, mussten Dutzende von Dateien mit lokalisierten Eigenschaften geändert werden, was von nicht einmal berücksichtigt wurde jemand außer mir seltsam ...