Apakah jQuery menghentikan diskusi JavaScript? [Tutup]

7

Ada lebih dari 100.000 pertanyaan tentang Stack Overflow yang ditandai sebagai pertanyaan terkait dengan pemecahan masalah / penggunaan JQuery. Bandingkan ini dengan 124.000 pertanyaan tentang stack overflow yang ditandai untuk masalah JavaScript. Kami sangat dekat dengan hampir setengah dari semua pertanyaan terkait JavaScript di Stack Overflow yang dikaitkan dengan JQuery (plus atau minus margin apa pun untuk beberapa kerangka kerja JS lainnya yang mendapatkan pertanyaan tentang SO).

Apa yang saya maksudkan adalah, jQuery bukan bahasa dan bukan semua dan mengakhiri semua kerangka kerja yang harus diterapkan untuk setiap skenario di mana JavaScript hadir, namun cepat menangkap (dan saya memprediksi akan segera gerhana) ) JavaScript sebagai sumber diskusi / penyelidikan di situs-situs seperti Stack Overflow.

Apakah jQuery membunuh bintang JavaScript? Apakah tidak ada lagi pemahaman yang kuat oleh generasi pengembang web berikutnya mengenai kekuatan, kesederhanaan, dan penggunaan JavaScript sebagai sarana untuk manipulasi DOM? Apakah ini hanya evolusi alami dari hal-hal dan sudut pandang yang saya sajikan khas dari ego coder (yaitu, apakah ini cara programmer perakitan melihat kerumunan .NET / Java / Web?) Atau apakah ini benar-benar awal dari akhir dari akhir pengembang JavaScript sejati?

Brian
sumber
6
Hai Brian. Pertanyaan ini kedengarannya cukup argumentatif dan mengundang diskusi. Pertanyaan seperti ini tidak disarankan di Stack Exchange. Apakah ada pengeditan yang dapat Anda lakukan untuk membuatnya kurang berorientasi pada diskusi? Terima kasih.
Adam Lear
2
@Anna Lear - Apologi saya - Saya menafsirkan FAQ tentang StackOverflow sebagai arah untuk mengirim pertanyaan di sini: • Pemrogram ahli yang tertarik dalam diskusi profesional tentang pengembangan perangkat lunak, tanyakan pada Pemrogram. - Saya tentu saja tidak ingin berkontribusi pada obrolan yang tidak berguna dan akan mengerti jika pertanyaannya dihapus. Saya pikir ini adalah forum untuk perdebatan yang lebih teoretis.
Brian
3
Saya juga ingin tahu mengapa pertanyaan saya bersifat argumentatif dan mengundang diskusi (oleh karena itu, tidak pantas), namun "apakah menurut Anda cin dan cout memiliki panah yang salah arah?" baik-baik saja? programmers.stackexchange.com/questions/101234/… . Tampak bagi saya bahwa ini memang akan menjadi forum untuk debat intelektual tentang pengembangan perangkat lunak, bukan hanya Q&A yang terbatas. - katakan saja ...
Brian
2
Saya pikir FAQ kami menangkap / mengkomunikasikan semangat dengan cukup baik.
Adam Lear
3
Saran, sangat kuat tersirat dalam pertanyaan, bahwa generasi saat ini menggunakan JQuery karena mereka tidak sebagus JavaScript seperti yang sebelumnya, adalah hal yang jelas untuk menunjuk dalam menjawab pertanyaan Anda tentang mengapa ini argumentatif. (FWIW Saya ingat hari-hari pra-JQuery, dan manipulasi DOM sama sekali tidak sederhana jika Anda ingin bekerja lintas-browser).
Peter Taylor

Jawaban:

1

Anda tentu bisa membuat argumen bahwa jQuery membunuh diskusi javascript, dan grafik tren ini akan mendukungnya: http://www.google.com/trends?q=jquery%2C+javascript

Cukup mudah untuk mengamati ini di papan pesan pilihan Anda juga. Kapan saja "bagaimana Anda melakukan xxx dalam javascript?" pertanyaan ditanyakan, Anda hampir dapat bertaruh bahwa jawaban akan berada dalam format "use jQuery and just do yyy".

Saya akan mengatakan ini lebih akurat untuk mengatakan bahwa sekarang lebih umum untuk membahas javascript dalam kerangka kerja tingkat yang lebih tinggi (apakah ini seperti jQuery / prototipe atau sistem gugur / backbone atau node.js atau ...)


