С Javascript и такими фреймворками, как jQuery, вы получаете полную гибкость и полный контроль.С ext и т. Д. Вы теряете много контроля и должны адаптироваться к структуре.С JSF вы полностью теряете контроль и должны полностью адаптироваться к среде.Вы задействованы в жизненных циклах и т. Д. И, наконец, у вас нет контроля, когда можно сделать вызов серверу, а где нет.Если вы хотите сделать что-то особенное, вы находитесь в очень тяжелом положении.А в мире JSF даже такие базовые вещи, как сортировка таблицы по нескольким столбцам или поля, в которых можно вводить только ограниченный набор символов (например, числовое поле), считаются «специальными».
Однако, чем больше у вас гибкости, тембольше ошибок или плохих практик вы можете сделать.Высокая гибкость работает только с очень интеллектуальными программистами, другие превратят проект в неуправляемый кошмар.
Но, с JSF и его ограниченной гибкостью, всегда есть только несколько (или даже только один) правильный способ сделать что-то.Вы очень ограничены, вы не можете делать ярлыки, вы должны писать больше XML и т. Д. - но при адаптации к стандарту, есть лучший контроль над кодом, который будут создавать неопытные или неопытные программисты.В результате, крупные корпорации любят JSF, потому что это «безопаснее» для них.
Когда я перешел из GWT в JSF, я был шокирован, как многие вещи, которые были для меня естественны, считались крайне нетипичными исколько простых вещей было так трудно достичь.Более того, даже внесение самых маленьких изменений, таких как добавление знака «:» после метки, которое в приложении с поддержкой GWT / jQuery будет изменять одну функцию, генерирующую метку, требует изменения десятков файлов с локализованными свойствами, которые даже не рассматривалиськто-нибудь кроме меня странно ...