Nó phụ thuộc vào những gì bạn muốn làm (như đối với hầu hết các công cụ).
Nếu bạn muốn tìm hiểu chi tiết về phát triển web, hãy sử dụng nhiều thủ thuật (đôi khi khác nhau) của môi trường trình duyệt và các tính năng mới nhất của chúng, hãy can đảm chiến đấu với các thủ thuật nhỏ khiến ứng dụng web của bạn trở nên 'tuyệt vời', GWT sẽ luôn theo cách của bạn: nếu bạn có thời gian và kinh nghiệm, bạn có thể làm tất cả và nhiều hơn nữa với đôi tay của mình. Và vâng, có nhiều bộ công cụ khác sẽ giúp bạn trong quá trình lập trình bằng JavaScript.
Tuy nhiên, nếu bạn muốn tạo một GUI "không lạ mắt", nhưng ổn định cho ứng dụng của bạn "nên" và trong hầu hết các trường hợp thực sự giống nhau và trông giống nhau trong các trình duyệt khác nhau mà không cần thủ thuật, thì GWT là tốt sự lựa chọn, tốt nhất tôi biết về. Giải thích: Google chắc chắn có động lực để giữ cho nó đồng bộ với hầu hết các trình duyệt và các công nghệ mới nhất và chắc chắn có đủ tài nguyên để thực hiện. Vâng, bạn tuân thủ một người khổng lồ khác thay vì làm công cụ của riêng bạn. Câu hỏi: công việc của bạn là gì? Để cung cấp dịch vụ tương tự cho cơn thịnh nộ lớn nhất của người dùng thông qua giao diện web với nỗ lực nhỏ nhất - hoặc tạo ra một cổng web sáng bóng, đặc biệt có các tính năng thú vị nhất trên các nền tảng mới nhất.
Lý do +1: Tôi nghĩ sẽ có ích khi giữ ứng dụng của bạn trong một cơ sở mã và một ngôn ngữ. Bạn có thể thực hiện thủ thuật gọn gàng trong các tập lệnh cơ sở dữ liệu - nhưng bạn tự khóa máy chủ db đó. Bạn có thể thực hiện các công cụ bên ngoài với tập lệnh shell hoặc tệp bó - nhưng bạn tự khóa hệ điều hành. Bạn có thể triển khai một số logic của bộ điều khiển trong JavaScript để cung cấp giao diện máy khách phong phú trong trình duyệt - nhưng bạn có thể tự khóa mình trong một trình duyệt. Đối với mọi trường hợp, không dễ để giữ chúng đồng bộ với các yêu cầu và cấu trúc dữ liệu ứng dụng cốt lõi (và có lẽ khó nhất là môi trường trình duyệt + công cụ JS thay đổi liên tục). Tôi tin rằng nếu ứng dụng cốt lõi là trong Java, thì tất cả mọi thứ phải có trong Java - với một phần rất nhỏ các trường hợp khi bạn thực sự phải đưa một phần logic vào môi trường khác.
Tôi đã chọn GWT vì câu trả lời của tôi cho các câu hỏi trên - và đó là điều tôi muốn làm: trong khoảng 2 tuần sau khi cài đặt, tôi có giao diện web chấp nhận được cho hệ thống giám sát máy chủ nội bộ - mặc dù tôi đã có kinh nghiệm với Swing. (Không, tôi chưa sử dụng giao diện mặc định và có, tôi đã sử dụng CSS và các lớp để trình bày thông tin logic :-))
Kiểm tra các nhiệm vụ hiện tại và theo kế hoạch của bạn - và chọn công cụ phù hợp cho chúng.