Pertanyaan Mengapa saya harus menggunakan jQuery bukan GWT? [Tutup]


Saya perlu memutuskan antara jQuery dan GWT untuk proyek baru saya.

Saya belum pernah memprogram JavaScript untuk sementara waktu, dan saya mencari GWT selama beberapa hari terakhir. Ini terlihat sangat luar biasa, menghasilkan semua JS yang berbeda untuk browser yang berbeda dan semua, namun:

  • berkembang di Java membutuhkan lebih banyak waktu daripada hal yang sama menggunakan jQuery (setidaknya untuk proyek ini)
  • dokumentasi buruk (misalnya, bagaimana saya harus tahu elemen mana yang harus saya gunakan saat mendesain halaman? - tidak ada cukup dokumentasi untuk ini)

Saya telah menggunakan jQuery untuk sebagian besar proyek saya dan itu cukup bagus.

Saya ingin meyakinkan klien bahwa jQuery lebih cocok untuk proyek ini dan saya perlu lebih banyak argumen untuk mendukung ini.


75
2017-07-30 08:44


asal


Jawaban:


Saya akan pergi dengan JQuery.

Saya pernah mengelola proyek GWT yang akhirnya memaksa saya menulis ulang dua kali. Pertama sebagai aplikasi GWT refactored, kedua di JQuery.

Saya belum menyentuh Javascript dengan serius untuk waktu yang sangat lama. Terakhir kali sekitar tahun 2002. Saya adalah pengembang Java sehingga kesan pertama saya tentang GWT sangat luar biasa. Tapi itu hanya kesan.

Masalah yang saya temukan dengan GWT:

  1. Ini memaksa Anda untuk mengikuti struktur klien / servernya. Pada akhirnya yang saya inginkan adalah AJAX dan widget yang bagus. Widget GWT sendiri tidak tampak bagus. Secara estetika, saya lebih suka Adobe Flex! Tetapi untuk menjaga perbandingan lebih dekat, UI JQuery terlihat lebih baik daripada GWT. Selain itu Anda memiliki dukungan Rol Tema yang indah dari JQuery.

  2. Saya sudah mencoba DWR. Itu bagus. Ini jauh lebih mudah untuk mengaktifkan AJAX dalam kode Java Anda menggunakan DWR daripada GWT.

  3. Jika Anda menggunakan GWT, akhirnya Anda akan dipaksa untuk mempelajari JavaScript. Arjen dari SpringSource pernah berkata tentang XML dan SOAP (meskipun bukan kutipan yang tepat): "Bagaimana Anda bisa mengembangkan WebServices dan tidak tahu XML? SOAP adalah XML. Anda tidak dapat menghindarinya". Hal yang sama dengan GWT. Ini masih pada akhirnya Javascript.

  4. Secara realistis, Javascript tidak sulit dipelajari dibandingkan Java. Lebih banyak orang tahu Javascript daripada Java. Bahkan desainer web pun mengetahuinya. Anda seorang programmer, dan Anda takut dengan Javascript?

  5. Kembali ke proyek yang saya tulis ulang. Ketika saya menulis ulang aplikasi GWT, butuh waktu hampir dua bulan untuk menulis ulang. Dengan JQuery, saya membutuhkan waktu dua minggu, dan saya berkarat dengan JavaScript.

  6. Dengan JQuery Anda tidak benar-benar menulis JavaScript hardcorde. Itu sebabnya Anda menggunakan JQuery di tempat pertama. Mempertahankan kode dengan GWT itu mengerikan. Anda ingin melihat perubahan terbaru yang Anda lakukan dalam kode ... pergi mengkompilasi ... tunggu GWT ... 5 menit ... bilas ... dan ulangi dan semoga tidak ada kesalahan. Jika ya, Anda akan dikompilasi ulang, dan menunggu 5 menit lagi. Bilas dan ulangi. Dengan JQuery mengubah garis, segarkan browser Anda. Selesai

Saya tahu saya tidak objektif di sini, tetapi saya hanya berbagi pengalaman saya :) Moral tidak perlu takut akan Javascript. Google tetap menggunakan Javascript


63
2017-12-19 14:36



