Dzięki Javascript i frameworkom, takim jak jQuery, masz pełną elastyczność i pełną kontrolę. Z rozszerzeniami itp. Tracisz dużo kontroli i musisz dostosować się do frameworka. Z JSF całkowicie tracisz kontrolę i musisz całkowicie dostosować się do frameworka. Jesteś przywoływany w cyklach życia itp. Iw końcu nie masz kontroli, kiedy można nawiązać połączenie z serwerem, a kiedy nie. Jeśli masz robić coś, co jest uważane za „wyjątkowe”, jesteś w bardzo trudnej sytuacji. A w świecie JSF nawet takie podstawowe rzeczy, jak wielokolumnowe sortowanie tabel lub pola, w których można wpisać tylko ograniczony zestaw znaków (np. Pole liczbowe), są uważane za „specjalne”.
Jednak im większa masz elastyczność, tym więcej błędów lub złych praktyk możesz popełnić. Wysoka elastyczność działa tylko z wysoce inteligentnymi programistami, inni zmienią projekt w niewyobrażalny koszmar.
Ale z JSF i jego ograniczoną elastycznością, zawsze jest tylko kilka (lub nawet tylko jeden) poprawny sposób na zrobienie czegoś. Jesteś bardzo ograniczony, nie możesz tworzyć skrótów, musisz pisać więcej XML itp. - ale dostosowując się do standardu, masz lepszą kontrolę nad kodem, który stworzą niedoświadczeni lub nisko wykwalifikowani programiści. W rezultacie duże korporacje kochają JSF, ponieważ jest dla nich „bezpieczniejszy”.
Kiedy przeniosłem się z GWT do JSF, byłem zszokowany, jak wiele rzeczy, co było dla mnie naturalne, zostało uznanych za wysoce nietypowe, a ile prostych rzeczy jest tak trudnych do osiągnięcia. Co więcej, nawet wprowadzenie najmniejszych zmian, takich jak dodanie znaku ':' po etykiecie, która w aplikacji opartej na GWT / jQuery zmieniałaby jedną etykietę generującą funkcję, wymagało zmiany dziesiątek plików ze zlokalizowanymi właściwościami, co nie było nawet brane pod uwagę przez ktoś oprócz mnie dziwny ...