Mọi người đều thích tuyên bố jQuery đã chết.
Thế nhưng
– năm 2025.
Nó vẫn ở đây.
Không xuất hiện trong các bài phát biểu hội nghị, không đứng đầu bảng xếp hạng npm…
nhưng vẫn âm thầm chạy trong môi trường production trên~78% trong số 1 triệu trang web hàng đầu (W3Techs)tổng cộng hàng trăm triệu website.

Vậy có lẽ câu hỏi thực sự không phải là“tại sao jQuery vẫn tồn tại?”
mà là:

Tại sao chúng ta lại mong đợi mã cũ biến mất chỉ vì chúng ta tìm ra cách viết mã mới hay ho hơn?


Sau năm năm gián đoạn, tôi sẽ trở lại sân khấu hội nghị.
Vàongày 19 tháng 11, tôi sẽ phát biểu tạiJS Polandvề các chiến lược thực tế để di chuyển các hệ thống frontend kế thừa sang kiến trúc hiện đại.

Để chuẩn bị cho bài nói chuyện, tôi sẽ xuất bản một loạt bài viết ngắn về mã kế thừa, tái cấu trúc và di chuyển gia tăng — đây là bài đầu tiên trong loạt bài.

Nếu bạn có mặt ở đó, đừng ngại chào hỏi — tôi luôn sẵn sàng lắng nghe những câu chuyện kinh nghiệm về mã kế thừa 🛠️.


jQuery không “sống”
– nó đã đượccài đặt.

jQuery không thắng cuộc đua frontend.
Nó đã hoàn thành nó từ nhiều năm trước, được đưa vào production, và giờ đang ở chế độ bảo trì dài hạn…
giống hệt nhưCOBOLtrong các hệ thống tài chính.

Không aimuốnviết lại một backend ngân hàng COBOL cũ
– nhưng họ cũng không thể chỉ xóa nó đi.

jQuery cũng tương tự, chỉ là dành cho web.


🧠 Quan niệm sai lầm:
“JS hiện đại đã giết chết jQuery”

Đúng vậy
– trình duyệt cuối cùng cũng bắt kịp.

// jQuery$('#btn').on('click',()=>$('#box').addClass('active'));
Enter fullscreen modeExit fullscreen mode
// Modern JSdocument.querySelector('#btn').addEventListener('click',()=>{document.querySelector('#box').classList.add('active');});
Enter fullscreen modeExit fullscreen mode

API DOM gốc cuối cùng đã làm được gần như mọi thứ mà jQuery từng khắc phục.

✅ Bộ chọn truy vấn
✅ Thao tác lớp
✅ Ràng buộc sự kiện
✅ AJAX →fetch()
✅ Hoạt ảnh → CSS + Web Animations API

Vậy tại sao jQuery vẫn có mặt ở khắp nơi?

Bởi vìsửa chữa quá khứ đắt đỏ hơn nhiều so với xây dựng tương lai.


🧱 Sự thật khó chịu:
tái cấu trúc không mang lại thu nhập

Hầu hết mã jQuery không “tồi”.
Nó chỉcũ, rối rắm, ưu tiên DOM và không thể thay thế an toàn trong một lần.

Những trở ngại thực sự:

Vấn đề Lý do jQuery ở lại
🧩 Logic nghiệp vụ dính chặt vào DOM không có sự tách biệt rõ ràng để di chuyển
🔌 Plugin của bên thứ ba không có phiên bản cho React/Vue/Svelte
💸 Viết lại không có ROI “Hiện đang chạy tốt, đừng động vào”
🛒 WordPress, Shopify, Drupal hệ sinh thái được xây dựng trên jQuery
🧨 Rủi ro di chuyển bạn làm hỏng tính năng thanh toán → bạn mất tiền

Góc nhìn kinh doanh thật đơn giản một cách tàn nhẫn:

“Việc viết lại jQuery có mang lại doanh thu mới không?”
Không.Nó chỉ làm giảm nợ kỹ thuật.
Và nợ chỉ được trả khi nó bắt đầu gây hại.


📊 Kiểm tra dữ liệu:
framework chết nhanh hơn mã kế thừa

