Saya akan mulai dengan mengatakan bahwa saya penggemar berat GWT, tapi ya ada banyak jebakan, tetapi kebanyakan jika tidak semua yang bisa kami atasi:
Masalah: Waktu kompilasi yang lama, seiring proyek Anda tumbuh, demikian juga jumlah waktu yang dibutuhkan untuk mengkompilasinya. Saya pernah mendengar tentang laporan kompilasi 20 menit, tetapi rata-rata laporan saya sekitar 1 menit.
Solusi: Pisahkan kode Anda ke dalam modul terpisah, dan beri tahu semut untuk hanya membangunnya ketika diubah. Juga saat mengembangkan, Anda dapat mempercepat waktu kompilasi secara besar-besaran hanya dengan membangun untuk satu browser. Anda dapat melakukan ini dengan memasukkan ini ke file .gwt.xml Anda:
<set-property name="user.agent" value="gecko1_8" />
Di mana gecko1_8 adalah Firefox 2+, ie6 adalah IE, dll.
Masalah: Mode yang dihosting sangat lambat (setidaknya pada OS X) dan tidak cocok dengan perubahan 'hidup' yang Anda dapatkan ketika Anda mengedit hal-hal seperti JSP atau halaman Rails dan tekan refresh di browser Anda.
Larutan: Anda dapat memberikan memori lebih banyak kepada mode yang dihosting (biasanya saya dapatkan untuk 512M) tetapi masih lambat, saya telah menemukan begitu Anda mendapatkan cukup baik dengan GWT Anda berhenti menggunakan ini. Anda membuat banyak perubahan, kemudian kompilasi hanya untuk satu browser (umumnya kompilasi bernilai 20-an) dan kemudian tekan refresh di browser Anda.
Pembaruan: Dengan GWT 2.0+ ini tidak lagi menjadi masalah, karena Anda menggunakan 'Mode Pengembangan' yang baru. Ini pada dasarnya berarti Anda dapat menjalankan kode langsung di browser pilihan Anda, jadi tidak ada kehilangan kecepatan, plus Anda dapat firebug / memeriksanya, dll.
http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM
Masalah: Kode GWT adalah java, dan memiliki mentalitas yang berbeda untuk meletakkan halaman HTML, yang membuat mengambil desain HTML dan mengubahnya menjadi GWT lebih sulit
Solusi: Sekali lagi Anda terbiasa dengan hal ini, tetapi sayangnya mengubah desain HTML ke desain GWT selalu akan lebih lambat daripada melakukan sesuatu seperti mengubah desain HTML ke halaman JSP.
Masalah: GWT membutuhkan sedikit perhatian, dan belum menjadi arus utama. Berarti sebagian besar pengembang yang bergabung dengan tim Anda atau mengelola kode Anda harus mempelajarinya dari awal
Solusi: Masih harus dilihat apakah GWT akan lepas landas, tetapi jika Anda adalah perusahaan yang mengendalikan siapa yang Anda pekerjakan, maka Anda selalu dapat memilih orang yang mengetahui GWT atau ingin mempelajarinya.
Masalah: GWT adalah palu dibandingkan dengan sesuatu seperti jquery atau javascript biasa. Dibutuhkan lebih banyak pengaturan untuk mewujudkannya daripada hanya menyertakan file JS.
Solusi: Gunakan perpustakaan seperti jquery untuk tugas-tugas kecil dan sederhana yang cocok untuk itu. Gunakan GWT ketika Anda ingin membangun sesuatu yang benar-benar kompleks di AJAX, atau di mana Anda harus meneruskan data Anda bolak-balik melalui mekanisme RPC.
Masalah: Terkadang untuk mengisi halaman GWT Anda, Anda harus melakukan panggilan server saat halaman pertama kali dimuat. Mungkin menyebalkan bagi pengguna untuk duduk di sana dan menonton simbol pemuatan saat Anda mengambil data yang Anda butuhkan.
Solusi: Dalam hal halaman JSP, halaman Anda sudah dirender oleh server sebelum menjadi HTML, jadi Anda benar-benar dapat melakukan semua panggilan GWT saat itu, dan pra-memuatnya ke halaman, untuk pemuatan instan. Lihat di sini untuk detail:
Mempercepat Pemuatan Halaman dengan melakukan pra-serialisasi panggilan GWT Anda
Saya tidak pernah punya masalah CSS mendesain widget saya, di luar kotak, custom atau lainnya, jadi saya tidak tahu apa yang Anda maksud dengan menjadi perangkap?
Mengenai kinerja, saya selalu menemukan bahwa kode GWT yang dikompilasi cepat, dan panggilan AJAX hampir selalu lebih kecil daripada melakukan seluruh halaman refresh, tapi itu tidak benar-benar unik untuk GWT, meskipun paket RPC asli yang Anda dapatkan jika Anda menggunakan bagian belakang JAVA cukup ringkas.