Tập 10: Từ ý tưởng thành repo

Ngày 17 tháng 6 năm 2026, DUY chính thức xuất hiện trong hệ thống quản lý Git với những thứ vô cùng khiêm tốn: một file README.md, một file manifest package.json và tệp cấu hình .gitignore. Không có tiếng sét, không có nhạc nền hoành tráng. Git chỉ ghi nhận một commit bình thường như hàng triệu commit khác trên thế giới.

Nhưng điều quan trọng xảy ra ngay sau đó: tầm nhìn lãng mạn đã được ép chặt thành một lời hứa kỹ thuật có thể đo lường và kiểm tra được:

Mã nguồn DUY (.duy) -> Trình biên dịch (duyc) -> File thực thi gốc (native binary)

Đây là cách thu nhỏ một giấc mơ lớn để nó bắt đầu phải chịu trách nhiệm trước thực tế máy tính. Chưa cần vội xây dựng hệ sinh thái thư viện, package registry hay web framework hoành tráng. Trước hết, bắt buộc phải có một tệp nguồn .duy, một compiler chạy được để hiểu nó, và một tệp thực thi gốc nhị phân nhả ra mà CPU máy tính có thể chạy trực tiếp.

Các tài liệu đầu tiên đã đặt ra những nguyên tắc bất di bất dịch: bề mặt đơn giản nhưng lõi ngữ nghĩa nghiêm khắc; chi phí vận hành quan trọng phải tường minh; safe DUY tuyệt đối không dựa vào hành vi không xác định (Undefined Behavior); bộ nhớ phải mang tính dự đoán được (deterministic) trước khi nói đến GC; effects phải là một phần của hệ thống kiểu; AI hỗ trợ đề xuất nhưng compiler luôn là người phán quyết cuối cùng.

Sau đó, mã nguồn bắt đầu xuất hiện: CLI, compiler core, IR parser, optimizer V0, backend và các thư mục examples. Ở giai đoạn khởi đầu này, JavaScript và C đóng vai trò làm hệ thống giàn giáo bootstrap. Chúng giúp DUY nhanh chóng chứng minh được sự hoạt động trơn tru của toàn bộ đường ống (pipeline) thay vì bắt chúng tôi phải mất nhiều năm trời tự xây dựng mọi tầng kiến trúc từ con số không.

Giàn giáo không có gì đáng xấu hổ. Chỉ có việc quên mất mình đang đứng trên giàn giáo tạm thời rồi vội vàng tổ chức lễ khánh thành trên đó mới là điều đáng lo ngại.

Commit đầu tiên không chứng minh DUY sẽ thành công vang dội. Nó chứng minh một điều nhỏ hơn nhưng thiết thực hơn: dự án đã chính thức đi từ những câu hỏi triết lý sang các sản phẩm kỹ thuật thật sự (artifacts). Từ đây, mỗi tuyên bố thiết kế sẽ phải đối mặt trực diện với lexer, parser, checker, tests, binary và các phép đo hiệu năng thực tế.

Tôi nhìn lại thư mục vừa tạo và hiểu rằng phần lãng mạn và dễ dàng nhất đã khép lại. Một ngôn ngữ lập trình không lớn lên nhờ các slide tầm nhìn bóng bẩy; nó lớn lên qua những lần một thanh trạng thái kiểm thử báo đỏ rực, buộc người thiết kế phải thừa nhận rằng máy tính không bao giờ quan tâm chúng ta đã mơ đẹp đến mức nào.

Ở chương tiếp theo, trước khi viết thêm code, tôi phải quay lại học hỏi nghiêm túc từ những người đã xây dựng nên thế giới cũ: C, Unix, Linux, Rust, Go, Java, LLVM, CompCert và seL4. Muốn đi xa hơn họ ở một vài điểm, trước tiên phải hiểu rõ vì sao họ đã đi xa đến thế.


Tập 10: Từ ý tưởng thành repo

Bình luận (0)

Đang tải bình luận...