Với Javascript và các khung công tác như jQuery, bạn có toàn quyền linh hoạt và toàn quyền kiểm soát. Với ext của vv, bạn mất nhiều quyền kiểm soát và phải thích ứng với khung. Với JSF, bạn hoàn toàn mất kiểm soát và phải hoàn toàn thích nghi với khung công tác. Bạn được gọi trong vòng đời, v.v. và cuối cùng bạn không kiểm soát được khi nào cuộc gọi đến máy chủ có thể được thực hiện và ở đâu không. Nếu bạn phải làm điều gì đó được coi là 'đặc biệt', bạn đang ở trong tình trạng rất khó khăn. Và trong thế giới JSF, ngay cả những thứ cơ bản như sắp xếp bảng nhiều lớp hoặc các trường mà bạn chỉ có thể nhập bộ ký tự giới hạn (chẳng hạn như trường số) được coi là 'đặc biệt'.
Tuy nhiên, bạn càng linh hoạt, bạn càng có nhiều lỗi hoặc thực hành xấu. Tính linh hoạt cao chỉ hoạt động với các lập trình viên rất thông minh, những người khác sẽ biến dự án thành cơn ác mộng không thể kiểm soát.
Nhưng, với JSF và tính linh hoạt hạn chế của nó, luôn luôn chỉ có một vài (hoặc thậm chí chỉ một) cách chính xác để làm một cái gì đó. Bạn rất hạn chế, bạn không thể tạo các phím tắt, bạn phải viết thêm XML, v.v. - nhưng khi thích nghi với tiêu chuẩn, sẽ có sự kiểm soát tốt hơn về mã mà các lập trình viên chưa có kinh nghiệm hoặc có tay nghề thấp sẽ tạo ra. Kết quả là, các tập đoàn lớn yêu thích JSF vì nó 'an toàn hơn' đối với họ.
Khi tôi chuyển từ GWT sang JSF, tôi đã bị sốc, có bao nhiêu điều, đó là điều tự nhiên đối với tôi, được coi là rất phi thường và bao nhiêu điều đơn giản rất khó đạt được. Hơn nữa, ngay cả khi thực hiện các thay đổi nhỏ nhất, chẳng hạn như thêm dấu ':' sau nhãn, trong ứng dụng được cung cấp bởi GWT / jQuery sẽ thay đổi một nhãn tạo chức năng, yêu cầu thay đổi hàng tá tệp với các thuộc tính được bản địa hóa, thậm chí không được xem xét bởi bất cứ ai ngoại trừ tôi lạ ...