sumber
3
The hanya menggunakan jQuery dan melakukan yyy jawaban dikenakan downvote otomatis dari saya untuk non-jQuery tagged SO pertanyaan.
Michael
@kekekela - mungkin dukungan paling cerdik untuk kedua sisi argumen. Saya akan mengundurkan diri dari counterpoint segera jika garis tren telah dibalik. Setidaknya saya tahu dari balasan bahwa ada banyak orang yang berbakat dan cerdas melengkapi kode mereka dengan jQuery, tidak mendasarkan setiap online mereka di dalamnya.
Brian
3
@StuperUser Ingatlah bahwa beberapa baris kode yang disimpan adalah kenyamanan bagi Anda pengembangnya, sementara 90kb adalah penalti bagi pengguna akhir Anda. Tentu saja tempat jQuery adalah dengan banyak manipulasi DOM atau peristiwa seperti yang Anda katakan, tetapi $(foo)menjadi jawaban SO standar untuk tugas-tugas sederhana seperti bagaimana saya mendapatkan semua yang ada <img>di halaman . Hukuman untuk pengguna akhir tidak pantas.
Michael
1
@Michael, saya setuju. Setiap kali beberapa baris kode yang disimpan di seluruh aplikasi, mereka telah dipertahankan, pengembang cukup terampil untuk menggunakan JS benar harus dipekerjakan / dilatih, dapat menambahkan hingga banyak waktu / uang di seluruh siklus hidup. Dengan kecepatan unduhan yang tinggi dan caching peramban, lebih dari 90kb dapat disimpan. Saya mengerti Anda tahu kapan harus menggunakannya dan kapan tidak, mari kita berharap lebih banyak pengguna memenuhi syarat jawaban mereka daripada default ke $('selector')dan mengharapkan upvotes.
StuperUser
1
@StuperUser +1 Sangat senang ketika ketidaksepakatan Internet, ketika dijelaskan, berubah menjadi kesepakatan alih-alih argumen.
Michael
12
  1. Tidak, jQuery tidak membunuh JavaScript, melainkan membuka bahasa.
  2. Ada Nodejs, yang menggunakan Javascript sebagai cli atau untuk skrip sisi server.

Tentang jQuery . Saya pemrograman dengan DOM API sejak tahun 2001 dan dapat meyakinkan Anda bahwa DOM API yang sederhana dan teruji seperti jQuery memungkinkan Anda bekerja lebih banyak pada masalah sebenarnya daripada pada API.

Saya juga memanipulasi DOM dalam Javascript mentah pada 2005, dan sebagian besar waktu saya habiskan untuk membuatnya bekerja lintas-browser.

Sebelum jQuery, banyak dari kita menghabiskan waktu untuk memperbaiki perbedaan browser dan bug, secara independen dan dengan sedikit berbagi kode. Kami mengulangi pekerjaan yang sama dan kesalahan yang sama berulang-ulang. jQuery membebaskan kami dari tugas ini. Saat ini, dengan banyak plugin jQuery, saya bekerja sebagian besar di bidang masalah saya, tetapi juga dapat melakukan manipulasi dokumen yang jauh lebih rumit. Hanya terbebas dari sakit kepala DOM saya bisa belajar kekuatan penutupan dan loop acara JS (harus melihat untuk programmer js!)

Kebanyakan programmer Javascript menggunakan jQuery untuk memanipulasi DOM, karenanya sebagian besar pertanyaan berkaitan dengan area ini dan jQuery.

Ada alternatif untuk jQuery:

  • Prototipe, memiliki banyak titik masuk (yang membingungkan), dan berisi bom waktu (Ini menambahkan beberapa metode pada objek bawaan, tetapi hanya yang belum ada dalam objek. Ketika pengembang browser mengimplementasikannya dalam waktu dekat) , objek akan berubah perilaku dan banyak situs akan berhenti bekerja. Pengembang harus segera memperbaiki situs web mereka.)
  • RightJS (tidak bisa mengatakan apa-apa, tetapi tampaknya memiliki API yang bagus)

Node.js adalah lingkungan yang berkembang pesat, dan dalam beberapa tahun ini dapat menjadi bahasa server utama. Kesan saya tentang itu adalah bahwa belum ada banyak fitur yang bisa membuat bahasa terlihat lebih elegan. Saat ini dibutuhkan banyak upaya untuk mengatur kode Anda. Tidak bisa mengatakan apakah itu dapat diperbaiki dengan kerangka kerja seperti jQuery atau hanya dengan versi bahasa baru, tetapi pastikan ini akan ditangani oleh seseorang, ada cukup momentum di sekitar Node.js dan JS secara umum.