Saya menyarankan menggunakan GWT untuk tim dengan orang-orang yang tidak mengerti JavaScript tetapi (mungkin) lebih nyaman dengan Java. Dengan GWT, Anda cenderung menghemat waktu berhari-hari jika tidak berminggu-minggu dalam pengujian kompatibilitas, dan akan menghindari banyak hal jebakan JavaScript umum orang-orang yang baru mengenal bahasa. GWT juga memiliki fitur pengemasan yang bagus untuk Sprite CSS, data yang disematkan, dan lebih.

Namun, jika Anda tahu dan memahami JavaScript, saya akan menggunakan JavaScript, apa pun pilihan perpustakaan Anda. Meskipun saya tidak memiliki kesempatan untuk memeriksa kode yang dihasilkan GWT terlalu dekat, saya melihat beberapa contoh di Google I / O, dan sementara itu terlihat semua permen dan berkilau, Anda cenderung membuat kode JavaScript yang lebih elegan melakukannya dengan cara yang biasa cara.


56
2017-07-30 09:38



Jika grup Anda paling familier dengan Java dan Anda berencana untuk melakukan fungsi sisi klien dalam jumlah yang signifikan maka Anda setidaknya harus mengevaluasi GWT. Jenis keamanan, Eclipse debugging dan kode bersama antara sisi-server / sisi-klien akan terasa nyaman bagi tim pengembangan Java Anda.

Namun, jika tim Anda digunakan untuk pemrograman JavaScript dengan jQuery atau pustaka JavaScript lainnya, maka mungkin lebih mudah untuk tetap menggunakan teknologi yang murni JavaScript. GWT memiliki cara mengambil alih sebagian besar halaman, yang tidak dikenal oleh sebagian besar pengembang JavaScript. Dengan mengambil alih halaman yang saya maksudkan, kode GWT biasa suka membuat Elemen DOM sendiri alih-alih menambahkan fungsi ke Elemen yang ada di halaman. Inilah sebabnya mengapa banyak aplikasi GWT memiliki layar "loading ..." ketika halaman pertama kali dimuat. Ini tidak perlu, tetapi ini adalah gaya paling umum dari pengembangan GWT.

Fakta bahwa kode yang dihasilkan keluar dari GWT kurang relevan untuk sebagian besar pengembang GWT. GWT memungkinkan Anda untuk mengkompilasi Java menjadi sesuatu yang setara dengan file java * .class normal tetapi dalam sintaks JavaScript yang dimengerti oleh browser web. GWT bertindak lebih seperti kompiler daripada generator kode yang digerakkan oleh template. Ada kalanya Anda perlu memeriksa kode yang dihasilkan tetapi untuk sebagian besar debugging Anda akan berada di Java melalui debugger Java Anda.

Hal lain yang perlu dipikirkan adalah bahwa terlepas dari teknologi sisi-klien yang Anda pilih, tim pengembangan Anda akan perlu terbiasa dengan HTML, JavaScript, CSS dan pemrograman peramban secara umum. GWT memungkinkan Anda menulis kode sisi klien di lingkungan Java yang sudah dikenal tetapi tidak menyembunyikan fakta bahwa Anda bekerja dari dalam browser.


18
2017-08-03 13:33



Pertama-tama membandingkan GWT dengan jQuery tidak masuk akal. Sementara jQuery dibangun untuk membuat peramban silang bekerja dengan DOM lebih mudah, GWT dibuat untuk membuat aplikasi web besar.

Jadi jika Anda sekelompok sisi statis dengan beberapa widget independen, seperti kalender, bilah geser, dan sebagainya, jQuery sudah cukup. Jika Anda ingin membuat aplikasi satu halaman, mungkin dengan tim besar, GWT adalah cara yang lebih baik. GWT memiliki banyak desain arsitektur yang baik di bawah kap, terutama membangun pola MVP, sistem template UI-Binder, dukungan i18n dll.

Jadi, karena pengembang JavaScript bekerja lebih dari setahun di aplikasi GWT yang besar, saya akan merekomendasikan agar tidak pernah membuat satu aplikasi halaman hanya dengan jquery karena tidak membangunnya. Jika Anda ingin menggunakan JavaScript, lihatlah backbone, spine, knockout atau dojo.

