Tập 12: Linux dạy mình điều gì?

Lá thư nổi tiếng của Linus Torvalds gửi trên nhóm tin comp.os.minix mang một vẻ giản dị và thành thật đến mức kinh ngạc. Một cậu sinh viên nói rằng mình đang viết một hệ điều hành miễn phí cho máy tính sử dụng chip Intel 386/486, muốn lắng nghe mọi người thích và ghét điều gì ở Minix, rồi cẩn thận hạ thấp kỳ vọng của độc giả: đây chỉ là một sở thích cá nhân (just a hobby), sẽ không lớn và chuyên nghiệp như GNU.

Nếu lá thư ấy được viết trong thời đại hôm nay, có lẽ ai đó sẽ khuyên Linus phải thiết kế thêm logo, làm landing page, mở waitlist và vẽ một biểu đồ thị trường hoành tráng. May mắn thay cho lịch sử công nghệ, Linus đã tập trung port thành công Bash shell và GCC compiler lên hệ thống của mình trước khi công bố nó.

Chi tiết thực tế ấy chạm vào tôi sâu sắc hơn mọi câu chuyện huyền thoại thành công về sau. Linus không cầu xin cộng đồng tin tưởng vào tầm nhìn bằng một loạt tính từ hoa mỹ. Anh đưa ra những bằng chứng thép của tính hữu dụng: shell đã chạy được, compiler đã hoạt động, filesystem đã sẵn sàng, mã nguồn tự viết không sao chép từ Minix, và hệ thống vẫn còn phụ thuộc nhiều vào phần cứng 386 cụ thể. Chỗ nào chưa portable, anh nói rõ chưa portable. Chỗ nào chưa làm được, anh không hứa hẹn.

Người làm một dự án đầy tham vọng rất dễ mắc kẹt giữa hai trạng thái tâm lý cực đoan. Hoặc là ta nói quá lớn để tự thổi phồng và giữ lửa cho chính mình, hoặc ta xấu hổ vì sản phẩm ban đầu còn quá nhỏ bé nên không dám cho bất kỳ ai xem. Lá thư của Linux gợi ra một con đường thứ ba cực kỳ khôn ngoan: nói nhỏ lại, chỉ ra cái đang chạy thực tế, thành thật thừa nhận giới hạn, rồi mời mọi người cùng tham gia đóng góp.

Tôi nhìn thấy DUY trong sự vụng về dễ mến ban đầu ấy. Không phải vì DUY đã có tầm vóc vĩ đại như Linux; so sánh như vậy là sự hoang tưởng bất kính. Tôi nhìn thấy ở đây một nguyên tắc làm việc: đừng chờ đợi một kiến trúc hoàn hảo mới tạo ra sản phẩm. Hãy làm một lát cắt đủ thật để người khác có thể chạm vào, chạy thử, phá hỏng nó và phản hồi cho ta biết điều gì đang sai.

Linux ban đầu tận dụng triệt để chính phần cứng chip 386 mà Linus đang có. Nó phụ thuộc sâu vào kiến trúc máy đến mức tác giả từng nghĩ việc port sang các kiến trúc khác là bất khả thi. Nhưng về sau, chính cái hệ điều hành "không portable" ấy lại đi lên vận hành trên vô số kiến trúc phần cứng khác nhau của nhân loại. Bài học rút ra là một giới hạn công nghệ được thừa nhận sớm không phải là bản án chung thân; nó là cách khoanh vùng bài toán thông minh để có thể bắt đầu hành động ngay lập tức.

DUY cũng cần làm như vậy ở giai đoạn đầu. Compiler đầu tiên có thể tạm chạy trên nền Node.js. Backend đầu tiên có thể tạm dịch qua C. Một số cơ chế tự dựng ban đầu có thể dùng chính JavaScript làm oracle kiểm chứng. Những cây cầu tạm ấy không hề phản bội tầm nhìn dài hạn của DUY, miễn là chúng được gắn biển cảnh báo đúng tên và có một lộ trình thay thế rõ ràng. Nguy hiểm thực sự chỉ xuất hiện khi ta quên mất đâu là cầu tạm rồi tự mãn tổ chức lễ khánh thành trên đó.

Linux còn dạy một bài học khó hơn: hệ sinh thái không được xây dựng bằng việc một cá nhân cố gắng tự viết mọi thứ. Nó lớn lên nhờ khả năng để người khác đọc, chạy, phê bình và cùng tham gia đóng góp. Điều này có nghĩa DUY không thể chỉ là một compiler đơn độc. Nó bắt buộc phải có docs, test, formatter, package manager và những cánh cửa đủ dễ mở cho cộng đồng.

Tôi khép lại những trang tài liệu cũ của Linux với một cảm giác nhẹ nhõm. Dự án lớn không cần phải cố gắng đóng giả làm khổng lồ ngay từ vạch xuất phát. Nó chỉ cần mỗi phiên bản mới thành thật và hữu dụng hơn phiên bản trước.


Bình luận (0)

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