Cộng đồng phát triển web đang tham gia vào một cuộc thảo luận sôi nổi về hướng phát triển tương lai của HTML , CSS và Document Object Model ( DOM ). Cuộc tranh luận này được khơi mào bởi những lo ngại ngày càng gia tăng về độ phức tạp của các tiêu chuẩn web và liệu nền tảng hiện tại có phù hợp cho việc phát triển ứng dụng hiện đại hay không.
![]() |
---|
Một slide thuyết trình minh họa các thuộc tính bố cục CSS khác nhau và ý nghĩa của chúng đối với các tiêu chuẩn web |
Tình trạng khó xử về tương thích ngược
Một trong những vấn đề trung tâm trong cuộc tranh luận này xoay quanh tính tương thích ngược. Nền tảng web đã duy trì khả năng tương thích với mã nguồn từ hàng thập kỷ trước, điều này vừa là phước lành vừa là lời nguyền. Mặc dù cách tiếp cận này đã đảm bảo rằng các trang web từ những ngày đầu của internet vẫn tiếp tục hoạt động, nhưng nó cũng đã dẫn đến sự phình to đáng kể và độ phức tạp trong các tiêu chuẩn web hiện đại. Cộng đồng đang chia rẽ về việc liệu cam kết tương thích ngược này có đáng với khoản nợ kỹ thuật mà nó tạo ra hay không.
Một số nhà phát triển cho rằng tính tương thích ngược có thể được duy trì thông qua các thư viện polyfill nằm trên các hệ thống mới, tương tự như cách các tính năng JavaScript hiện đại được cung cấp cho các trình duyệt cũ. Cách tiếp cận này có thể cho phép các hệ thống cốt lõi sạch hơn, hiệu quả hơn trong khi vẫn hỗ trợ mã nguồn cũ.
Các Giải Pháp Đề Xuất và Phương Án Thay Thế:
Phương pháp | Mô tả | Đánh đổi |
---|---|---|
Kết xuất dựa trên Canvas | Bỏ qua hoàn toàn HTML/CSS, kết xuất trực tiếp lên canvas | Hiệu suất tốt hơn, nhưng mất các tính năng trợ năng |
Tiêu chuẩn riêng biệt cho ứng dụng/tài liệu | Các API khác nhau cho ứng dụng và tài liệu | Có thể giảm độ phức tạp, nhưng tăng sự phân mảnh |
WebAssembly + WebGPU | Sử dụng công nghệ cấp thấp hơn để kiểm soát tốt hơn | Phát triển phức tạp hơn, nhưng có khả năng hiệu suất tốt hơn |
Tương thích dựa trên Polyfill | Hệ thống lõi mới với các lớp tương thích | Có thể tạo ra kiến trúc sạch hơn trong khi duy trì khả năng tương thích ngược |
Sự phân chia giữa ứng dụng và tài liệu
Một điểm tranh cãi chính tập trung vào việc liệu web có nên tiếp tục cố gắng phục vụ cả tài liệu và ứng dụng bằng cùng một ngăn xếp công nghệ hay không. Nhiều thành viên cộng đồng tin rằng HTML ban đầu được thiết kế cho tài liệu và đã bị kéo dãn vượt quá mục đích dự định để phù hợp với các ứng dụng phức tạp.
Vấn đề là DOM hoàn toàn không phù hợp để mô tả bố cục trang, và thậm chí còn kém hơn đối với các ứng dụng Web. Người dùng thường không hài lòng với các ứng dụng Web vì cách các trình duyệt hạn chế chức năng hữu ích và các lập trình viên phải vật lộn với các giải pháp tạm thời và sự phình to của trình duyệt để thực hiện những việc đơn giản.
Điều này đã dẫn đến các đề xuất tạo ra các tiêu chuẩn riêng biệt - một tiêu chuẩn được tối ưu hóa cho các trang web truyền thống và một tiêu chuẩn khác được thiết kế đặc biệt cho các ứng dụng. Sự phân tách như vậy có thể cho phép mỗi trường hợp sử dụng được phục vụ tốt hơn bởi công nghệ được thiết kế đặc biệt cho nhu cầu của nó.
Các Công Nghệ Web Chính Đang Được Thảo Luận:
- DOM (Document Object Model): Giao diện lập trình cho các tài liệu HTML, đại diện cho cấu trúc trang web dưới dạng cây các đối tượng
- WebAssembly (WASM): Định dạng lệnh nhị phân cho phép mã được viết bằng các ngôn ngữ khác ngoài JavaScript chạy trong trình duyệt web
- WebGPU: Tiêu chuẩn web để truy cập các tính năng của đơn vị xử lý đồ họa (GPU) từ các ứng dụng web
- CSS Grid: Hệ thống bố cục cho phép các nhà phát triển tạo ra các bố cục phức tạp dựa trên lưới
- Flexbox: Phương pháp bố cục CSS để sắp xếp các phần tử theo hàng hoặc cột với kích thước linh hoạt
![]() |
---|
Biểu đồ lưu trình minh họa quy trình bố cục dự kiến, làm nổi bật cách các phần khác nhau của ứng dụng web tương tác |
Mối quan ngại về hiệu suất và trải nghiệm nhà phát triển
Cộng đồng đã nêu ra những lo ngại đáng kể về tác động hiệu suất của các công nghệ web hiện tại. Các ứng dụng web hiện đại thường yêu cầu tài nguyên đáng kể để thực hiện các tác vụ mà sẽ rất đơn giản trong các ứng dụng gốc. Điều này đã dẫn đến sự thất vọng trong số các nhà phát triển, những người thấy mình đang chiến đấu chống lại nền tảng thay vì làm việc cùng với nó.
API DOM đã bị chỉ trích đặc biệt vì quá dài dòng và khó làm việc trực tiếp. Nhiều nhà phát triển đã chuyển sang không thao tác DOM trực tiếp mà ủng hộ các framework trừu tượng hóa những phức tạp này, nhưng điều này đã dẫn đến các lớp trừu tượng bổ sung và tăng kích thước bundle.
Các giải pháp và lựa chọn thay thế mới nổi
Một số giải pháp tiềm năng đã xuất hiện từ cuộc thảo luận của cộng đồng. WebAssembly ( WASM ) và WebGPU đang được khám phá như những cách để cung cấp kiểm soát trực tiếp hơn đối với việc kết xuất và tính toán. Một số nhà phát triển đang thử nghiệm với các cách tiếp cận dựa trên canvas để bỏ qua hoàn toàn việc kết xuất HTML truyền thống.
Flutter for web đã được trích dẫn như một ví dụ về cách các ứng dụng có thể được xây dựng bằng cách sử dụng kết xuất canvas trong khi vẫn chạy trong trình duyệt. Tuy nhiên, cách tiếp cận này đi kèm với những đánh đổi, đặc biệt là xung quanh các tính năng trợ năng như kiểm tra chính tả và hỗ trợ phương thức nhập mà trình duyệt cung cấp tự động cho các phần tử HTML truyền thống.
![]() |
---|
Góc nhìn kỹ thuật về cấu trúc HTML của trình soạn thảo đầu vào trong ứng dụng web, nhấn mạnh các tiêu chuẩn web hiện tại |
Con đường phía trước
Cộng đồng dường như đang hội tụ xung quanh ý tưởng rằng tiến hóa thay vì cách mạng có thể là cách tiếp cận thực tế nhất. Mặc dù nhiều người thừa nhận những hạn chế của các công nghệ web hiện tại, hệ sinh thái khổng lồ và lợi thế triển khai của nền tảng web khiến việc từ bỏ hoàn toàn trở nên khó khăn.
Một số nhà phát triển ủng hộ các cải tiến từng bước và API mới có thể cùng tồn tại với các tiêu chuẩn hiện có, trong khi những người khác thúc đẩy những thay đổi cơ bản hơn. Sự thành công của các công nghệ như CSS Grid và Flexbox , đã cải thiện đáng kể khả năng bố cục, cho thấy rằng tiến bộ có ý nghĩa có thể đạt được trong khuôn khổ hiện có.
Cuộc tranh luận phản ánh một căng thẳng rộng lớn hơn trong ngành công nghệ giữa việc duy trì sự ổn định và thúc đẩy đổi mới. Khi các ứng dụng web ngày càng trở nên tinh vi, cộng đồng tiếp tục vật lộn với cách cân bằng những nhu cầu cạnh tranh này trong khi phục vụ hiệu quả cả nhà phát triển và người dùng cuối.
Tham khảo: HTML is Dead, Long Live HTML