Anh em lùi về quá khứ bao xa thì không còn đọc hiểu được tiếng Anh? Drama Hacker News này chứng minh ngôn ngữ cũng y chang cái đống legacy code không có document.

Anh em bao giờ mở con source code từ chục năm trước ra đọc mà có cảm giác như đang giải mã ký tự của người ngoài hành tinh chưa? Hôm nay lướt Hacker News thấy có cái topic khá khét: "Anh em có thể đọc hiểu tiếng Anh lùi về quá khứ bao xa?". Nghe thì sặc mùi ngôn ngữ học, nhưng ngẫm lại nó giống hệt câu chuyện maintain legacy code của dân dev mình. Đi pha cốc trà đá rồi ngồi xuống đây, tôi kể cho mà nghe độ ảo ma của cái thread này.
Cái bài gốc trên deadlanguagesociety ném cho anh em một đoạn text tiếng Anh, sau đó lùi dần về quá khứ (kiểu 1900, 1800, 1600, 1400...). Thử thách ở đây là xem não anh em load được đến mốc thời gian nào trước khi chính thức văng lỗi SyntaxError.
Càng lùi sâu, font chữ càng ảo, cách đánh vần càng biến dạng, giống hệt cái trò đổi syntax qua từng version framework. Nhiều ông trên HN thừa nhận là lùi đến tầm lúc máy in bắt đầu phổ biến (tầm những năm 1400 - 1500) là não bắt đầu cắn RAM, từ chối hiểu. Mọi thứ đang chạy mượt mà bỗng dưng xuất hiện những ký tự lạ hoắc nhìn như chuỗi hash bị lỗi.
Topic thả ra hút sương sương hơn 600 points. Anh em thi nhau vào debug cái ngôn ngữ này và chia ra mấy luồng quan điểm chính:
1. Phe "Lỗi tại UI/UX": Vài thanh niên bóc phốt là cái bài test đọc này thực ra "bịp" ở chỗ thay đổi glyphs (ký tự hiển thị). Chữ cái nó vẽ rồng vẽ phượng nên khó nhìn thôi. Chứ nếu copy đoạn text đó, ném vào Notepad đổi sang font Arial hay Times New Roman thì dân tình (những người hay đọc sách) vẫn parse tốt.
2. Phe dính "Bug Font" chí mạng: Mốc năm 1400 có một con trùm cuối tên là chữ thorn ("þ"). Ông nào không biết cái chữ này tương đương với "th" thì xác định crash app, kẹt luôn ở mốc đó. Thấy chưa, xài framework mà không đọc kỹ document cái là toang ngay.
3. Phe "Đọc thì mượt nhưng nghe thì điếc": Một thanh niên tên dddgghhbbfblk (chắc lúc đặt nick gõ bừa bàn phím) chỉ ra một bug thực tế: Đọc và Nghe là hai service chạy độc lập. Viết thì nhìn quen, nhưng phát âm thì nó lại là một hệ tư tưởng khác. Có ông share link video test nghe accent Bắc Anh (Northern English), chạy lùi về tầm năm 1950 thôi mà nhiều anh em bản địa đã xin đầu hàng, kêu bật subtitle gấp. Ảo ma hơn, một vài thanh niên ESL (tiếng Anh không phải tiếng mẹ đẻ) lại gáy là tao đọc hiểu text năm 1600 dễ ẹc, nhưng sang Anh quốc nghe mấy bô lão nói thì chả hiểu mẹ gì.
Qua vụ này anh em rút ra được gì để giữ cần câu cơm? Tiếng Anh hay bất kỳ ngôn ngữ nào nó cũng như một cái open-source framework sống vậy. Càng đắp thêm tính năng, đổi style qua hàng thế kỷ thì nó càng phình to.
Những quy tắc "chính tả" (spelling) cố định mà trường học nhồi sọ chúng ta, thực chất chính là lớp vỏ Backward Compatibility (tương thích ngược) giúp các thế hệ sau nhìn vào văn bản cũ vẫn lờ mờ đoán được ý nghĩa, dù cách nói chuyện ngoài đời đã quay xe 180 độ.
Thế nên, lần tới có bị assign maintain một cục legacy code không comment, dùng toàn công nghệ thời Hùng Vương, đừng chửi vội thằng dev đời đầu. Ít ra nó còn để lại source code bằng ngôn ngữ bậc cao, chứ nó mà viết bằng tiếng Anh cổ có chứa ký tự "þ" hoặc đặt tên biến theo accent vùng miền thì anh em chỉ có nước đập máy đi làm thợ mộc.
Viết code cho máy đọc là bản năng, viết code cho người đọc mới là nghệ thuật. Nhớ viết code dễ đọc, dễ hiểu, bớt xài mấy cái syntax trick dị hợm đi. Để 10 năm sau có thằng đệ nào lôi source của ông ra refactor, nó không lôi tổ tông nhà ông ra tế. Nhá!
Nguồn hóng hớt: How far back in time can you understand English? - Hacker News