sumber
Terima kasih atas jawaban anda. Saya harus menyampaikan bahwa Anda menyentuh sebagian dari apa yang saya lihat sebagai salah satu dari banyak mitos JQuery. Ada lebih dari 5000 pertanyaan di StackOverflow untuk "JQuery firefox" dan 5000+ lebih untuk "JQuery chrome". Lebih dari 3k untuk "JQuery IE". Sementara saya setuju dengan perspektif keseluruhan Anda di sini, saya pikir bagian dari apa yang membuat saya bertanya-tanya apakah JQuery merusak kumpulan bakat adalah ada volume orang yang kagum menemukan bahwa ada sesuatu yang tidak berfungsi pada satu browser yang dilakukan pada browser lain - dan mereka tidak tahu cara memulai pemecahan masalah itu. +1 untuk jawaban Anda.
Brian
Saya punya masalah dengan beberapa plugin yang tidak berfungsi dengan beberapa browser atau seperti yang diharapkan (seperti livequery yang tidak mengerti rantai filter). Saya memuat versi lengkap dari jQuery dan mendebugnya.
@ Brian - Saya berpendapat bahwa itu lebih berkaitan dengan fakta bahwa banyak orang yang menanyakan pertanyaan-pertanyaan itu tidak menyadari apa yang sebenarnya diperlukan untuk mendapatkan apa pun yang bekerja lintas-browser. Anda juga akan menemukan sejumlah besar barang-barang HTML atau CSS yang juga tentang beberapa bagian tidak bekerja lintas browser. Banyak dari penanya itu bahkan tidak tahu bahwa peramban memiliki alat pengembang untuk memecahkan masalah yang didasarkan pada peramban.
Shauna
8

Saya akan melihatnya lebih dekat ke perpustakaan standar di C ++ daripada dengan analogi .Net / Majelis. Atau lebih baik lagi, .Net dan C #. Tidak ada dalam spesifikasi C # yang menyatakan bahwa Anda harus menggunakan. Net, tapi itu terikat bersama-sama. Tapi bagaimanapun, untuk pertanyaan Anda, sebagian besar pengembang web tidak peduli tentang JavaScript.

Bahkan, saya berpendapat bahwa bagian manipulasi DOM JavaScript cukup mengerikan (terutama mengingat berbagai browser membuatnya susah untuk mendapatkan barang untuk bekerja di mana-mana). Saya tidak berpikir Anda bisa meletakkan sesuatu di sana dan menerima hasil yang lebih baik, tetapi selama bertahun-tahun itu adalah titik frustrasi (sekali lagi biasanya karena pembuat browser). Kebanyakan orang hanya akan meretas sesuatu bersama sebelum jQuery dan menyebutnya sehari (dan akan menyatakan diri mereka "ahli" sebagian besar waktu). jQuery hanya mengambil bagian-bagian yang tidak disukai dan menempatkan wajah yang lebih baik di atasnya. Karena itulah penggunaan utama JS untuk saat ini (manipulasi DOM), Anda akan melihat jQuery semakin banyak (atau kerangka kerja lain seperti Prototipe, dll.). Hanya agar Anda sadar saya tidak berpikir pengembang web rata-rata adalah pengembang JS yang hebat sebelum jQuery.

Yang sedang berkata, JavaScript berjalan dengan baik sebagai bahasa. Node.js adalah contoh yang baik untuk mengambil penggunaan sebagai bahasa aktual. Saya bahkan telah melihat menggunakannya sebagai bahasa skrip tertanam di beberapa aplikasi saya (hilang ke LUA, tetapi hanya karena LUA mengambil lebih sedikit waktu untuk menyiapkan).

JaCraig
sumber
3

Jquery mengabstraksi tugas-tugas yang paling menjengkelkan dan membosankan dalam mengembangkan javascript untuk situs web. Melintasi DOM adalah tugas berulang yang membutuhkan banyak kerja manual dengan sedikit manfaat dari melakukannya dengan cara yang sulit. Satu-satunya kasus di mana saya tidak menggunakan jQuery saat ini adalah versi mobile dari situs - Anda hanya tidak mampu membayar satu permintaan lagi dan 100 ribu di sana. Sama dengan memuat ajax.

Juga jQuery membuat pemrograman fungsional semu tampak menyenangkan. Ini memperkenalkan konsep fungsi sebagai objek kelas satu yang sangat intuitif bagi pengembang. Lemparkan beberapa efek eye candy dan beberapa plugin yang sangat bagus - alat kecil yang cukup mengesankan yang sangat cocok untuk tugas itu.

Javascript standar -> Jquery bagi saya terasa seperti bermigrasi dari C ++ dan mfc ke winforms dan C #.

Daniel Iankov
sumber
Sebagai catatan, saya paling suka jawaban ini. Itu jujur ​​dan memberi saya harapan bahwa jQuery sedang digunakan dengan tepat oleh beberapa orang di dunia - sebagai ekstensi, dan bukan yang gratis (+1 untuk akuntansi untuk unduhan js di ponsel). Saya menandai kekekela sebagai benar meskipun didasarkan pada mengutip statistik - meskipun 3% dari semua statistik dibuat.
Brian