- WhatsApp cho Windows 11 chuyển sang dạng trình bao web dựa trên WebView2, và ứng dụng native WinUI/UWP trước đây bị ngừng
- Phiên bản mới tải web.whatsapp.com trong một vùng chứa WebView2, và ngay cả ở màn hình đăng nhập cũng dùng tới 300MB RAM
- Sau khi đăng nhập, mức dùng bộ nhớ tăng lên tới 2GB, và trung bình chiếm 1,2GB RAM ở chế độ nền một cách liên tục
- Đã có báo cáo về các vấn đề như hiệu năng suy giảm, tải chậm, thông báo trễ, đồng thời độ tương thích với thông báo của Windows 11 và chế độ Không làm phiền cũng kém
- Bản cập nhật đang được phát hành qua Microsoft Store theo cơ chế tự động, và người dùng ứng dụng native hiện tại cũng sắp bị buộc chuyển đổi
Thay đổi ở phiên bản WhatsApp cho Windows 11
- WhatsApp cho Windows 11 đã chuyển từ ứng dụng native sang trình bao web dựa trên WebView2
- Ứng dụng mới có cấu trúc tải web.whatsapp.com trong một vùng chứa WebView2
- Trước đây ứng dụng bắt đầu với nền tảng Electron, sau đó phát triển thành ứng dụng native UWP/WinUI, nhưng nay lại quay về hướng web
- Sự thay đổi này dẫn tới hiệu năng giảm và mức sử dụng bộ nhớ cao
So sánh mức sử dụng bộ nhớ
- Theo kết quả thử nghiệm, phiên bản WebView2 mới dùng khoảng 300MB RAM ở màn hình đăng nhập
- Sau khi đăng nhập và tải toàn bộ các cuộc trò chuyện, mức dùng có thể lên tới 2GB RAM, và trung bình duy trì 1,2GB RAM ở chế độ nền
- Trong khi đó, ứng dụng native cũ trung bình dùng 190MB, và khi nhàn rỗi giảm xuống dưới 100MB
- Ngay cả khi hoạt động nhiều, mức dùng cũng chỉ tối đa khoảng 300MB
- Khi mở nhiều cửa sổ hội thoại, phiên bản mới có thể chạm mức 3GB RAM
Vấn đề về hiệu năng và tính năng
- WhatsApp mới cho thấy tốc độ phản hồi chậm và thời gian tải dài
- Khi chuyển đổi giữa các cuộc trò chuyện có hiện tượng trễ
- Khả năng tích hợp với hệ thống thông báo của Windows không ổn định, và
có vấn đề tương thích với chế độ Không làm phiền (Do Not Disturb) cũng như tính năng Active Hours
- Cũng đã có báo cáo về tình trạng thông báo đến chậm
Cập nhật và khả năng né tránh
- WhatsApp phiên bản 2.2584.3.0 đang được phát hành qua Microsoft Store, và
tự động thay thế ứng dụng native hiện có
- Người dùng có thể trì hoãn cập nhật để tạm thời tiếp tục dùng ứng dụng cũ, nhưng
mọi người dùng sẽ sớm bị đăng xuất và buộc chuyển sang phiên bản WebView2
Bối cảnh khác
- Thay đổi này diễn ra trùng với thời điểm ra mắt trải nghiệm WhatsApp native cho Apple Watch
- Apple Watch có 115 triệu người dùng
- Windows có hơn 1 tỷ thiết bị đang hoạt động, nhưng
cả Meta lẫn Microsoft đều đang có xu hướng thu hẹp phát triển ứng dụng native cho Windows
- Bài gốc có đề cập khả năng Meta chuyển sang duy trì codebase web để tiết kiệm chi phí, nhưng
không nêu rõ lý do cụ thể
1 bình luận
Ý kiến trên Hacker News
Tôi thấy hơi chua chát khi ứng dụng mà chính mình từng thiết kế và gìn giữ lại biến thành thế này
Ứng dụng native trước đây không hoàn hảo, nhưng nó có cảm giác tôn trọng môi trường như một công cụ năng suất
Cuối cùng thì tôi cho rằng với các tập đoàn lớn, ứng dụng desktop native về mặt thực tế là bất khả thi. Lý do là chi phí điều phối
Muốn phát hành tính năng đồng thời trên nhiều nền tảng thì độ phức tạp tăng theo cấp số nhân. Nếu tốc độ phát triển có thể chậm rãi thì còn làm được, nhưng nếu muốn thử nghiệm và lặp nhanh thì rốt cuộc đi đến kết luận rằng viết code web một lần vẫn tốt hơn
Dạo này ngay cả Microsoft cũng phát triển theo kiểu đó. Trớ trêu là công ty càng nhỏ thì lại càng có thể duy trì ứng dụng native tốt hơn
Tôi không thể chấp nhận chuyện một tập đoàn lớn lại không vẽ nổi bong bóng chat và emoji theo kiểu native. MSN Messenger ngày xưa cũng làm được mức đó
Với kiểu waterfall thì ổn, nhưng trong phát triển kiểu ‘Agile’ ngày nay thì là hỗn loạn hoàn toàn
Android hay iOS thì trải nghiệm native quan trọng nên còn đáng để chấp nhận, còn Windows thì API cứ thay đổi liên tục và cảm giác native gần như cũng đã biến mất
Có lẽ thà làm bằng Qt như Telegram còn hơn
Ban đầu các ứng dụng native được làm bằng tinh thần thủ công nên rất được yêu thích, nhưng khi công ty lớn lên thì ưu tiên lại là thử nghiệm, telemetry và lặp nhanh
Nhờ vị thế độc quyền mà chất lượng không còn quan trọng nữa, và cuối cùng dù có thành ứng dụng Electron cồng kềnh thì cũng chẳng ai làm gì được
Lý do thay thế là rất rõ. Phiên bản web có thể tung tính năng mới rất nhanh, còn client native thì khó theo kịp
Vì vậy cuối cùng họ chuyển sang web wrapper
Bây giờ ngay cả khái niệm ‘ứng dụng Windows native’ cũng đã mơ hồ, còn hiệu năng hay hỗ trợ offline thì web cũng triển khai đủ được
Chỉ có điều tiến trình GPU phình lên tới 400MB thì hơi buồn cười. Nhưng với một tập đoàn lớn như Meta thì tôi nghĩ chuyện đó vẫn chấp nhận được
Có vẻ Meta lấy web client làm trọng tâm, rồi hợp nhất toàn bộ nền tảng không phải di động về web
“Firefox không hỗ trợ. Tôi không dùng Chrome.” từng là vũ khí cuối cùng của tôi, nhưng giờ còn phải viện cả cớ Safari nữa. Tất cả là vì React
Bài liên quan: Making News Feed Nearly 50% Faster on iOS
Từ góc nhìn quản lý, việc phát triển cùng một tính năng cho nhiều nền tảng trông như lãng phí, nên xu hướng chuyển sang phát triển dựa trên số liệu
Hiệu năng hay mức dùng bộ nhớ không được cân nhắc, và nhận thức rằng “web app cũng đủ nhanh” đang lan rộng
Tôi thật sự thấy ứng dụng Windows native cũ của WhatsApp rất tệ
Nó thường xuyên bị đơ khi nhập liệu hoặc làm hỏng ký tự có dấu, đến mức phải khởi động lại. Ứng dụng Electron mới thì nặng, nhưng ít nhất nó hoạt động đúng cách
Trang chính thức của Microsoft WebView2
Ngày xưa chỉ với 128MB RAM và CPU một nhân cũng đã có thể gọi thoại, gọi video được, còn bây giờ có vẻ hiệu quả đã thụt lùi
Việc JS và web tăng hiệu năng rốt cuộc chỉ dẫn đến nhiều quảng cáo hơn và nhiều code hơn được triển khai
Wiki về nghịch lý Jevons
Việc WhatsApp đi từ web wrapper → native → rồi lại quay về web là một vòng lặp thú vị
Người ta nói chi phí duy trì native rất lớn, nhưng tôi lại thấy cứ vài năm lại rewrite như thế còn lãng phí hơn không
Có quá nhiều lỗi và tính năng bị thiếu, còn Chrome thì không gặp mấy vấn đề như vậy
Tôi hay đi du lịch, nên sẽ rất tốt nếu có thể dùng WhatsApp đồng thời trên nhiều điện thoại
Mỗi lần reset điện thoại đi du lịch thì việc backup và restore rất phiền
Tôi tự hỏi phải chăng AI coding agent của Meta còn không duy trì nổi một ứng dụng native tử tế
Xu hướng chuyển sang nền web kiểu này có lẽ sẽ còn tiếp tục
New Outlook của Microsoft thực chất cũng chỉ là web client được bọc trong EXE
Vì thế mà các tính năng cốt lõi như COM Add-in, VBA, MAPI, hỗ trợ .PST đều biến mất
Có khi xu hướng này chính là dấu hiệu của sự sụp đổ văn minh
Bài liên quan: Collapse of Civilization
Flutter có lẽ đã có thể là một phương án dung hòa tốt
Nó sẽ cho phép làm ứng dụng desktop đa nền tảng hiệu quả hơn, đồng thời dùng ít tài nguyên hơn nhiều
Thực ra có thể không phải nó dùng quá nhiều bộ nhớ, mà là V8 chỉ đang reserve
Trên Windows nó reserve theo đơn vị 256MB, nên nếu có nhiều tiến trình thì trông như chiếm tới 1GB
Những gì hiện trên Task Manager không phải là mức dùng thực tế mà là bộ nhớ reserve của Chromium
Có lẽ đây không hẳn là lỗi của WhatsApp mà là vấn đề cấu trúc của Chromium
Biết nó ngốn bộ nhớ mà vẫn chọn Electron thì rốt cuộc vẫn là quyết định của họ
So với WhatsApp trên iOS ngày trước hay phiên bản Windows năm 2018 thì có lẽ khác biệt tính năng cũng chẳng nhiều, nên tôi vẫn nghi ngờ liệu có thực sự cần làm lại từ đầu hay không