Sự ra mắt gần đây của SuperHTML, một triển khai mới của Language Server Protocol (LSP) cho HTML, đã làm dấy lên một cuộc thảo luận sôi nổi trong cộng đồng lập trình viên về sự cân bằng giữa việc xác thực nghiêm ngặt và tính linh hoạt vốn có của HTML.
Tranh cãi
Cách tiếp cận xác thực HTML của SuperHTML đã trở thành tâm điểm tranh luận giữa các lập trình viên. Trong khi công cụ này nhằm ngăn chặn các lỗi do con người gây ra, các quy tắc xác thực nghiêm ngặt của nó lại khác biệt với bản chất linh hoạt truyền thống của HTML. Ví dụ, SuperHTML không hỗ trợ việc đóng thẻ ngầm định cho các phần tử như <li>
, <p>
, <dd>
, <dt>
, <head>
, và <body>
- những tính năng mà nhiều lập trình viên cho là có giá trị khi viết mã HTML thủ công.
Cuộc tranh luận HTML và XHTML tái xuất
Cuộc thảo luận đã làm sống lại cuộc tranh luận lâu đời giữa HTML và XHTML. Nhiều lập trình viên đã bày tỏ sự quan tâm đến việc quay lại sử dụng XHTML5, nhấn mạnh tình huống gà và trứng khi việc thiếu công cụ cản trở sự phổ biến rộng rãi của XHTML. Loris Cro, người tạo ra công cụ này, dù sẵn sàng chấp nhận hỗ trợ XHTML thông qua đóng góp của cộng đồng, nhưng lưu ý rằng sự hỗ trợ hạn chế từ trình duyệt vẫn là trở ngại chính.
Triết lý xác thực
Một điểm gây tranh cãi chính là cách tiếp cận nghiêm ngặt hơn đặc tả của SuperHTML. Trong khi các cấu trúc HTML hợp lệ về mặt kỹ thuật như <li>item<li>
(mà trình duyệt tự động phân tích thành <li>item</li><li></li>
) bị SuperHTML đánh dấu là lỗi. Điều này dẫn đến các cuộc thảo luận về việc liệu các công cụ nên tuân theo đặc tả một cách nghiêm ngặt hay triển khai các tập con theo ý kiến chủ quan để có thực tiễn phát triển tốt hơn.
Tích hợp với trình soạn thảo
SuperHTML tự phân biệt với các giải pháp hiện có như máy chủ ngôn ngữ HTML mặc định của VSCode bằng cách chủ động tạo ra các chẩn đoán. Các lập trình viên nhận thấy rằng trong khi các IDE như sản phẩm của JetBrains cung cấp một số tính năng kiểm tra lỗi HTML, SuperHTML cung cấp giải pháp toàn diện hơn, tương thích với nhiều trình soạn thảo thông qua giao thức LSP. Công cụ này hỗ trợ nhiều trình soạn thảo khác nhau bao gồm Neovim, và có thể được sử dụng như một công cụ CLI độc lập.
Hướng tới tương lai
Cuộc tranh luận xung quanh SuperHTML phản ánh một cuộc thảo luận rộng lớn hơn về thực tiễn phát triển web và vai trò của công cụ trong việc định hình tiêu chuẩn lập trình. Trong khi một số lập trình viên đánh giá cao việc xác thực nghiêm ngặt để ngăn chặn các lỗi tiềm ẩn, những người khác lại ủng hộ việc bảo tồn tính linh hoạt và khả năng tương thích ngược của HTML.
Cuộc thảo luận này diễn ra vào thời điểm có sự quan tâm mới đối với các trang web HTML tĩnh đơn giản hơn, như được nhấn mạnh trong cuộc thảo luận về Static Site Paradox, cho thấy một sự thay đổi tiềm năng trong thực tiễn phát triển web hướng tới các giải pháp đơn giản hơn.