Thứ Tuổi thọ trung bình
JavaScript frameworks ~5–7 năm liên quan (React là một ngoại lệ hiếm hoi sống lâu hơn)
Ứng dụng thương mại thực tế 12–20 năm
Thị phần WordPress trên web ~43% (jQuery trong core)
Trang web vẫn sử dụng jQuery ~78% trong top 1 triệu

Framework đến rồi đi:
AngularJS (chết), Backbone (gần như chết), Ember (thở thoi thóp), Meteor (còn nhớ nó chứ?).

jQuery?
Không phát triển.
Không xu hướng.
Chỉ âm thầmtrên các máy chủ production, cung cấp sức mạnh cho mã kiếm ra tiền.


🧑‍🎓 Người mới có nên học jQuery vào năm 2025?

Câu trả lời ngắn gọn:Không.
Không phải là công cụ đầu tiên.
Bạn không học y khoa bằng cách nghiên cứu các thủ tục lỗi thờinhư điểm khởi đầu.

jQuery không dạy:

  • components
  • reactivity
  • state management
  • bundlers
  • SSR / hydration
  • scalable architecture

Nó dạy scripting DOM.
Và đó không còn là frontend hiện đại nữa.


🧑‍💼 Người có kinh nghiệm có nên hiểu jQuery?

Có.
Chắc chắn rồi.

Không phải để viết nó
– mà đểxóa nó một cách an toàn.

Một senior không thể đọc mã kế thừa chỉ đơn thuần là một React developer, không phải là một kỹ sư phần mềm.

Bạn không được trả tiền để xây dựng những thứ mới mẻ hào nhoáng.
Bạn được trả tiền đểgiữ cho những thứ hiện có tồn tại mà không làm hỏng production.

Kỹ năng senior thực sự ngày nay:

“Tôi có thể tái cấu trúc một tính năng nặng jQuery thành mã hiện đạimà không làm hỏng nút thanh toán.


🏗️ Tại sao việc loại bỏ hoàn toàn jQuery hiếm khi xảy ra

Bởi vì các quá trình di chuyển thực tế trông như thế này:

  1. Triển khai UI mới trong một framework
  2. Để các module jQuery cũ chạy song song (strangler)
  3. Hứa hẹn “chúng tôi sẽ dọn dẹp nó sau”
  4. “Sau” không bao giờ đến

Bạn không “gỡ bỏ jQuery”.
Bạnđóng gói nó, thu nhỏ nó, cách ly nó.
Và một ngày nào đó, sau 5+ năm, bạn nhận ra chỉ còn 3 widget cũ vẫn phụ thuộc vào nó…
và như vậy làđủ tốt rồi.

Đó không phải là sự lười biếng.
Đó là thực tế kinh tế.


🧩 WordPress:
vấn đề lớn không thể bỏ qua

  • ~43% website chạy trên WordPress
  • WordPress core vẫn cung cấp jQuery (đã cập nhật, nhưng vẫn bắt buộc)
  • Hàng chục nghìn theme/plugin phụ thuộc vào nó
  • Hầu hết sẽ không bao giờ được viết lại

Ngay cả khimọi frontend dev ngừng sử dụng jQuery ngay hôm nay, chỉ riêng WordPress cũng sẽ giữ nó tồn tại thêm một thập kỷ nữa.


🧨 Kết luận thực sự

jQuery không “sống” vì nó tốt.
Nó sống vìchi phí xóa nó cao hơn chi phí giữ nó.

Đó không phải là quyết định kỹ thuật.
Đó làkinh tế + quản lý rủi ro + sự hỗn loạn của di sản.


🔚 Phán quyết cuối cùng

jQuery có phải là tương lai?
Không.
Nó đã “chết”?
Cũng không.
Nó chính làCOBOL của frontend
– cũ kỹ, không cool ngầu, nhưng không thể thay thế trong hàng triệu hệ thống.

Phát triển frontend hiện đại đòi hỏi hai kỹ năng:

✅ Xây dựng những thứ mới đúng cách
✅ Hiểu đủ về những thứ cũ để không phá vỡ chúng


🤔 Đến lượt bạn

  • Bạn đã từng thử gỡ jQuery khỏi một ứng dụng production chưa?
    Kết quả thế nào?
  • Bạn có nghĩ các công tynêndành ngân sách cho việc tái cấu trúc
    – ngay cả khi không có ROI trực tiếp?
  • Chúng ta có còn thấy jQuery vào năm 2035 không?
    (Tôi cá là có.)

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!