Các nhà cung cấp trình duyệt đẩy mạnh việc loại bỏ hỗ trợ XSLT bất chấp sự quan tâm ngày càng tăng của cộng đồng

Nhóm Cộng đồng BigGo
Các nhà cung cấp trình duyệt đẩy mạnh việc loại bỏ hỗ trợ XSLT bất chấp sự quan tâm ngày càng tăng của cộng đồng

Các nhà sản xuất trình duyệt một lần nữa đang cố gắng loại bỏ hỗ trợ XSLT (Extensible Stylesheet Language Transformations) khỏi các trình duyệt web, gây ra cuộc tranh luận trong cộng đồng nhà phát triển về tương lai của công nghệ chuyển đổi XML này. Nỗ lực mới nhất đến từ Mason Freed của Google, theo sau các nỗ lực trước đó của Mozilla và các nhà cung cấp trình duyệt khác nhằm loại bỏ tính năng này.

Chiến dịch loại bỏ khỏi trình duyệt

Nỗ lực loại bỏ XSLT khỏi các trình duyệt không phải là mới. Chrome trước đây đã cố gắng loại bỏ và ngừng hỗ trợ XSLT vào cả năm 2013 và 2015, nhưng cả hai nỗ lực đều thất bại do sự phản đối mạnh mẽ từ cộng đồng nhà phát triển. Đề xuất gần đây của Mozilla tại cuộc họp WHATWG đã làm bùng phát lại cuộc thảo luận, với các nhà cung cấp trình duyệt viện dẫn gánh nặng bảo trì và việc sử dụng hạn chế làm lý do để loại bỏ.

Tuy nhiên, phản ứng của cộng đồng cho thấy một góc nhìn khác. Nhiều nhà phát triển vẫn dựa vào XSLT cho các trường hợp sử dụng cụ thể, đặc biệt trong môi trường doanh nghiệp và các pipeline chuyển đổi dữ liệu. Việc thất bại liên tục của các nỗ lực loại bỏ cho thấy rằng XSLT vẫn duy trì một cơ sở người dùng chuyên dụng mà các nhà cung cấp trình duyệt không thể bỏ qua.

Lịch trình loại bỏ XSLT của các trình duyệt

  • 2013: Chrome lần đầu tiên cố gắng ngừng hỗ trợ XSLT (thất bại)
  • 2015: Chrome thực hiện nỗ lực thứ hai để loại bỏ XSLT (thất bại)
  • 2024: Mozilla đưa ra đề xuất loại bỏ tại cuộc họp WHATWG
  • 2024: Mason Freed của Google dẫn đầu nỗ lực loại bỏ mới

Thách thức về trải nghiệm nhà phát triển

Một trong những chỉ trích chính về XSLT tập trung vào trải nghiệm nhà phát triển. Cú pháp dựa trên XML của ngôn ngữ này tạo ra những thách thức đáng kể về khả năng đọc hiểu, đặc biệt đối với các phép chuyển đổi phức tạp. Một phép chuyển đổi JSON đơn giản có thể chỉ cần một hoặc hai dòng JavaScript lại yêu cầu mã XSLT dài dòng với nhiều lần import namespace và cú pháp rườm rà.

Ai đó đã viết lại XSLT của tôi bằng Python, và tôi đã cổ vũ họ, bởi vì kết quả dễ đọc hơn nhiều, không chỉ vì những bước thủ tục cơ bản có thể được viết bằng ngôn ngữ thủ tục với cú pháp tốt, thay vì ngôn ngữ hàm thuần túy của XSLT bị ảnh hưởng bởi việc được nhúng trong XML.

Trải nghiệm debug đưa ra một rào cản lớn khác. Không giống như các ngôn ngữ lập trình hiện đại với các công cụ debug tinh vi, XSLT cung cấp khả năng debug hạn chế, khiến việc khắc phục sự cố trở thành trải nghiệm bực bội cho các nhà phát triển.

