Con Javascript e framework come jQuery hai piena flessibilità e pieno controllo. Con ext ecc perdi molto controllo e devi adattarti al framework. Con JSF perdi totalmente il controllo e devi adattarti totalmente al framework. Vieni invocato in cicli di vita ecc. E infine non hai alcun controllo su quando la chiamata al server può essere effettuata e dove no. Se devi fare qualcosa di considerato "speciale", sei in una posizione molto difficile. E nel mondo JSF anche cose di base come l'ordinamento di tabelle a più colonne oi campi in cui è possibile digitare solo un set limitato di caratteri (come il campo numerico) sono considerati "speciali".
Tuttavia, più flessibilità hai, più errori o cattive pratiche puoi fare. L'elevata flessibilità funziona solo con programmatori altamente intelligenti, altri trasformeranno il progetto in un incubo ingestibile.
Ma, con JSF e la sua flessibilità limitata, c'è sempre solo pochi (o anche solo uno) modo corretto di fare qualcosa. Sei molto limitato, non puoi fare scorciatoie, devi scrivere più XML ecc. - Ma quando ti adatti allo standard, c'è un controllo migliore sul codice che i programmatori inesperti o poco qualificati produrranno. Di conseguenza, le grandi aziende amano JSF perché è "più sicuro" per loro.
Quando sono passato da GWT a JSF, sono rimasto scioccato, quante cose, che mi erano naturali, erano considerate altamente atipiche e quanto le cose semplici fossero così difficili da ottenere. Inoltre, anche le modifiche più piccole, come l'aggiunta del segno ":" dopo l'etichetta, che nell'app GWT / jQuery avrebbe modificato un'etichetta che generava una funzione, richiedeva la modifica di dozzine di file con proprietà localizzate, che non erano nemmeno prese in considerazione da chiunque tranne me strano ...