Goose: Ngôn ngữ lập trình hệ thống mới nhanh hơn C++ và Rust, được viết gần như hoàn toàn bằng AI
Goose là ngôn ngữ lập trình hệ thống an toàn bộ nhớ không cần heap, garbage collector hay chú thích lifetime. Theo benchmark của tác giả, Goose chạy nhanh hơn C++ và Rust an toàn trong khi dùng ít bộ nhớ hơn — và đáng chú ý, toàn bộ trình biên dịch được xây dựng gần như hoàn toàn bằng AI từ thiết kế ngôn ngữ của con người.

Trong làng ngôn ngữ lập trình, hiếm có dự án nào vừa gây tranh cãi vừa đáng chú ý như Goose — một ngôn ngữ lập trình hệ thống mới do Wouter van Oortmerssen thiết kế, với điểm đặc biệt: gần như toàn bộ trình biên dịch được viết bởi AI.
Điều khiến Goose thu hút sự quan tâm không chỉ nằm ở các tuyên bố về hiệu năng, mà còn ở cách nó được tạo ra: tác giả thiết kế ngôn ngữ, còn AI (cụ thể là một mô hình có tên "Fable") đảm nhận phần hiện thực trình biên dịch, viết benchmark, mẫu code và tài liệu.
Discord
Mô hình bộ nhớ không heap, không GC
Điểm khác biệt cốt lõi của Goose là không có heap. Mọi giá trị động đều sống trực tiếp trên các data stack do trình biên dịch quản lý tĩnh. Khi cần mở rộng, chương trình chỉ việc dịch chuyển một con trỏ; khi ra khỏi phạm vi, bộ nhớ được giải phóng bằng một phép ghi duy nhất.
Cụ thể, một chương trình Goose có call stack gốc, vùng dữ liệu tĩnh và N data stack (trình biên dịch xác định N). Mỗi data stack là một vùng địa chỉ lớn được đặt trước với con trỏ bump. Điều thú vị là tối đa chỉ một giá trị có thể thay đổi kích thước tồn tại trên mỗi stack và nó luôn nằm trên cùng — nhờ đó việc mở rộng không bao giờ phải di chuyển dữ liệu hay kiểm tra dung lượng.
Ưu điểm kéo theo: tham chiếu vẫn còn hiệu lực khi mảng mở rộng. Một tham chiếu trỏ vào phần tử của mảng đang lớn dần vẫn hợp lệ chừng nào mảng còn sống — điều mà std::vector của C++ hay Vec của Rust không đảm bảo được.
An toàn bộ nhớ nhưng không cần chú thích
Goose không có cú pháp lifetime, không có quy tắc aliasing hay exclusivity, cũng không có unsafe. Trình biên dịch tự suy luận gốc (root) của mọi tham chiếu — tức biến quy định vòng đời của đối tượng được trỏ tới — và từ chối các tham chiếu có thể sống lâu hơn chủ sở hữu.
Khi kiểm tra vòng đời thất bại, thông báo lỗi chỉ rõ cả root lẫn đích đến của tham chiếu, giúp lập trình viên dễ dàng sửa chữa mà không phải vật lộn với các thông báo lỗi trừu tượng như ở Rust.
Dữ liệu lồng nhau nằm liền mạch
Goose không có một kiểu mảng duy nhất mà là cả một họ kiểu, tất cả đều có cấu trúc [metadata][elements...] liền mạch, không có con trỏ trỏ tới vùng phần tử:
T[k]— kích thước cố định, biết lúc biên dịchT[]/T[varint]— kích thước xác định lúc khởi tạo, đóng băng sau đóT[..k]/T[..]— capacity nằm liền, co giãn trong đóT[>..]— chỉ mở rộng, "con ngựa thồ" của ngôn ngữ
Nhờ vậy, một bản ghi (record) có các trường kích thước thay đổi vẫn nằm gọn trong một khối byte liền mạch. Ví dụ tác giả dẫn ra: một đơn hàng gồm std::string + std::vector trong C++ tốn 160 byte và 1 lần cấp phát, còn trong Goose chỉ tốn 29 byte và 0 lần cấp phát.
Enum tốn đúng chỗ nó chứa
Các kiểu dữ liệu đại số (ADT) trong Goose có hai chế độ lưu trữ. Chế độ cố định là tag cộng vùng chứa payload lớn nhất. Chế độ biến đổi (Shape..) cho mỗi giá trị đúng kích thước của biến thể nó chứa — ví dụ 9, 17 và 1 byte thay vì cùng 17 byte. Theo benchmark, cách này tiết kiệm 4 lần bộ nhớ và nhanh gấp đôi enum của Rust.
Liên kết hẹp hơn con trỏ
Goose hỗ trợ tham chiếu tương đối (T&<...>) lưu dưới dạng offset 1, 2 hoặc 4 byte thay vì địa chỉ máy 8 byte. Cấu trúc dữ liệu xây dựng từ kiểu liên kết này có tính độc lập vị trí — nghĩa là dữ liệu của bạn đã chính là định dạng file: lưu là ghi byte, đọc là đọc byte rồi chạy một lượt kiểm tra loại bỏ byte độc hại.
Không chia sẻ bộ nhớ giữa các luồng
Mô hình đa luồng của Goose triệt để: một thread_fn được biên dịch thành chương trình riêng với bộ nhớ riêng. Dữ liệu đi qua các hàng đợi có kiểu, và vì giá trị phẳng của Goose là liền mạch nên việc truyền chỉ là một phép memcpy. Nhờ đó, ngôn ngữ này không tồn tại data race, lock, atomic hay memory ordering.
Hiệu năng: con số biết nói
Theo số liệu benchmark của chính dự án, trên 16 bài benchmark, Goose đạt tốc độ 3,3 lần C++ viết theo lối thông thường, 1,16 lần C++ đã tối ưu tay và 1,12 lần Rust an toàn tốt nhất, đồng thời dùng ít bộ nhớ hơn tương ứng 1,9, 1,3 và 1,2 lần. Tác giả thẳng thắn liệt kê cả các trường hợp thua kém trong tài liệu.
Cái giá phải trả
Goose không miễn phí. Lập trình viên phải suy nghĩ về nơi dữ liệu sống: ai sở hữu, phạm vi tồn tại bao lâu. Các hàm đệ quy không thể giữ dữ liệu có thể mở rộng qua lời gọi đệ quy. Mảng phần tử kích thước biến đổi thì duyệt được nhưng không đánh chỉ số được. Và không có closure thoát ra ngoài, không con trỏ hàm, không dispatch động ngoài tag của ADT.
Viết bằng AI — từ thiết kế của con người
Phần gây tranh luận nhất có lẽ là câu chuyện nguồn gốc. Tác giả cho biết ông đã thiết kế Goose từ nhiều năm trước nhưng không có thời gian hoàn thiện vì đang điều hành startup game. Khi mô hình AI "Fable" xuất hiện, ông nhận ra nó đủ khả năng hiện thực hóa ngôn ngữ này.
"Repo này được tạo ra gần như hoàn toàn bằng AI, từ một thiết kế ngôn ngữ của con người. [...] Đây cũng là một thử nghiệm về việc dùng AI để hiện thực một ngôn ngữ mới, thay vì tái tạo một ngôn ngữ đã có."
Trình biên dịch hiện tại gồm khoảng 30.000 dòng C++, biên dịch ra một file C duy nhất — nghĩa là chương trình Goose chạy được ở bất cứ đâu có trình biên dịch C và gọi C trực tiếp qua extern fn.
Góc nhìn cho cộng đồng lập trình viên Việt Nam
Với các kỹ sư hệ thống và nhúng trong nước, Goose đáng để theo dõi ở hai khía cạnh. Thứ nhất, mô hình "không heap, không GC" rất phù hợp với các thiết bị tài nguyên hạn chế như vi điều khiển hay thiết bị IoT — lĩnh vực mà nhiều startup Việt đang tham gia. Thứ hai, cách dự án này dùng AI để hiện thực một ngôn ngữ lập trình hoàn chỉnh là ví dụ thực tế đáng tham khảo về việc áp dụng AI vào công việc kỹ thuật phức tạp.
Dù vậy, cần lưu ý Goose vẫn rất non trẻ: chưa có moves cho giá trị co giãn, chưa hỗ trợ nhiều hơn một giá trị co giãn mỗi struct, và biên dịch toàn chương trình. Nó chưa phù hợp cho dự án sản phẩm ngay lúc này, nhưng là một hướng nghiên cứu đáng chú ý về cách các ngôn ngữ hệ thống có thể tiến hóa.
Twitter
Dự án phát hành theo giấy phép Apache 2.0, có sẵn bản build cho Windows, Linux và macOS, kèm extension VS Code và language server.
Bài viết liên quan

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nghe trực tiếp các bản tin hành động khẩn cấp của lực lượng hạt nhân Mỹ trên tần số 11175 kHz
24 tháng 10, 2026