Dengan Javascript dan kerangka kerja seperti jQuery, Anda memiliki fleksibilitas penuh dan kontrol penuh. Dengan ext dll Anda kehilangan banyak kendali dan harus beradaptasi dengan kerangka kerja. Dengan JSF Anda benar-benar kehilangan kendali dan harus sepenuhnya beradaptasi dengan kerangka kerja. Anda dipanggil dalam siklus hidup, dll. Dan akhirnya Anda tidak memiliki kendali kapan pun panggilan ke server dapat dilakukan dan di mana tidak. Jika Anda akan melakukan sesuatu yang dianggap 'istimewa', Anda berada dalam posisi yang sangat sulit. Dan di dunia JSF bahkan hal-hal mendasar seperti pengurutan tabel multikolom atau bidang di mana Anda dapat mengetik hanya sekumpulan karakter terbatas (seperti bidang angka) dianggap 'khusus'.
Namun, semakin banyak fleksibilitas yang Anda miliki, semakin banyak kesalahan atau praktik buruk yang dapat Anda lakukan. Fleksibilitas tinggi hanya berfungsi dengan pemrogram yang sangat cerdas, yang lain akan mengubah proyek menjadi mimpi buruk yang tak terkendali.
Namun, dengan JSF dan fleksibilitasnya yang terbatas, selalu hanya ada sedikit (atau bahkan hanya satu) cara yang benar untuk melakukan sesuatu. Anda sangat terbatas, Anda tidak dapat membuat pintasan, Anda harus menulis lebih banyak XML, dll. - tetapi ketika beradaptasi dengan standar, ada kontrol yang lebih baik pada kode yang akan dihasilkan oleh pemrogram yang tidak berpengalaman atau berketerampilan rendah. Akibatnya, perusahaan besar menyukai JSF karena 'lebih aman' bagi mereka.
Ketika saya pindah dari GWT ke JSF, saya terkejut, betapa banyak hal, yang menurut saya wajar, dianggap sangat tidak biasa dan betapa hal-hal sederhana begitu sulit dicapai. Terlebih lagi, bahkan membuat perubahan terkecil, seperti menambahkan tanda ':' setelah label, yang dalam aplikasi yang didukung GWT / jQuery akan mengubah satu label penghasil fungsi, memerlukan perubahan lusinan file dengan properti yang dilokalkan, yang bahkan tidak dipertimbangkan oleh ada yang aneh kecuali aku ...