Là một thư viện front-end gần như được sử dụng phổ biến từ giai đoạn web 2.0 bắt đầu. Đến nay, khi các tiêu chuẩn web được phát triển, jQuery gần như không còn được sử dụng, một số trang web lớn cũng đã bắt đầu ngừng sử dụng jQuery từ năm 2022.
Năm 2022, trang web GOV.UK của chính phủ Anh đã loại bỏ jQuery trên thành phần giao diện. Sau khi tái cấu trúc, kích thước JavaScript đã giảm kích thước lên đến 49%. Trước đó, năm 2019, Bootstrap cũng đã loại bỏ jQuery trong phiên bản phát hành mới nhất của mình, version 5.0.
Năm 2018, sau khi thực hiện chiến dịch thiết kế lại front-end, trang lưu trữ code đồ sộ GitHub đã ngừng sử dụng jQuery, cũng như không sử dụng bất kỳ framework nào khác, thay vào đó chỉ sử dụng JavaScript gốc.
Tuy có nhiều trang web lớn lẫn nhỏ cố gắng từ bỏ jQuery, nhưng theo thống kê, vẫn còn có đến hơn 69 triệu trang web trên toàn cầu vẫn còn đang sử dụng jQuery.
Vì sao jQuery xuất hiện và kết thúc sứ mạng?
Có thể nói sự xuất hiện và biến mất của jQuery liên quan đến sự hỗ trợ JavaScript kiểu tuỳ hứng, thiếu đồng nhất của các trình duyệt internet vào thời kỳ web 2.0.
Năm 1994, Netscape phát triển trình duyệt Netscape Navigator. Trong vòng 4 tháng, nó chiếm 3/4 thị trường trình duyệt và trở thành trình duyệt Internet phổ biến vào những năm 1990.
Vào thời điểm đó, năng lực kỹ thuật và chiến lược công nghệ của Netscape đã đi trước thị trường. Netscape dự đoán, Internet sẽ trở nên đa nhiệm hơn, mang tính tương tác nhiều hơn. Marc Lowell Andreessen nghĩ rằng, HTML cần thêm một ngôn ngữ kịch bản mang tính kết nối các thành phần web, nó có thể tạo điều kiện thuận lợi cho các nhà thiết kế web hoặc những lập trình viên không chuyên nghiệp thiết kế hình ảnh và plug-in.
Sau nghiên cứu nội bộ, Netscape quyết định phát triển một ngôn ngữ kịch bản phụ trợ để sử dụng với Java. Vào tháng 5 năm 1995, các kỹ sư của Netscape đã tiến hành thiết kế ngôn ngữ kịch bản với chủ ý để nó có tính tương đồng với Java. Liên minh Netscape và Sun Microsystems đã phát hành Netscape Navigator 2.0 Beta 3, và vào tháng 12 cùng năm và đổi tên nó thành JavaScript. Sự xuất hiện của JavaScript giống như nắng hạn gặp mưa rào, rất nhiều các nhà phát triển web ưa thích và sử dụng nó.
Khi trào lưu Web 2.0 xuất hiện, nhu cầu thiết kế web mang tính application mạnh mẽ hơn (yêu cầu tương tác đa dạng như software) nhưng JavaScript thì chưa đáp ứng một cách toàn diện. Ngoài ra, vào giai đoạn đó, các nhà sản xuất trình duyệt mãi mê tìm cách vượt mặt nhau trong cuộc đua chiếm lĩnh thị trường, lơ là trách nhiệm nâng cấp Javascript. Cho nên, có rất nhiều trang web có thể chạy tốt trong trình duyệt này nhưng sang trình duyệt khác thì xảy ra lỗi.
John Resig, cha đẻ của JQuery
John Resig cũng như nhiều lập trình viên khác, ông cực kì ghét lỗi Javascript không tương thích trên các trình duyệt web. Để khắc phục vấn đề này, John Resig đã viết một thư viện chọn CSS, animation có thể chạy giống nhau trên Firefox, IE...
Khi JQuery được chính thức xuất bản, nó cho phép lập trình viên lựa chọn CSS bằng một cách đơn giản hơn so với JavaScript. Sự dễ dàng, gọn gẽ đó đã khiến các lập trình viên khác thốt lên: "JQuery đã thay đổi hoàn toàn cách thức mà Javascript tương tác với HTML".
Cho đến sau này, cách thức mà jQuery dùng để lập trình viên tiếp cận, xử lý HTML, CSS đã được các tổ chức như ECMA, Mozilla Foundation học hỏi và phát triển theo.
Theo tiết lộ của John Resig, mục đích thiết kế đầu tiên của jQuery là "viết ít hơn, làm nhiều hơn". Và họ duy trì mục tiêu này cho đến tận ngày nay.
Với các ưu điểm như vậy, jQuery nhanh chóng nhận được sự ủng hộ từ cộng đồng nhà phát triển, trong đó và nhiều công ty lớn. Khoảng năm 2010, cả Microsoft và Google đều cung cấp CDN hosting cho thư viện jQuery. Còn Nokia đã tuyển dụng các thành viên phát triển jQuery như Brandon Aaron; còn Mozilla đã trực tiếp thuê John Resig... để tích hợp jQuery vào các sản phẩm của họ.
Chính sự hỗ trợ và sử dụng của các công ty lớn này đã khiến jQuery rất thành công trong vài năm đầu tiên. Theo John Resig, nguồn lực phát triển của jQuery đều đến từ sự đóng góp từ bên ngoài. Năm 2011, jQuery đã thành lập Quỹ jQuery, chủ yếu hỗ trợ phát triển lõi jQuery, giao diện người dùng và các dự án di động, cung cấp tài liệu jQuery, hỗ trợ và thúc đẩy sự phát triển của cộng đồng jQuery.
Nhân dịp kỷ niệm 10 năm phát triển của jQuery, John Resig cũng bày tỏ sự ngưỡng mộ đối với sự phổ biến của thư viện này: "Thật đáng kinh ngạc! jQuery được sử dụng trong 77,8% / tổng số 1 triệu trang web hàng đầu trên thế giới."
Tỷ lệ này cho đến nay chỉ giảm 2,2% và nhiều công ty vẫn đang sử dụng jQuery. Những người trong ngành phân tích: "Mức độ phổ biến của jQuery trước năm 2016 rất cao, với thị phần gần 90%. Đồng thời, nó cũng nuôi dưỡng nhiều nhà phát triển bắt đầu với jQuery như một điểm khởi đầu về mặt kỹ thuật. Sau năm 2016, mặc dù React và Vue có bước phát triển nhanh chóng, nhưng ở cấp độ hệ sinh thái nó vẫn chưa hoàn thiện như jQuery. Khi một số nhà phát triển không thể tìm ra giải pháp phát triển ứng dụng trên mô hình MVVM, họ chỉ có thể tìm kiếm nó trong hệ sinh thái jQuery và đó là lý do vẫn có rất nhiều trang web vẫn đang tiếp tục sử dụng jQuery."
Vì sao jQuery lại trở thành của nợ kỹ thuật mà một số công ty muốn xóa bỏ?
Trong mô hình phát triển front-end hiện tại, thư viện jQuery đang bị gạt ra ngoài lề. Tuyên bố chính thức từ jQuery cho biết: "Chúng tôi không phát triển thêm các tính năng mới. Hầu hết công việc hiện tại của nhón là tối ưu hóa để làm cho jQuery nhanh hơn, mạnh hơn và dễ hiểu hơn. Công việc trong tương lai cũng sẽ là tối ưu hóa để làm cho các hàm jQuery rõ ràng hơn".
Như vậy, có thể thấy rằng: Số phận của jQuery đã được định đoạt đằng sau tuyên bố này.
Trong ký ức vui vẻ của những lập trình viên, kể từ khi phiên bản đầu tiên được phát hành vào năm 2006, jQuery đã trụ trong một thời kỳ hoàng kim kéo dài 10 năm. Trong khoản thời gian khá dài đó, di sản của jQuery khó có thể bị loại bỏ ngay lập tức. Cho dù khi JavaScrpit thuần đang hoàn thiện, các lõi trình duyệt cũng được được hợp nhất, và những ưu điểm của jQuery đang dần mờ nhạt đi.
Mặc dù jQuery bắt đầu hướng tới mục tiêu tối ưu hóa, hiệu suất nhưng các lợi thế cốt lõi vào giai đoạn đầu của phiên bản HTML5 đã không còn rõ ràng nữa.
Khi HTML5 hoàn thiện, nó đã cắt đứt chu kỳ phát triển của jQuery
Trước khi jQuery xuất hiện lần đầu tiên, năm 2004, các tổ chức công nghệ lớn như Opera, Mozilla và Apple đã họp bàn để hướng tới mục tiêu cải thiện hiệu suất cho ngôn ngữ HTML. Và sau đó thì tiêu chuẩn Web 1.0 ra đời, hay còn gọi là HTML5.
So với các phiên bản HTML trước, HTML 5 phù hợp hơn để viết các ứng dụng động và có thuật toán phân tích cú pháp rõ ràng hơn. Tất cả các trình duyệt triển khai HTML5 sẽ tạo cùng một DOM từ cùng một thẻ. Tuy nhiên, HTML5 chưa hoàn thiện lắm, tỷ lệ áp dụng thực tế thấp, và nó tạo cơ hội cho jQuery phát triển trong giai đoạn đầu.
Đến năm 2008, bản thảo HTML5 đầu tiên ra đời. Cùng năm đó, các trình duyệt khổng lồ như IE, Chrome, FireFox và Safari lần lượt hỗ trợ HTML5. Nhưng tại thời điểm này HTML5 vẫn chưa được hoàn thiện. Đến nỗi, vào năm 2012, ứng dụng Facebook đã từ bỏ HTML5 và sử dụng các compnents thuần tuý.
Sự hợp tác giữa W3C và WHATWG đột ngột bị ngưng trệ do mâu thuẩn khác nhau về các tiêu chuẩn phát triển đã đẩy HTML5 đến cuộc suy thoái. Và Apple, công ty luôn ủng hộ HTML5, không còn cho phép các shell APP thuần túy đăng nhập vào App Store.
Mãi đến cuối tháng 10 năm 2014, sau 8 năm, W3C mới công bố phiên bản cuối cùng của HTML5. Sau đó hai năm, các nhà sản xuất trình duyệt đã công bố hỗ trợ HTML5, nhiều nhà phát triển ứng dụng khác nhau đã liên tục áp dụng HTML5 để phát triển sản phẩm.
Kiến trúc MVVM cũng đã tiếp tay "giết chết" jQuery?
Khi cấu trúc HTML5 được ứng dụng rộng rãi, các nhà phát triển phần mềm rất ưa thích mô hình định hướng phát triển phần mềm MVVM. Họ áp dụng thói quen phát triển ứng dụng software lên web app và việc này làm cho nhược điểm của jQuery bộc lộ. Chẳng hạn như, các nhà phát triển phải tiến hành rất nhiều thao tác DOM nên khiến nó rất cồng kềnh, việc cập nhật code trở nên khó khăn, hiệu suất và tốc độ hiển thị trang bị giảm, v.v.
Mặc dù jQuery có thể đơn giản hóa các hoạt động của DOM nhưng nó không tốt bằng kiến trúc MVVM, làm cho nhà phát triển bỏ qua các hoạt động của DOM.
Kiến trúc MVVM bao gồm ba phần: Model, View và ViewModel. Lớp Model đại diện cho mô hình dữ liệu và có thể xác định logic nghiệp vụ để sửa đổi và vận hành dữ liệu; View đại diện cho thành phần UI và chịu trách nhiệm chuyển đổi mô hình dữ liệu thành bản trình bày UI. ViewModel là chế độ xem và đối tượng được đồng bộ hóa. View và Model tương tác thông qua ViewModel và việc đồng bộ hóa giữa cả hai là hoàn toàn tự động mà không cần nhà phát triển vận hành DOM theo cách thủ công.
Do cấu trúc MVVM thực hiện việc phân tách dữ liệu và chế độ xem, điều khiển chế độ xem thông qua dữ liệu, đóng gói các hoạt động DOM, biến liên kết dữ liệu và chế độ xem thành các hoạt động tự động, sau đó xóa các hoạt động DOM khỏi mã nghiệp vụ, điều này dẫn đến jQuery đã mất đi các tính chất ưu việt của nó.
AngularJS, React, Vue và cuộc đại chiến với jQuery
Các thư viện javascript mới như AngularJS, React, Vue được phát triển sau này phù hợp cho định hướng MVVM cũng góp phần làm cho jQuery suy yếu. Các ưu điểm của các thư viện mới là tính mô-đun, liên kết dữ liệu hai chiều tự động, thẻ ngữ nghĩa, chèn phụ thuộc, v.v.
Vào tháng 5 năm 2013, Facebook đã phát triển thư viện React và công bố mã nguồn mở. Năm 2013, You Yuxi, người làm việc tại Google, lấy cảm hứng từ Angular và ra mắt Seed, một framework nhẹ với tên gọi là Vue.
Nếu đem ra bàn cân so sánh giữa jQuery và các framework mới một cách hài hước thì có thể tóm tắt như sau:
Tôi đưa cho jQuery 10$ và yêu cầu nó chạy đi mua hai chai nước tương. Và việc tôi cần làm để jQuery hoàn thành nhiệm vụ là chỉ cho anh ấy cách đến tiệm tạp hoá, cách nói với ông chủ tên thương hiệu nước tương, còn lại bao nhiêu tiền lẻ và cách để về nhà.
Còn nếu tôi nhờ Vue mua nước tương, tôi chỉ cần đưa tiền cho Vue và nói cho anh ấy biết địa điểm và mua loại nước tương nào, tôi không cần dạy anh ấy từng bước.
Đây là sự khác biệt giữa phát triển front-end truyền thống và phát triển front-end dựa trên các thư viện hiện đại.
Nhìn chung, với việc cải tiến các tiêu chuẩn tương tác UI và thống nhất các tiêu chuẩn phân tích trình duyệt, jQuery khó có thể vượt qua nhiều thư viện javascript (hỗ trợ MVVM) về các chức năng mới.
Ưu điểm lớn nhất của jQuery hiện nay là nó tương đối nhẹ, trong khi framework mới yêu cầu nhiều hơn về kỹ thuật, thời gian học tập lâu hơn. Hơn nữa, jQuery có nền tảng lịch sử nhất định, phạm vi bao phủ rộng, chức năng tương đối toàn diện và có hệ sinh thái phủ rộng hơn so với các thư viện và framework kiểu MVVM.
Nói chung, những gì chúng ta đang thảo luận hôm nay không phải về sự tồn tại hay không tồn tại của jQuery mà là về ý nghĩa sự tồn tại của nó.
Đối với những nhà lập trình, điều họ quan tâm nhiều nhất là: thư viện nào có thể giúp họ giải quyết được nhiều vấn đề nhất, giản lượt thời gian nhiều nhất, nhẹ nhất, an toàn nhất, phù hợp cho dự án... Còn vấn đề về mặt công nghệ, về mặt thời thượng là do khách hàng quyết định.