TamboUI: Hứa hẹn mang lại khả năng xây dựng TUI tốt hơn cho Java

Phần mềm26 tháng 5, 2026·5 phút đọc

TamboUI đã ra mắt như một câu trả lời mạnh mẽ cho lời kêu gọi "biến 2026 thành năm của Java trên terminal". Thư viện này cung cấp các công cụ hiện đại để xây dựng giao diện người dùng văn bản (TUI), từ vẽ cấp thấp đến các thành phần cấp cao, và đã được các dự án lớn như Maven và Spring áp dụng.

TamboUI: Hứa hẹn mang lại khả năng xây dựng TUI tốt hơn cho Java

Lời kêu gọi hành động "biến 2026 thành năm của Java trên terminal" đã nhanh chóng nhận được sự đáp trả thông qua sự ra mắt của TamboUI, thư viện TUI (Text User Interface) hiện đại đầu tiên dành cho Java. Được lấy cảm hứng từ Ratatui—thư viện được cho là đã được sử dụng để phát triển Claude CLI—TamboUI hứa hẹn hỗ trợ mọi thứ từ thao tác vẽ terminal ở cấp độ thấp đến các API cấp độ cao như các thành phần giao diện và xử lý sự kiện. Hiện tại ở phiên bản 0.3.0, thư viện này đã được các dự án lớn như Maven và Spring đưa vào sử dụng.

Trong một bài đăng trên blog vào đầu tháng 1, Andersen đã khuyến khích cộng đồng Java xây dựng các giao diện người dùng văn bản bằng chính ngôn ngữ này thay vì sử dụng các ngôn ngữ lập trình khác. Ông khẳng định rằng sự trưởng thành và khả năng của Java khiến nó ít nhất cũng tốt ngang ngửa với Python, Rust hay Go trong việc phát triển TUI.

Andersen nhận định: "Điều khác biệt hiện nay không phải là hoài niệm về terminal—đó là áp lực. Các nhà phát triển ngày nay mong đợi phản hồi nhanh, ít thủ tục rườm rà và những công cụ đáp ứng họ ngay tại nơi họ đang làm việc."

Andersen cũng lưu ý rằng việc đóng gói và phân phối, từng là rào cản đối với các ứng dụng dòng lệnh (CLI) của Java, nay đã được hưởng lợi từ các tùy chọn native và thời gian chạy đơn giản hơn, phù hợp với kỳ vọng "ít thủ tục" của các nhà phát triển hiện đại. Các thư viện trưởng thành và độ tin cậy đa nền tảng của Java hoàn toàn phù hợp với các trường hợp sử dụng CLI, tạo nên sự cấp thiết để xây dựng các công cụ terminal mới bằng Java thay vì các ngôn ngữ khác.

Ý tưởng về một thư viện TUI mới cho Java bắt nguồn từ một cuộc trò chuyện trên Bluesky về Claude Code CLI, sau đó được công bố chính thức là sự ra mắt của TamboUI. Champeau cam kết rằng thư viện mới ra mắt này sẽ nâng tầm khả năng xây dựng UI của hệ sinh thái Java từ trạng thái "nguyên thủy" lên hiện đại, cung cấp nhiều khả năng hơn, gần gũi hơn với cộng đồng vốn đã quen với các khả năng cấp độ cao.

Champeau chia sẻ: "[TamboUI] mang đến cho các nhà phát triển Java những khả năng mà họ đã có từ lâu trong các ứng dụng desktop (ví dụ: JavaFX) nhưng ngay trên terminal."

Để hiểu rõ hơn về trạng thái của thư viện và động cơ phát triển nó, InfoQ đã liên hệ với Andersen và Champeau để có thêm bình luận.

Khi được hỏi về sự phù hợp của Java trong việc phát triển TUI hiệu quả, Max Rydahl Andersen giải thích rằng việc phân phối phải đơn giản theo mặc định. Người dùng không nên quan tâm đến các tệp JAR, classpath hay cờ JVM. CLI cần cảm giác có thể cài đặt và chạy giống như bất kỳ công cụ native nào. Các công cụ như JReleaser kết hợp với JBang giúp việc đóng gói và phân phối các ứng dụng hoàn chỉnh thông qua tất cả các hệ sinh thái đóng gói lớn trở nên dễ dàng. Trải nghiệm này tương tự như những gì mọi người biết đến từ npm/pip/pipx/npx/uvx.

Về những gì cần thiết để có các giao diện terminal thân thiện trong Java, Andersen chỉ ra hai khía cạnh cần thay đổi:

  • Về mặt kỹ thuật: Cần các thư viện UI terminal hiện đại với bố cục và widget phù hợp, hỗ trợ bàn phím và chuột, xử lý Unicode đúng cách, hỗ trợ hình ảnh ở những terminal cho phép và kiểu dáng trông có chủ đích thay vì ngẫu nhiên.
  • Về mặt văn hóa: Không nên đặt Java lên một bục tưởng tượng, coi nó chỉ dành cho "doanh nghiệp" hay "kiến trúc vi dịch vụ". Đa số các công cụ của chính Java, trình biên dịch, công cụ xây dựng, trình quản lý phụ thuộc và công cụ kiểm thử đều sống trong terminal. Tuy nhiên, chúng ta luôn đầu tư kém vào việc làm cho trải nghiệm đó trở nên tuyệt vời.

Champeau cho biết ý tưởng ban đầu đến từ Ratatui (dựa trên Rust). Tuy nhiên, Ratatui vẫn khá cấp thấp, đặc biệt khi so sánh với những gì các nhà phát triển Java đã quen thuộc. Do đó, nhóm quyết định cung cấp các cấp độ trừu tượng cao hơn. Họ vay mượn ý tưởng từ các khung công tác khác như Charm hoặc Bubbletea, nhưng cũng lấy cảm hứng từ hệ sinh thái desktop của Java, tích hợp ý tưởng từ Swing và JavaFX.

Một điểm độc đáo của TamboUI là kiến trúc mô-đun của nó, cho phép người dùng chọn cấp độ trừu tượng họ muốn sử dụng, từ thấp nhất đến cao nhất.

Khi được hỏi liệu Java có phù hợp để xây dựng CLI hay không, Champeau khẳng định: "Không còn nghi ngờ gì nữa! Nếu bạn lo lắng về thời gian khởi động hoặc phân phối, chúng tôi cũng đã tính đến điều đó từ ngày đầu tiên: TamboUI hoàn toàn tương thích với GraalVM, cho phép bạn xây dựng các tệp nhị phân native từ mã nguồn Java. Điều này có nghĩa là trên thực tế, bạn có thể phân phối một tệp thực thi khoảng 10MB chứa mọi thứ cần thiết, khởi động ngay lập tức và có dấu chân bộ nhớ giảm thiểu. Đó là khoảng trống cuối cùng chúng tôi phải lấp đầy trước khi so sánh mình với các ngôn ngữ khác như Go."

Sự thay thế TUI mới cho Java này đã nhanh chóng được chấp nhận, được tích hợp vào hệ sinh thái Quarkus cho các dev shell phản hồi nhanh, được sử dụng để cung cấp năng lực cho bảng điều khiển nhật ký xây dựng tương tác của Maveniverse Pilot và tạo ra Spring Initializr TUI dựa trên console. Ngoài ra, thông báo này đã nhận được phản hồi tích cực từ cộng đồng rộng lớn hơn.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