Btw, sebaik arsitektur GWT dibangun, Anda akan memiliki banyak overhead JAWA. Jadi jika proyek Anda sedang berkembang, waktu untuk mengkompilasi properti css dan i18n Anda akan datang menyebalkan.


15
2017-12-04 11:14



"Kuda untuk Kursus"

Pilih mana yang paling masuk akal untuk proyek tersebut. Beberapa hal yang perlu dipertimbangkan

  • Jangka waktu yang ketat dan lebih akrab dengan salah satu dari yang lain
  • Kecepatan dan pemeliharaan bagi pengembang lain untuk menggunakan alat yang dipilih. Prevalensi salah satu dari yang lain mungkin memiliki implikasi di sini juga
  • Miliki kode apa pun yang dapat digunakan sudah ada dalam proyek, mis. plugin, fungsi utilitas, dll.

Tanpa mengetahui secara spesifik tentang apa proyek itu, apa pengalaman Anda dan seberapa terbuka klien untuk menggunakan teknologi / kerangka kerja yang berbeda, tidak akan ada jawaban yang menentukan di sini.

Buatlah daftar argumen-argumen yang menarik untuk salah satu dari yang lain, seperti yang saya telah mulai di sini dan kemudian diskusikan dengan orang lain yang terlibat dalam proyek untuk sampai pada suatu kesimpulan.


10
2017-07-30 09:00



Jawabannya tidak mudah. Jawabannya adalah, tergantung":

GWT:

  • jika Anda tahu dan suka Java
  • jika kode server Anda juga ditulis di Java, menulis kode klien di Java memungkinkan untuk menggunakan kode yang sama pada klien dan server
  • jika Anda menyukai hal-hal yang disediakan oleh bahasa-bahasa yang diketik dengan kuat: pengecekan jenis waktu-kompilasi, refactoring otomatis, pembuatan kode otomatis (Ctrl + 1 dalam Eclipse), penyelesaian kode (Ctrl + Spasi)
  • jika Anda menyukai pemrograman berorientasi komponen (misalnya MenuBar membuat menu)
  • jika kompleksitas GWT (dibandingkan dengan jQuery) tidak masalah bagi Anda
  • jika kode yang dihasilkan besar tidak menjadi masalah bagi Anda

jQuery:

  • jika Anda tahu dan suka JavaScript
  • Anda tidak perlu menggunakan kode yang sama pada klien dan server (mis. klien - JS, server - Java atau PHP)
  • jika Anda tidak perlu memeriksa jenis waktu-kompilasi, refactoring otomatis, dll
  • jika Anda tidak memerlukan pemrograman berorientasi komponen (untuk membuat komponen kompleks di jQuery Anda perlu membuat serangkaian divs, dan memanggil $ ("divs"). makeXXXXControl ())
  • jika Anda suka kesederhanaan (jQuery lebih sederhana daripada GWT)
  • jika Anda membutuhkan kode yang sangat kecil (mis. untuk membuat pemuatan situs web lebih cepat)

Secara pribadi saya akan merekomendasikan GWT untuk sebagian besar proyek, tetapi jQuery juga memiliki kelebihan dan beberapa orang mungkin lebih suka jQuery.


10
2017-07-15 20:32



Saya setuju dengan Russ Cam bahwa itu tergantung pada apa yang akrab dengan tim Anda. Ketika saya bekerja untuk aplikasi bisnis pribadi saya, saya lebih suka GWT. Saya menemukan javascript, bahkan dengan jquery, untuk memiliki sintaks berorientasi obyek yang mengganggu. Jika Anda memiliki aplikasi dengan 10.000 baris kode UI, jquery menganggap saya sebagai sesuatu yang akan menyebabkan kekacauan dalam mempertahankan kode dengan penggunaan ulang yang buruk.

Apakah ada yang tahu proyek skala besar yang dilakukan di jquery?

Saya pikir jika Anda mencoba untuk memeras setiap byte terakhir dari file yang dihasilkan, jangan gunakan pustaka apa pun dan tulis javascript dari awal (yaitu: efek fade halaman beranda Google).

