[Fun] Đệ quy "Go được viết bằng Go"



  • Nếu bạn từng xem qua offical repos của Go trên P*rn,... à nhầm Github thì chắc chắn cũng thấy rõ là "Go được viết bằng Go" (ngoài ra còn có vài gia vị phụ như C, Assembly, Perl...).

    Từ đó, ta có một đệ quy hại não xuất hiện:

    $> Go viết bằng Go
    $> Mà Go viết bằng gì
    $> Thì Go viết bằng Go
    $> Mà Go viết bằng gì
    $> ...
    

    Nó cứ lặp đi lặp lại mãi càng nhối não thêm phải không 🙂
    Okay, quay lại lịch sử ra đời của Go tí nào.

    Ban đầu Go được lên ý tưởng thiết kế và được viết bằng C (chính xác hơn là có thêm thằng Assembly đi kèm, vài ba cụ Perl để làm parser), sau một thời gian thì nó cũng được ra mắt chính thức.

    Đến một thời điểm chín mùi (Go hoàn chỉnh) thì nó đã đủ lông đủ cánh để có thể "được sử dụng thay thế cho C" (trong đó bao gồm struct, memory management, asm...). Từ đó các bản Go tiếp theo không được viết bằng C nữa mà thay vào đó là bằng Go.

    Vì vậy, cái hại não ở đây chính là suy nghĩ "gốc rễ của quá khứ bị thay đổi thì tương lai cũng thay đổi theo" (kiểu như trong truyện Doraemon 🙂 ). Nhưng thực tế thì là "giữ sản phẩm, dùng sản phẩm làm công thức để tạo sản phẩm mới hơn". Trong trường hợp này, người ta dùng bản lastest Go stable để build Go mớiGo mới để build Go mới hơn...

    $> C đẻ ra Go
    $> C nuôi Go lớn
    $> Go trưởng thành, nối nghiệp C
    $> Go không phải con ruột nên đạp đổ C
    $> Từ đó Go đẻ ra Go con
    $> Go con đẻ ra Go cháu
    $> ... chắt ...
    

    Line 4: Vui tí thôi, Go có nhiều tương đồng với C mà.

    Buôn dưa đến đây chắc cũng đủ rồi, end nhé! 😄

    Tham khảo


  • Trùm cuối

    Bài viết hay quá 😂


Hãy đăng nhập để trả lời
 

Có thể bạn cũng quan tâm

.
DMCA.com Protection Status