1 poin oleh GN⁺ 2024-02-08 | 1 komentar | Bagikan ke WhatsApp
  • Dukungan untuk IE 10 ke bawah dihapus, dan dukungan untuk Edge Legacy, iOS <11, Firefox <65, serta Android Browser juga dihentikan
  • API yang sudah berstatus deprecated selama beberapa versi dihapus: jQuery.cssNumber, jQuery.cssProps, jQuery.isArray, jQuery.parseJSON, jQuery.nodeName, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.trim, jQuery.fx.interval
  • push, sort, splice, yang merupakan metode Array internal pada prototipe jQuery, dihapus sehingga berpotensi berdampak pada plugin yang bergantung pada metode tersebut
  • Override lama jQuery pada urutan event terkait focusout, blur, focusin, focus dihapus, dan browser selain IE mengikuti urutan W3C saat ini: blurfocusoutfocusfocusin
  • jQuery.ajax kini mendukung data biner dan FormData, dan perilaku sebelumnya yang menganggap tipe data tidak dikenal lalu mengonversinya menjadi string diganti menjadi penanganan otomatis
  • Perilaku jQuery.ajax yang secara otomatis menaikkan request menjadi JSONP saat dataType: "json" dan callback diberikan bersama-sama telah dihapus
  • Sumber jQuery dimigrasikan dari AMD ke ES modules, dan alat packaging beralih dari RequireJS ke Rollup
  • Dukungan Trusted Types ditambahkan, sehingga HTML yang dibungkus dengan TrustedHTML dapat digunakan sebagai input untuk metode manipulasi jQuery tanpa melanggar directive CSP require-trusted-types-for
  • Sebagian besar request skrip asinkron diubah agar menggunakan tag <script>, sehingga menghindari error CSP akibat penggunaan skrip inline
  • Deferreds dan Callbacks dihapus dari build slim, sehingga ukurannya menjadi di bawah 20k bytes berdasarkan gzip dan sekitar 8k gzipped bytes lebih kecil dibanding build reguler
  • Jika membutuhkan dukungan IE11, konfigurasi yang disarankan adalah menggunakan build main alih-alih build slim atau menambahkan polyfill native Promises
  • Panduan upgrade komprehensif akan dipublikasikan sebelum rilis resmi, dan jQuery Migrate plugin akan disiapkan untuk membantu migrasi
  • Rilis beta tersedia di jQuery CDN dan npm, sementara CDN pihak ketiga tidak akan meng-host beta dan akan meng-host rilis resmi 4.0.0 nanti

