Apa yang dimaksud Douglas Crockford ketika dia mengatakan jQuery tidak berskala? [Tutup]

32

Di bagian Tanya Jawab dalam pembicaraan ini , Douglas Crockford mengatakan bahwa jQuery tidak menskala serta beberapa perpustakaan populer lainnya. Apa yang dia maksud dengan itu, dan apa tentang perpustakaan lain yang membuat mereka lebih terukur?

MatrixFrog
sumber
Diskusi lebih lanjut tentang ini di JavaScript reddit: reddit.com/r/javascript/comments/h21vr/…
MatrixFrog
Tanpa menonton seluruh video, saya dapat mengatakan bahwa menggunakan jQuery dengan sendirinya tidak dapat menskalakan aplikasi satu halaman dengan baik. Alasannya adalah Anda tidak mendapatkan kerangka model-view-something untuk mengatur kode Anda. Kombinasikan jQuery dengan kerangka kerja struktural seperti Backbone.js , Knockout.js , dan / atau Sammy.js , dan skalanya memang sangat baik.
user16764
Belum pernah melihat pembicaraan, tapi 2c saya di sini adalah bahwa sifat plugin-centric dari beast dikombinasikan dengan kurangnya panduan dan alat untuk memuat dependensi mengarah ke aplikasi di mana Anda punya jQuery plugin soup ketika seseorang di tim membutuhkan beberapa plugin untuk tugas tertentu, kata plugin akan disertakan di seluruh aplikasi dan pada akhirnya Anda akhirnya memuat 342 plugin jquery berbeda di seluruh aplikasi. Ini adalah jenis sifat binatang - itu dirancang untuk membuat hal-hal skala kecil mudah dengan biaya tidak memiliki konsep hulu besar untuk grok.
Wyatt Barnett
4
Sangat mengherankan bahwa 3 dari 4 jawaban mulai dengan beberapa variasi "Saya belum melihat videonya". Bagaimana tepatnya Anda bisa mengklarifikasi apa yang dimaksud Mr. Crockford tanpa menonton videonya?
Corbin Maret
Yah, dia tidak banyak bicara. Seperti yang dikatakan salah satu penjawab, itu adalah semacam komentar yang begitu saja di bagian Tanya Jawab di bagian paling akhir. Tetapi Anda membuat poin yang bagus.
MatrixFrog

Jawaban:

41

Jika Anda menonton video, ia tidak berbicara tentang jQuery secara formal. Ini adalah respon cepat terhadap pertanyaan yang agak offtopic dari seseorang setelah presentasi .... pada akhir presentasi, sekitar menit 1:29.

Dia mengatakan banyak hal baik tentang jQuery. Bagian tentang itu tidak scaling dengan baik, dia bilang dia tidak berpikir jQuery berskala sangat baik untuk aplikasi yang sangat rumit (membandingkannya dengan hal-hal lain seperti YUI). .

jon
sumber
29
+1 untuk benar-benar menonton video sebelum mengirim tanggapan. (-:
KM.
3

Sulit bagi saya untuk mengatakan tanpa menonton video, tetapi dugaan saya adalah karena jQuery tidak menawarkan semua fitur dari kebanyakan perpustakaan lain yang membuat pemrograman JavaScript lebih mudah. Tujuan jQuery adalah untuk membuat manipulasi DOM lebih mudah dengan menyederhanakan pengalamatan elemen melalui penyeleksi CSS , dan menyediakan kerangka kerja yang mudah untuk mengubah elemen-elemen tersebut. Ia menawarkan beberapa fitur lain seperti permintaan Ajax , manajemen acara dasar, templating, dan beberapa fungsi dasar lainnya, tetapi hanya itu saja.

Perpustakaan lain seperti Prototipe , MooTools , Ext JS dan Dojo menyediakan banyak fungsionalitas lain untuk membuat objek, mengatur array & koleksi, memanipulasi string, dan melakukan semua hal sepele lainnya yang kita sebagai pemrogram harapkan dapat melakukannya.

Singkatnya, jQuery tidak memiliki alat yang diinginkan untuk aplikasi JavaScript skala besar. Sangat jarang untuk menemukan situs berat yang sangat JavaScript menggunakan jQuery, karena alasan ini. Misalnya, Mint.com dibangun di atas YUI . Layanan web MobileMe Apple berjalan pada SproutCore (situs utama Apple menggunakan Prototype).

Setidaknya, itulah yang saya pikir dia berarti.

ChiperSoft
sumber
1
Hm Saya cukup akrab dengan jQuery, tetapi tidak terlalu akrab dengan YUI atau kerangka JS lainnya. Jadi mungkin saya seharusnya bertanya, ada apa dengan YUI, Prototipe, dll. Yang membuat mereka bagus untuk membangun aplikasi web yang besar dan dapat diskalakan? Alih-alih bertanya apa jQuery tidak punya ...
MatrixFrog
6
"Sangat tidak biasa untuk menemukan situs yang sangat berat JS menggunakan jQuery" .... sementara kami membuat banyak hal, dapatkah Anda membuat sesuatu tentang YUI yang membutuhkan kurang dari 10mb file?
ken
@ken Jika Anda memuat seluruh perpustakaan YUI ke halaman Anda, maka Anda salah melakukannya. Ada alasan Yahoo menawarkan pemuat dinamis. Dan jika Anda tidak setuju dengan penilaian saya, berikan contoh sebaliknya. Tunjukkan kami aplikasi skala besar yang dibangun di jQuery.
ChiperSoft
4
Tentukan "skala besar" lalu. Tumpukan SE menggunakan jQuery.
ken
SE tidak didominasi oleh JS, ia menggunakan jQuery seperti kebanyakan orang menggunakan jQuery: Basic Event binding, permintaan AJAX sederhana, beberapa manipulasi DOM. Skala besar berarti seluruh aplikasi yang dibangun sepenuhnya di atas JS; situs berbasis non-halaman. Kita membicarakan hal-hal seperti yang saya sebutkan di atas (Mint.com & MobileMe), Cloud9 Editor, gMail, Mockingbird. Situs yang berada di atau di atas 1MB kode JS ditulis di rumah.
ChiperSoft
2

jQuery tidak memungkinkan Anda menggunakan kembali seperti MooTools misalnya.

Ini adalah keputusan filosofi / desain: jQuery tidak banyak kode untuk skenario api-dan-lupakan.

Ketika Anda sedang membangun pengalaman JavaScript yang tidak mencolok (biasanya hanya peningkatan halaman) ini berfungsi dengan sangat baik dan hanya membutuhkan sedikit kode. Saat Anda membuat Google Documents ... jangan terlalu banyak. Anda akan menginginkan lebih banyak konsep OOP yang diekspos proyek lain seperti warisan, mekanisme seperti antarmuka, dll ...

Kohen
sumber