Các tính năng hiện đại của XSLT 3.0

Bất chấp những chỉ trích, XSLT 3.0 giới thiệu một số tính năng hiện đại giải quyết một số hạn chế lịch sử. Phiên bản mới bao gồm hỗ trợ JSON gốc, cho phép chuyển đổi trực tiếp giữa các định dạng JSON và XML mà không cần các giải pháp phức tạp. Text value templates đơn giản hóa việc nội suy chuỗi, giảm nhu cầu sử dụng các hàm concat() rườm rà.

Việc bổ sung các hàm do người dùng định nghĩa và typing phù hợp đưa XSLT gần hơn với các ngôn ngữ lập trình hiện đại. Những hàm này có thể được tổ chức thành các package với kiểm soát phiên bản, cho phép tái sử dụng và bảo trì mã tốt hơn. Hỗ trợ streaming giải quyết các mối quan ngại về hiệu suất đối với các tập dữ liệu lớn, trong khi các cấu trúc try-catch cung cấp khả năng xử lý lỗi cơ bản.

Các Tính Năng Chính của XSLT 3.0

  • Hỗ trợ chuyển đổi JSON nguyên bản
  • Mẫu giá trị văn bản để đơn giản hóa việc nội suy chuỗi
  • Các hàm do người dùng định nghĩa với kiểu dữ liệu phù hợp
  • Các gói hàm với kiểm soát phiên bản
  • Hỗ trợ streaming cho các tập dữ liệu lớn
  • Cấu trúc xử lý lỗi try-catch

Mô hình sử dụng trong ngành

Việc sử dụng trong thực tế cho thấy cả điểm mạnh và điểm yếu của XSLT trong môi trường sản xuất. Trong ngành streaming âm nhạc, các công ty xử lý hàng triệu file XML đã thấy XSLT có vấn đề trong việc xử lý các thay đổi schema giữa các phiên bản khác nhau của các tiêu chuẩn ngành như DDEX. Tính chất cứng nhắc của các phép chuyển đổi XSLT khiến chúng trở nên mong manh khi xử lý các định dạng dữ liệu đang phát triển.

Tuy nhiên, XSLT tiếp tục tìm thấy thành công trong các lĩnh vực cụ thể nơi xử lý XML vẫn chiếm ưu thế. Các hệ thống doanh nghiệp, pipeline xuất bản và các tình huống tích hợp dữ liệu vẫn hưởng lợi từ cách tiếp cận khai báo của XSLT đối với việc chuyển đổi.

Tương lai của các công nghệ XML

Các nỗ lực loại bỏ khỏi trình duyệt phản ánh xu hướng ngành rộng hơn là chuyển từ các công nghệ dựa trên XML sang JSON và các định dạng dữ liệu đơn giản hơn. Phát triển web hiện đại ưa chuộng các cách tiếp cận nhẹ, thân thiện với JavaScript hơn là hệ sinh thái XML nặng nề từng thống trị đầu những năm 2000.

Tuy nhiên, sự tồn tại của việc sử dụng XSLT cho thấy rằng một số lĩnh vực vấn đề nhất định vẫn hưởng lợi từ các khả năng chuyên biệt của nó. Thách thức nằm ở việc cân bằng gánh nặng bảo trì đối với các nhà cung cấp trình duyệt với nhu cầu của người dùng hiện tại phụ thuộc vào xử lý XSLT phía client.

Khi cuộc tranh luận tiếp tục, kết quả có thể sẽ phụ thuộc vào việc liệu cộng đồng XSLT có thể chứng minh đủ mức sử dụng để biện minh cho việc tiếp tục hỗ trợ trình duyệt hay không, hoặc liệu các giải pháp thay thế cuối cùng sẽ làm cho việc xử lý XSLT phía client trở nên lỗi thời.

Tham khảo: Why You Should Be Using XSLT 3.0