1 komentar

 
GN⁺ 2024-02-08
Komentar Hacker News
  • Jika ingin tahu apa yang masih membuat jQuery tetap hidup bahkan setelah 2024, perlu diingat bahwa WordPress masih mencakup lebih dari 1/3 web dan sebagian besar instalasi serta sangat banyak pluginnya sangat bergantung pada jQuery
    Bagus bahwa penghapusan API atau fungsi yang akan ditinggalkan terus berjalan, dan kemungkinan besar jQuery akan tetap dominan di web selama beberapa tahun ke depan

    • Selain itu, jQuery itu hebat
      Selama kira-kira 15 tahun terakhir, industri terlalu tenggelam dalam framework JavaScript yang terlalu rumit dan mencolok, padahal untuk 99% halaman web, semua JavaScript yang dibutuhkan hanyalah binding dinamis pada form yang dibuat secara dinamis, penanganan status error, dan beberapa panggilan Ajax, sementara sisanya sering kali berlebihan
      Industri tampaknya akan bergerak menjauh dari kompleksitas React menuju kesederhanaan seperti htmx, Phoenix LiveView, Ruby on Rails Turbo, dan ya, jQuery biasa
    • Apa pun kata orang, jQuery tetap kuat, penting, dan berpengaruh
      Jika jQuery dihapus dari semua perangkat lunak, cukup banyak situs web di seluruh internet akan berhenti berfungsi
    • Ini bukan cuma masalah WordPress
      Perusahaan tempat saya pernah bekerja dulu menjalankan produk SaaS enterprise dengan puluhan ribu baris kode jQuery
      Kecuali benar-benar diperlukan, tidak akan ada penulisan ulang ke framework JS modern. Sebagian besar kode itu ditulis lebih dari 10 tahun lalu untuk memenuhi kebutuhan pelanggan tertentu, dan argumen bahwa memakai framework modern akan membantu rekrutmen juga tidak berlaku. Perusahaan hanya membayar engineer frontend sekitar 75 ribu hingga 90 ribu dolar, tingkat keluar-masuk karyawan rendah, dan sebagian besar engineer saat ini sudah bekerja lebih dari 5 tahun
      Yang terpenting, stack saat ini berjalan dengan baik dan pelanggan lama juga puas. Sebagian besar rekayasa perangkat lunak terjadi dalam bisnis yang membosankan seperti ini di kota-kota dengan biaya hidup jauh lebih rendah daripada pusat big tech seperti Bay Area atau Seattle
    • Developer WordPress itu seperti tukang ledeng di industri teknologi
      Tidak glamor, tetapi orang yang dibutuhkan sangat banyak sehingga tetap bisa menghasilkan banyak uang
      Kalau suatu hari saya pensiun dari dunia startup big tech yang mengejar tren terbaru, saya ingin mencari nafkah dengan jujur membuat situs WordPress dan selesai kerja setiap hari jam 3 sore
    • Beberapa waktu lalu saya sempat ingin memposting ini ke HN, tetapi belum jadi: saya masih belum menemukan model pemrosesan/rantai event dan bubbling yang bagus yang memungkinkan anggota DOM dan instance abstract class sama-sama bisa memicu event yang saling dapat dipertukarkan
      Saya sudah membuat event dispatcher sendiri di sana-sini, tetapi jQuery melakukan bagian ini dengan benar. Bahkan sekarang saya hampir hanya memakai jQuery untuk event handling, tetapi itu sangat berguna sehingga tetap saya sertakan di hampir semua proyek sisi klien
      Yang ingin saya tanyakan adalah apakah ada yang tahu library ringan yang bisa menangani $(window).trigger('click') dan $(myClassInstance).trigger('myCustomEvent',{data}) dengan API yang sama, termasuk listening asinkron
      Berkat munculnya fetch() dan selector CSS, bagian lain dari jQuery sepertinya kini sudah tidak terlalu diperlukan, tetapi rasanya tidak perlu menciptakan ulang roda. Sebelum bilang bahwa class instance yang mendispatch event adalah code smell, untuk membangun framework reaktif dari nol hal itu memang diperlukan
      Misalnya, class komponen dasar saya mendengarkan custom resize event tertentu yang terjadi pada layar yang memuat dirinya, dan layar itu hanya mengirim event ke komponen yang perlu menata ulang bagian dalamnya tanpa menggulir layar. Class layar mendengarkan window.resize, tetapi hanya mendispatch saat tata letak benar-benar bermasalah. Menempelkan listener resize DOM terpisah untuk setiap komponen ke window jelas tidak masuk akal
  • Saya heran karena di HN masih terus ada orang yang memandang jQuery sekadar sebagai library pemilih DOM
    Padahal sebenarnya ini adalah kumpulan alat yang didukung luas dan sangat stabil, yang menyediakan bukan hanya pemilihan DOM tetapi juga manipulasi atribut, request Ajax, penanganan event, animasi, hingga fungsi utilitas umum
    Dan bahkan kalau ada fitur native yang bisa menggantikan jQuery, API-nya belum tentu sehalus itu
    Jika pekerjaan Anda hanya perlu menambahkan sedikit fungsionalitas di atas HTML sisi server dan tidak sampai membutuhkan framework UI JS penuh, jQuery adalah dependensi yang stabil, tepercaya, kompatibel lintas browser, dan biayanya kecil

    • Beberapa tahun lalu saya meninggalkan jQuery dan beralih ke JavaScript murni, dan tidak pernah menoleh lagi
      Native JS sudah punya semua yang dimiliki jQuery, biasanya hanya tanpa tumpukan plugin yang dikelola buruk dan setengah jadi. Plugin seperti itu biasanya hanya melakukan hal yang ingin mereka lakukan dan tidak banyak membantu di luar itu
      Selector murni memang lebih bertele-tele, tetapi editor kode yang lumayan umumnya bisa menutupinya dengan kecepatan input yang sama. Bukan mau berdebat, tetapi saya benar-benar tidak begitu paham mengapa masih banyak orang memakai jQuery
      https://youmightnotneedjquery.com/
    • Kalau melihat demografi penulis di HN, itu sebenarnya tidak terlalu mengejutkan
      Begitu butuh sesuatu yang sedikit lebih dari pemilihan DOM, banyak orang langsung mengambil framework JS besar yang sedang ngetren saat itu, dan memang selalu begitu
    • Mengatakan “orang-orang yang melihat jQuery cuma sebagai library pemilih DOM”, lalu setelah itu justru mendaftar pemilihan dan fungsi-fungsi native
    • Jauh lebih mudah memasukkan jQuery ke dalam proyek
      Tidak perlu build tool dan segala kerepotan yang ikut menyertainya. React juga bisa dipakai seperti itu, tetapi fitur yang disediakan jelas bukan pembanding yang setara
  • Di dunia ketika banyak orang berusaha keras menghapus jejak terakhir jQuery, saya sungguh penasaran siapa yang masih aktif mengembangkan dengan jQuery saat ini
    Sebagian besar hal yang dulu dilakukan dengan jQuery sekarang sudah ada di browser, dan menurut saya contoh paling kuat adalah querySelectorAll

    • Saya sudah bertambah tua dan teknologi baru jadi kurang menarik, jadi promise, await, dan async di JS native terasa jauh lebih rumit dibanding $.ajax()
      Saya memang mencoba membiasakan diri dengan pure JS di beberapa proyek pribadi kecil, tetapi bagi saya, menangani ini dengan $.ajax() adalah cara yang langsung jalan seperti memori otot
      Lagi pula, mungkin hanya sekitar 20 orang yang benar-benar memakai kode manipulasi DOM yang saya tulis. Saya bukan orang UI melainkan backend, hanya saja saya juga menulis frontend karena tidak ada orang lain yang mengerjakannya
    • Berdasarkan survei Stack Overflow tahun lalu, jQuery adalah yang ketiga paling populer
      https://survey.stackoverflow.co/2023/#section-most-popular-t...
    • Saya baru saja mengerjakan penghapusan sisa-sisa terakhir React di sebuah perusahaan dan menggantinya dengan HTMX
      Secara pribadi, saya melihat HTMX sebagai penerus spiritual jQuery dalam beberapa hal
    • Saya juga sedang aktif berusaha menghapus jQuery, tetapi tampaknya orang-orang sudah terbiasa dengan alat itu, dan karena ada biaya untuk menulis ulang, tidak cukup ada kemauan atau alasan bisnis untuk benar-benar menghapusnya
      Memulai proyek baru dengan jQuery memang terasa meragukan, tetapi jelas ada pengembang yang jauh lebih terbiasa menyelesaikan sesuatu dengan gaya jQuery daripada cara JavaScript murni
    • Dipakai oleh solo developer atau pengembang tim kecil yang tidak suka toolchain modern
      Contoh bagusnya adalah levelsio: https://twitter.com/levelsio/status/1750175827197567165
      Saya juga termasuk kubu itu dan masih memakai jQuery
      SaaS saya saat ini adalah ekstensi https://www.snipcss.com yang tidak punya banyak kode UI, dan SaaS berikutnya akan menjadi ekstensi otomatisasi web berbasis ChatGPT yang UI-nya cukup banyak. Keduanya memakai jQuery
      Alasan utama saya tidak beralih ke pure JS dengan querySelectorAll adalah karena saya suka cara memasang event-nya, terutama karena bisa dipasang di parent untuk menargetkan elemen turunan yang ditambahkan secara dinamis, lalu function chaining-nya bagus, dan jumlah kodenya lebih sedikit daripada pure JS
  • Keren. Hanya saja saya terlalu lama menunggu 4.0 sehingga akhirnya membuat jQuery versi saya sendiri dengan beberapa perbedaan inti
    Untuk animasi, tween, dan timeline, saya memakai CSS murni alih-alih sistem kustom jQuery, menangani elemen tunggal dan daftar secara transparan, dan memilih pendekatan inline

    • Saya selalu merasa harus ada alternatif jQuery yang modern dan ringan seperti ini. Dibuat dengan baik, dan saya suka sintaksnya
      Saya juga sedang membuat sesuatu yang mirip, dengan tambahan inline event dan lebih dari sekadar metode array standar [0]
      Akan bagus jika ada tulisan atau screencast yang menjelaskan bagaimana locality of behavior diimplementasikan di surreal dan proyek pendamping css-scope-inline
      Saya ingin memahaminya agar bisa merawatnya dalam jangka panjang dan mungkin memakainya di proyek saya juga
      Saya juga ingin membahas filosofi tentang web. Sepertinya ada beberapa hal yang pandangan kita cukup selaras
      [0] https://hyperspace.so/All.js.png
  • Rasanya seperti kembali ke masa junior sekitar tahun 2008. Saya pernah berdebat sengit dengan tech lead soal menambahkan jQuery ke proyek
    Argumennya adalah ukuran library yang sudah diminimalkan, 40KB, akan menjadi beban terlalu besar bagi waktu muat halaman
    Lalu kami menghabiskan seminggu penuh menulis Ajax call secara manual dan menguji dukungan berbagai browser, tetapi pada akhirnya tetap gagal membuatnya berjalan di Internet Explorer 5
    Pada masa itu jQuery benar-benar menyelesaikan banyak sekali masalah pelik, dan akhirnya dia pun menambahkan library itu ke proyek

    • Orang-orang sering lupa soal ini, tetapi browser lama dulu sangat berbeda satu sama lain, dan jQuery, dalam hal itu, adalah satu-satunya lem yang benar-benar masuk akal untuk menyatukan codebase
    • Salut untuk tech lead yang sudah bertarung dengan baik
  • Kerja bagus tim jQuery. Saya rasa saya akan selalu menyukai jQuery
    Ini memang alat yang menyelesaikan pekerjaan

    • Bootstrap, PHP, JQuery, WP adalah stack orang-orang yang benar-benar menghasilkan produk nyata
  • Sekarang setelah dukungan browser untuk pemilihan DOM jauh lebih baik, saya penasaran kenapa orang masih memakai jQuery pada 2024
    Bukan mau merendahkan, dan saya justru merasa keren kalau pengembangannya masih berlanjut, tetapi saya bingung apa kasus penggunaannya

    • Ada beberapa selector yang cukup nyaman dan tidak didukung document.querySelector()
      Misalnya :selected, :checked, dan ada beberapa lagi yang memang saya temui beberapa kali
      Secara umum, API DOM bertentangan dengan hampir seluruh naluri saya tentang desain API yang baik. Saya juga punya keluhan soal API jQuery, tetapi tetap jauh lebih baik, dan alur baca-tulisnya jauh lebih alami
    • Mungkin karena proyek legacy
      Saya memelihara aplikasi web .NET tua berusia sekitar 15 tahun yang bergantung pada jQuery. Bermimpi melakukan refactor total atau rewrite ke sesuatu yang lebih modern seperti Web Components memang indah, tetapi kenyataannya itu tidak akan pernah terjadi
    • Dugaan saya, karena API-nya nyaman dan ekosistemnya sangat besar
    • Saya suka jQuery untuk halaman admin
      Jika itu halaman yang hanya dilihat 20 pegawai internal, jQuery sudah cukup ringan, bisa langsung dimuat dari CDN, tidak perlu transpile apa pun, dan pada dasarnya menangani semua yang dibutuhkan
  • Sebagai referensi, kami membangun seluruh editor drag-and-drop untuk platform low-code dengan jQuery
    Termasuk editornya, semua kontrol, yaitu komponen UI, dan tentu saja kode akhir yang dihasilkan juga sepenuhnya jQuery
    Namun para eksekutif perusahaan besar sering bertanya kepada sales engineer kenapa bukan React atau Angular dan sejenisnya
    Jadi saya benar-benar senang membaca bahwa jQuery masih sangat relevan seperti ini, dan senang karena co-founder sekaligus CTO kami terus mendukung pilihan ini tanpa berusaha memindahkan stack

  • Masih ingat saat jQuery pertama kali muncul
    Untuk meyakinkan rekan-rekan, saya sampai mengadakan presentasi internal berjudul “Don’t Fear the $” dan menjelaskan kelebihan yang ditawarkan jQuery

  • Saya ingat masa kejayaan jQuery, ketika kami memakainya sebagai pengganti Mootools
    Karena banyak orang sedang berpindah dari React ke HTMX, mungkin saja setelah berputar satu lingkaran, kita akan melihat web kembali memakai jQuery murni

    • Pernah melewati era yang mirip, tetapi saya tidak merindukan kekacauan itu
      Membayangkan membuat aplikasi modern hanya dengan jQuery—dengan aksesibilitas, dukungan mobile, pembaruan real-time, visualisasi, dan bahkan beberapa fitur PWA—terdengar benar-benar mengerikan
      Hype HTMX juga tampaknya sedang menunggu saat bertemu kenyataan. Cara memprogram aplikasi dengan atribut palsu mirip DSL sepertinya akan cepat terasa membosankan
    • HTMX mengingatkan saya pada Mootools
      Ini adalah library JS kecil yang sangat terspesialisasi
    • HTMX itu seperti $().load()
    • “Banyak” mungkin agak berlebihan