Sesuatu untuk dipikirkan tentang javascript / jquery versus gwt. Jika Anda menggunakan prinsip dan pola desain berorientasi objek umum, Anda mungkin akan mendapatkan kode berkinerja lebih baik dengan gwt. Mengapa?

Mari ambil contoh polimorfisme. Jika Anda menulis aplikasi yang menggunakan polimorfisme berat dalam javascript, Anda akan mendapatkan manfaat dari maintanability dan penggunaan kembali kode yang disediakan ini. Namun, kode Anda juga akan mendapatkan pukulan kinerja menggunakan polimorfisme.

Sekarang, jika Anda menggunakan gwt, Anda juga akan mendapatkan manfaat dari maintanability dan kode reuse yang disediakan, TAPI kompiler gwt akan mengoptimalkan polimorfisme ke dalam penggunaan kelas beton, sehingga meningkatkan kinerja.


4
2017-08-02 22:20



Saya pikir GWT terlalu banyak abstraksi. Javascript sebenarnya adalah bahasa yang kuat. Anda dapat menulis kode berorientasi objek dan menggunakan ruang nama. Dengan perpustakaan seperti jQuery Anda tidak perlu khawatir tentang masalah kompatibilitas browser untuk sebagian besar dari apa yang Anda lakukan. Dengan semua alat pengembang peramban hebat yang tersedia (seperti Firebug) di semua peramban utama sekarang ini, sangat mudah untuk bekerja dengan javascript. Ketika kesalahan javascript terjadi saya dapat dengan mudah menentukan di mana itu terjadi dalam kode saya. Saya dapat melihat variabel dan mengetahui semua yang terjadi secara detail karena saya bekerja melawan kode yang saya tulis (tidak seperti GWT).


3
2018-01-05 12:58



Masalah utama yang saya lihat dengan GWT vs solusi Javascript asli (jQuery atau lainnya) adalah:

  • Ada proses tambahan yang memisahkan Anda dari produk akhir Anda. Anda mengembangkan aplikasi Anda di Java dan Anda debug kode Java, namun Anda merilis versi terjemahan mesin dari kode ini. Untuk aplikasi yang berukuran cukup besar, saya tidak dapat membayangkan bahwa Anda tidak perlu melakukan debug pada kode aktual yang berjalan di browser pada waktu tertentu, dan ini akan menjadi sakit kepala, karena ini bukan kode Anda.

  • Karena Anda menulis kode Anda di Java, Anda terbatas untuk menggunakan pustaka Java. Jika Anda menemukan beberapa perpustakaan JS yang Anda suka akan sangat sulit untuk menambahkannya ke proyek GWT Anda, Anda mungkin perlu menulis pembungkus Java untuk itu. Jika Anda mengembangkan JS asli Anda bisa menambahkannya ke proyek Anda.

  • JS adalah bahasa yang mengagumkan dalam dirinya sendiri, dengan model objek yang solid yang berbeda dari Java. Saya telah mengembangkan beberapa aplikasi di JS asli untuk webOS HP dan terkejut menemukan bahwa banyak prasangka yang saya miliki tentang bahasa itu tidak benar. Anda dapat menulis kode yang bersih, efisien dan mudah dipelihara di JS sebanyak yang Anda bisa di Java, dan jika Anda meluangkan waktu untuk memahami model objek JS, Anda bahkan tidak perlu menggunakan pustaka dukungan untuk meniru kelas / obyek yang lebih umum model seperti yang ada di Java dan C ++ di atas JS. Prototipe Javascript cukup keren.

  • Jika Anda pernah mempertimbangkan untuk merilis aplikasi Anda di platform seluler, maka aplikasi JS asli dapat dengan mudah dibungkus di dalam phonegap dan memiliki akses ke beberapa platform seluler, tanpa upaya tambahan. Ada wrapper GWT untuk phonegap juga, tetapi kembali ke item pertama saya, jika Anda memiliki pilihan untuk bekerja dengan hal yang nyata maka mengapa memilih solusi yang membutuhkan terjemahan / emulasi?

Semoga berhasil.


3
2017-09-13 01:42



Semua tips hebat dan tidak ada yang berbicara tentang JSNI! Fitur di GWT yang memungkinkan Anda menggunakan javascript jika Anda mau.

https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsJSNI


2
2018-05-24 01:19