- Electron là một framework cho phép tạo ứng dụng desktop hỗ trợ đồng thời Windows, Mac, Linux dựa trên HTML·CSS·JS, và nhiều ứng dụng như Slack, Discord, VS Code đang sử dụng nó
- Tuy nhiên, vì mỗi ứng dụng đều đóng gói riêng engine Chromium, nên dung lượng lớn, dễ phát sinh độ trễ và tình trạng không phản hồi, đồng thời khả năng tích hợp với tính năng của hệ điều hành cũng bị hạn chế
- Khi coding agent đã có thể thực hiện sinh mã native theo từng nền tảng dựa trên đặc tả và kiểm thử, lợi thế của Electron dường như đang giảm đi
- Nhưng trên thực tế, agent chỉ có thể tự động hóa tới 90% quá trình phát triển, còn 10% cuối cùng gồm xử lý ngoại lệ và bảo trì vẫn rất khó và còn phụ thuộc vào con người
- Vì vậy, giống như ứng dụng Claude của Anthropic, dù công nghệ agent đã tiến bộ, vẫn còn những lý do thực tế để tiếp tục dùng Electron
Ưu điểm và giới hạn của Electron
- Electron cho phép xây dựng ứng dụng desktop đa nền tảng bằng công nghệ web
- Một codebase duy nhất có thể hỗ trợ cả Windows, Mac, Linux
- Có thể tái sử dụng mã web app hiện có nên hiệu quả phát triển cao
- Nhược điểm là dung lượng ứng dụng tăng và hiệu năng suy giảm
- Mỗi ứng dụng tự mang theo engine Chromium riêng nên có thể lên tới hàng trăm MB
- Dễ phát sinh các vấn đề như tốc độ phản hồi chậm, tích hợp kém với tính năng hệ điều hành
- Một số vấn đề có thể được cải thiện bằng tối ưu hóa theo từng hệ điều hành, nhưng lợi thế cấu trúc của Electron không thực sự khuyến khích điều đó
Sự xuất hiện của coding agent và kỳ vọng đi kèm
- Gần đây, coding agent cho thấy khả năng tự động hóa việc triển khai giữa các ngôn ngữ và nền tảng dựa trên đặc tả (spec) và kiểm thử
- Về lý thuyết, chỉ với một bộ đặc tả và test có thể tạo ra ứng dụng native cho từng nền tảng
- Từ đó xuất hiện khả năng để những đội ngũ nhỏ, tinh gọn cung cấp ứng dụng native hiệu năng cao cho thị trường rộng lớn
Trường hợp của Claude và Anthropic
- Anthropic đã dùng coding agent để triển khai trình biên dịch C viết bằng Rust, nhưng đã chạm tới giới hạn ở giai đoạn cuối
- Khi thêm tính năng mới hoặc sửa lỗi, các chức năng hiện có liên tục bị phá vỡ
- Kết quả tạo ra khá ấn tượng nhưng được đánh giá là không phù hợp để sử dụng thực tế
- Ứng dụng desktop Claude cũng được xây dựng trên Electron, và được nhắc đến như một ứng dụng chậm, nhiều lỗi và dung lượng lớn
Độ khó của ‘10% cuối cùng’
- Coding agent có thể xử lý rất nhanh 90% đầu của quá trình phát triển, nhưng
xử lý ngoại lệ và bảo trì trong môi trường thực tế vẫn phức tạp và cần có sự can thiệp của con người
- Trong môi trường người dùng thực, các kịch bản ngoài dự kiến liên tục tích tụ khiến việc phát triển không bao giờ thực sự kết thúc
- Nếu tạo ứng dụng riêng cho từng nền tảng, lỗi và phạm vi hỗ trợ sẽ tăng gấp 3 lần, làm gánh nặng bảo trì lớn hơn
- Electron phần nào giảm bớt vấn đề này thông qua một wrapper chung
Vì sao vẫn tiếp tục dùng Electron
- Dù phát triển dựa trên đặc tả đã trở nên khả thi, chi phí phát triển và gánh nặng bảo trì của 10% cuối cùng vẫn còn đó
- Bất chấp sự tiến bộ của công nghệ agent, lợi thế codebase duy nhất của Electron vẫn có giá trị trong thực tế
- Ở thời điểm hiện tại, Electron vẫn được xem là một lựa chọn hợp lý
- Coding agent đang đạt được những bước tiến đáng kinh ngạc, nhưng vẫn chưa đủ để trở thành giải pháp thay thế hoàn toàn
1 bình luận
Ý kiến trên Hacker News
Boris từ đội Claude Code đây
Trước đây có các kỹ sư từng phát triển Electron, nên họ thích xây theo hướng không phải native
Làm vậy sẽ giúp chia sẻ mã nguồn giữa web và desktop, từ đó giữ được UI/UX đồng nhất
Tất nhiên, mọi thứ đều là vấn đề đánh đổi, nên trong tương lai cũng có thể thay đổi
Có vẻ chuyện này vẫn có thể giải quyết bằng tối ưu hiệu năng mà không cần đổi stack. Ứng dụng di động cũng vậy
Bài học ở đây là hãy nhìn vào hành động hơn là lời nói
Rồi đùa rằng nếu vậy thì cứ bảo Claude “làm cho cái này bớt tệ đi” là được
liệu các AI agent có thể bảo trì chỉ với spec và test hay không
Nhất là khi xét tới giới hạn của những model như Opus 4.6, tôi khá tò mò kết quả sẽ ra sao
Lý do vì sao code không miễn phí là rất rõ ràng
Đội của chúng tôi cũng đã dùng Claude khá nhiều trong 6 tháng, nhưng tỷ lệ bug vẫn vậy
AI không phải lời giải vạn năng
Khi thuê ngoài tư duy cho AI, bạn sẽ đánh mất bản đồ tinh thần về hệ thống
Thế mà đã có người hỏi “sao chưa viết lại mọi thứ bằng AI” thì thật buồn cười
Xem link Imgur
AI coding agent chưa hoàn toàn ở mức đó, nhưng cần cảnh giác với những sai lầm chỉ nhanh hơn mà thôi
Trình duyệt của OpenAI cũng đã ra mắt được 4 tháng mà vẫn chỉ có trên macOS
Dù đã chạy trên engine đa nền tảng, tốc độ mở rộng vẫn chậm là điều khó hiểu
Cụm “Free as in puppy” khá dí dỏm
Nghe nói tiêu đề gốc bắt đầu bằng “If code is free,”
Bài viết này và toàn bộ thread trông rất giống mẫu tranh cãi kiểu HN
Kiểu lặp đi lặp lại như “AI dở”, “JavaScript dở”, “Electron dở”
Thực ra Electron gần như là ‘nền tảng hệ điều hành thứ tư’, nhưng nhiều lập trình viên không hiểu điều đó
Các app bây giờ trông như website được vá víu, lại có nhiều lỗi và sự lệch pha về style
Làm ứng dụng Mac native mang lại cảm giác tốt hơn nhiều
Electron có ưu điểm riêng, nhưng hầu như không có tối ưu theo từng OS
Cũng có nhiều UI native tệ, và rốt cuộc vẫn là chuyện con người viết code thế nào
Nếu Claude đang cung cấp công cụ CLI thì chọn Electron là hợp lý
Tôi có thừa nhận ưu điểm của Electron và cũng giải thích lý do lựa chọn
Chỉ là việc nó vẫn chậm ngay cả trên Mac Studio 64GB RAM là một chi tiết đáng chú ý
Việc còn kèm cả phụ thuộc npm mặc định vào cũng trông như thiếu lòng tự trọng kỹ thuật
Nó không hợp với khẩu hiệu “chúng tôi tuyển những người giỏi nhất”
Tôi thích JavaScript, nhưng mức dùng RAM thì thật điên rồ
Anthropic chưa bao giờ nói “code là miễn phí”
Họ nhấn mạnh vào tăng năng suất, và trên thực tế họ viết phần lớn code bằng LLM
Nếu muốn chỉ trích thì nên chỉ ra vấn đề thực tế thay vì dựng người rơm
thì câu hỏi “vì sao sản phẩm vẫn chưa tốt hơn” vẫn còn đó
Xem phỏng vấn trên Lenny’s Newsletter
Có vẻ bài viết này đang nhắm tới những người đó
Tôi là Felix. Tôi phụ trách các ứng dụng Electron của Claude Code Desktop và Claude Cowork
Ứng dụng của chúng tôi cũng chứa khá nhiều mã Rust, Swift và Go
Lý do dùng Electron và lý do phân phối engine riêng
đã được viết khá chi tiết trong tài liệu chính thức
Electron chỉ là một công cụ, và nếu cần chúng tôi có thể dùng thứ khác
CEO nói rằng “coding gần như là bài toán đã được giải quyết”, nên tôi muốn hỏi vì sao lại cho ra kết quả như vậy
Tôi gặp vấn đề khi đăng nhập Claude
Trình duyệt rơi vào trạng thái tải vô hạn, còn bấm đăng nhập thì lại chuyển sang trang đăng ký
Những chức năng cơ bản như vậy mà còn không ổn định thì khó gọi là “tương lai của lập trình”
Code tuyệt đối không miễn phí
Cuối cùng bạn vẫn sẽ phải trả giá bằng cách này hay cách khác
Dù AI có viết hết code đi nữa, vẫn cần người hiểu được nó
Khả năng đọc manual là thế mạnh của hacker,
và một công ty không hiểu sản phẩm mình tạo ra hoạt động thế nào thì rất nguy hiểm
Tôi nghĩ việc Claude dùng Electron không phải vấn đề kỹ thuật mà là vấn đề văn hóa
Với startup thì Electron là hợp lý,
nhưng với công ty lớn thì nên đầu tư vào chất lượng ứng dụng native và UX
Dù coding tự động đã khả thi mà họ vẫn không làm như vậy
cho thấy văn hóa phát triển ngày nay đã mất đi “ý chí tạo ra phần mềm tốt nhất”