Cộng đồng phát triển web đang đối mặt với một thay đổi quan trọng khác khi các nhà cung cấp trình duyệt lớn thúc đẩy kế hoạch loại bỏ hỗ trợ XSLT (Extensible Stylesheet Language Transformations) khỏi các tiêu chuẩn web. Động thái này đã gây ra những cuộc tranh luận gay gắt về tương lai của các công nghệ web cũ và động lực quyền lực định hình các tiêu chuẩn web hiện đại.
XSLT là một ngôn ngữ được thiết kế để chuyển đổi các tài liệu XML sang các định dạng khác, phổ biến nhất là HTML để hiển thị web. Nó đã là một phần của các trình duyệt web từ năm 1999, cho phép các nhà phát triển tạo ra các trang web động bằng cách chuyển đổi dữ liệu XML ở phía máy khách mà không cần xử lý phía máy chủ.
Dòng thời gian và các sự kiện quan trọng của XSLT
- Lần đầu được hỗ trợ: 1999 (có mặt trên nền tảng web hơn 25 năm)
- Tiêu chuẩn hiện tại: XSLT 1.0 (các trình duyệt không bao giờ nâng cấp lên phiên bản mới hơn)
- Các trường hợp sử dụng chính: Hiển thị RSS feed, chuyển đổi tài liệu XML, trang web chính phủ, ứng dụng vi điều khiển
- Trình duyệt bị ảnh hưởng: Chrome ( Chromium ), Firefox ( Gecko ), Safari ( WebKit ) - tất cả các nhà cung cấp lớn đều hỗ trợ việc loại bỏ
- Mối lo ngại về bảo mật: Dựa trên các thư viện C++ libxml2/libxslt với các vấn đề về an toàn bộ nhớ
Mối quan ngại về bảo mật thúc đẩy quyết định loại bỏ
Động lực chính đằng sau việc loại bỏ XSLT xuất phát từ các thách thức về bảo mật và bảo trì. Các thư viện libxml2 và libxslt cơ bản cung cấp năng lực cho XSLT trong các trình duyệt đã trở thành gánh nặng bảo trì, với người bảo trì tình nguyện không được trả lương bày tỏ sự thất vọng về việc xử lý các lệnh cấm tiết lộ bảo mật cho các công ty công nghệ lớn. Tình huống này đã tạo ra một cơn bão hoàn hảo nơi các nhà cung cấp trình duyệt thấy cơ hội giảm bề mặt tấn công của họ bằng cách loại bỏ những gì họ coi là công nghệ cũ.
Thời điểm này có vẻ đặc biệt đáng ngờ đối với một số thành viên cộng đồng, vì việc thúc đẩy loại bỏ XSLT trùng hợp gần với các tuyên bố công khai của người bảo trì libxml về bản chất không bền vững của việc cung cấp hỗ trợ bảo mật miễn phí cho các tập đoàn tỷ đô la.
Sự kháng cự của cộng đồng và các trường hợp sử dụng
Bất chấp tuyên bố của các nhà cung cấp trình duyệt về việc sử dụng hạn chế, cộng đồng đã trình bày các trường hợp sử dụng thuyết phục cho XSLT mở rộng xa hơn việc phân tích nguồn cấp dữ liệu RSS đơn giản. Các trang web chính phủ, bao gồm các tài liệu chính thức của Quốc hội Hoa Kỳ, dựa vào XSLT để trình bày tài liệu. Các trang web cá nhân nhỏ và ứng dụng vi điều khiển sử dụng XSLT để chuyển đổi dữ liệu hiệu quả, đặc biệt trong các môi trường hạn chế bộ nhớ nơi việc gửi các tệp XML nhỏ và chuyển đổi chúng ở phía máy khách thực tế hơn việc tạo ra các phản hồi HTML lớn.
Tôi đang sử dụng nó trên các vi điều khiển nơi bộ nhớ bị hạn chế để chúng chỉ cần gửi một tài liệu XML động nhỏ và trình duyệt có thể chuyển đổi nó bằng một tệp XSLT tĩnh bất biến thành HTML.
Việc loại bỏ đặc biệt đe dọa các trang web cũ có thể không bao giờ được cập nhật để bao gồm polyfill, có khả năng phá vỡ hàng thập kỷ nội dung web vẫn có giá trị ngày nay.
Mối quan ngại về quy trình tiêu chuẩn
Việc xử lý phản hồi từ cộng đồng đã đặt ra câu hỏi về tính cởi mở của các quy trình tiêu chuẩn web hiện đại. Chuỗi thảo luận ban đầu đã bị khóa vì quá gay gắt mặc dù có vẻ lịch sự đối với nhiều người quan sát, và các cuộc thảo luận tiếp theo cũng bị hạn chế tương tự. Điều này đã dẫn đến các cáo buộc rằng các nhà cung cấp trình duyệt đang áp đảo các mối quan ngại chính đáng từ các nhà phát triển web và người tạo nội dung.
WHATWG (Web Hypertext Application Technology Working Group), hiện kiểm soát các tiêu chuẩn HTML như một tiêu chuẩn sống, đại diện cho sự chuyển đổi từ cách tiếp cận ổn định hơn, có phiên bản của W3C. Các nhà phê bình cho rằng điều này mang lại cho các nhà cung cấp trình duyệt thống trị quá nhiều quyền lực để thay đổi các tiêu chuẩn web một cách đơn phương.
Lập trường của các nhà cung cấp trình duyệt
- Google Chrome: Dẫn đầu nỗ lực loại bỏ, viện dẫn lý do bảo mật và chi phí bảo trì
- Mozilla Firefox: Ủng hộ việc loại bỏ (kỹ sư Mozilla đã đưa ra vấn đề này trong các cuộc họp tiêu chuẩn)
- Apple Safari: Ủng hộ việc loại bỏ
- Phản hồi từ cộng đồng: Trái chiều, với sự phản đối mạnh mẽ từ người dùng nội dung cũ và các ứng dụng chuyên biệt
Các giải pháp thay thế kỹ thuật và hạn chế của chúng
Trong khi các nhà cung cấp trình duyệt đề xuất sử dụng JavaScript hoặc WebAssembly polyfill như các giải pháp thay thế, những giải pháp này đi kèm với những nhược điểm đáng kể. Polyfill phải được thêm thủ công vào mỗi trang web, khiến chúng trở nên vô dụng đối với nội dung cũ sẽ không được cập nhật. Ngoài ra, lệnh xử lý xml-stylesheet, thường được sử dụng trong nguồn cấp dữ liệu RSS và tài liệu XML, không thể được polyfill thông qua JavaScript, có nghĩa là nội dung như vậy sẽ chỉ hiển thị dưới dạng XML thô, không được định dạng.
Sự mỉa mai không bị mất đi trên các nhà phê bình rằng các trình duyệt tiếp tục thêm các API mới phức tạp trong khi loại bỏ các công nghệ đã được thiết lập, hoạt động phục vụ các trường hợp sử dụng cụ thể một cách hiệu quả.
So sánh Tác động Kỹ thuật
Khía cạnh | XSLT Hiện tại | Giải pháp Polyfill Đề xuất |
---|---|---|
Triển khai | C++ gốc trong trình duyệt | JavaScript/WebAssembly |
Bảo mật | Mối lo ngại về an toàn bộ nhớ | Được sandbox trong JS engine |
Hiệu suất | Thực thi gốc nhanh | Thực thi thông dịch chậm hơn |
Hỗ trợ legacy | Tự động cho tất cả trang web | Yêu cầu cập nhật thủ công từng trang |
XML stylesheets | Hỗ trợ đầy đủ | Không thể polyfill |
Bảo trì | Trách nhiệm của nhà cung cấp trình duyệt | Trách nhiệm của từng trang web |
Ý nghĩa rộng lớn hơn đối với sự đa dạng web
Việc loại bỏ này đại diện cho một phần của xu hướng lớn hơn nơi độ phức tạp của trình duyệt và sở thích của nhà cung cấp định hình những gì tồn tại trên web. Quyết định này không chỉ ảnh hưởng đến khả năng kỹ thuật mà còn ảnh hưởng đến sự đa dạng của nội dung và cách tiếp cận có thể trên nền tảng web. Các trang web nhỏ, tài liệu chính phủ và ứng dụng chuyên biệt dựa vào khả năng độc đáo của XSLT có thể thấy mình bị buộc phải sử dụng các giải pháp phức tạp hơn, nặng JavaScript hoặc đơn giản là bị hỏng.
Cuộc tranh cãi làm nổi bật những căng thẳng đang diễn ra giữa mong muốn của các nhà cung cấp trình duyệt muốn giảm gánh nặng bảo trì và nhu cầu của cộng đồng web về các tính năng nền tảng ổn định, dài hạn. Khi web tiếp tục phát triển, sự cân bằng giữa đổi mới và tính tương thích ngược vẫn là một vấn đề gây tranh cãi ảnh hưởng đến hàng triệu trang web hiện có và người dùng của chúng.
Tham khảo: Remove mentions of XSLT from the html spec #11563