11 điểm bởi GN⁺ 2025-11-10 | 2 bình luận | Chia sẻ qua WhatsApp
  • Tabloid là một ngôn ngữ lập trình Turing hoàn chỉnh cho phép viết mã theo văn phong tiêu đề tin tức clickbait (câu view)
  • Việc xuất dữ liệu được thực hiện bằng cú pháp YOU WON'T WANT TO MISS, và mọi đầu ra đều tự động chuyển thành CHỮ HOA và thêm dấu chấm than
  • Khai báo hàm dùng cú pháp DISCOVER HOW TO ... WITH, khai báo biến dùng cú pháp EXPERTS CLAIM ... TO BE
  • Không có cấu trúc vòng lặp, thay vào đó việc lặp được triển khai bằng lời gọi đệ quy, và giá trị trả về của hàm được biểu diễn bằng SHOCKING DEVELOPMENT
  • Chương trình bắt buộc phải kết thúc bằng PLEASE LIKE AND SUBSCRIBE, và hiện có trình thông dịch JavaScript cùng bản triển khai Racket

Tổng quan về ngôn ngữ Tabloid

  • Tabloid là một ngôn ngữ được thiết kế để viết chương trình theo phong cách tiêu đề báo clickbait
    • Trong mã ví dụ, hàm được khai báo theo dạng DISCOVER HOW TO fibonacci WITH a, b, n
    • Sử dụng các cú pháp dạng câu như RUMOR HAS IT, WHAT IF, END OF STORY
  • Mọi đầu ra của ngôn ngữ đều bắt đầu bằng YOU WON'T WANT TO MISS, đồng thời tự động chuyển thành chữ hoa và thêm dấu chấm than

Cú pháp và đặc điểm chính

  • Khai báo hàm: DISCOVER HOW TO ... WITH
  • Khai báo/gán biến: EXPERTS CLAIM ... TO BE
  • Câu lệnh điều kiện: WHAT IF ... LIES!
  • Gọi hàm: A OF B, C
  • Phạm vi khối: bắt đầu bằng RUMOR HAS IT, kết thúc bằng END OF STORY
  • Câu lệnh trả về: SHOCKING DEVELOPMENT
  • Kết thúc chương trình: PLEASE LIKE AND SUBSCRIBE
  • Giá trị boolean: TOTALLY RIGHT(true), COMPLETELY WRONG(false)
  • Toán tử: PLUS, MINUS, TIMES, DIVIDED BY, MODULO, IS ACTUALLY, BEATS, SMALLER THAN v.v.

Cách ngôn ngữ vận hành

  • Tabloid có thể chạy thông qua trình thông dịch được viết bằng JavaScript
  • Các kiểu dữ liệu được hỗ trợ là số, chuỗi, boolean
  • Không có cú pháp vòng lặp, và việc lặp được triển khai bằng gọi đệ quy
  • Ngoài trình thông dịch trực tuyến, còn có bản triển khai Racketthư viện hàm hỗ trợ

Bối cảnh phát triển

  • Tác giả cho biết đã tạo ra ngôn ngữ này để né làm bài tập môn hệ quản trị cơ sở dữ liệu
  • Trước Tabloid, tác giả cũng từng phát triển một ngôn ngữ thực dụng hơn mang tên Ink

Danh sách từ khóa chuẩn

  • DISCOVER HOW TO...WITH: khai báo hàm
  • RUMOR HAS IT: bắt đầu khối
  • A OF B, C: gọi hàm
  • WHAT IF...LIES!: câu lệnh điều kiện
  • END OF STORY: kết thúc khối
  • EXPERTS CLAIM...TO BE: khai báo/gán biến
  • YOU WON'T WANT TO MISS: xuất dữ liệu
  • LATEST NEWS ON: nhập từ người dùng
  • TOTALLY RIGHT, COMPLETELY WRONG: giá trị boolean
  • AND, OR: toán tử logic
  • PLUS, MINUS, TIMES, DIVIDED BY, MODULO: toán tử số học
  • IS ACTUALLY, BEATS, SMALLER THAN: toán tử so sánh
  • SHOCKING DEVELOPMENT: trả về từ hàm
  • PLEASE LIKE AND SUBSCRIBE: kết thúc chương trình

2 bình luận

 
yangeok 2025-11-12

Bạn định thuyết phục cả đội chuyển codebase sang ngôn ngữ này à? ha ha ha

 
GN⁺ 2025-11-10
Ý kiến trên Hacker News
  • Sẽ vui hơn nếu tiêu đề bài đăng là “Will this programming language revolutionize software development?

    • Sẽ hay nếu thông báo lỗi hiện ra kiểu “YOU WON'T BELIEVE WHAT YOU'LL SEE IN LINE ${line_number}
    • Việc bài đăng vẫn thành công dù giữ được truyền thống không giật tít của cộng đồng khiến người này ấn tượng
  • Ngôn ngữ này trước đây cũng từng nổi tiếng
    Nó cũng từng được bàn tán trong bài viết số 24578749 năm 2020 và bài viết số 40964261 năm 2024

    • Không ngờ chỉ với vài từ khóa mà lại có thể vui đến vậy
      Người này đang nghĩ đến chuyện dùng các macro như thế này trong công việc thực tế để giữ cho việc lập trình luôn thú vị
      Trong ví dụ mã, các cụm như “EXPERTS CLAIM”, “SHOCKING DEVELOPMENT”, “PLEASE LIKE AND SUBSCRIBE” lặp đi lặp lại, trông đúng như các tiêu đề tin tức
  • Có vẻ tiêu đề “And That’s a Good Thing” tóm tắt rất đúng tình huống này

  • Có người nêu ý tưởng dùng “CONSIDERED HARMFUL” làm toán tử phủ định hậu tố

    • Mượn cách diễn đạt kiểu Anh, “IN BOOST TO x” sẽ là tăng 1, “IN BLOW TO x” là giảm 1,
      còn “BAN THIS SICK FILTH” thì có thể dùng làm cú pháp ném ngoại lệ
      Họ cũng cho rằng nên nhét thêm những từ như “SLAMS” hay “SNUBBED” vào đâu đó
  • Có thể xem chi tiết trong phần tổng quan ngôn ngữ của README trên GitHub

  • Sẽ còn hoàn hảo hơn nếu tên vòng lặp là “BREAKING NEWS … KEEP READING TO DISCOVER

  • “BREAKING NEWS! Ngu ngốc một cách hoàn hảo nhưng lại đáng yêu”
    Người này định thuyết phục cả đội chuyển codebase sang ngôn ngữ này
    Và kết lại bằng câu “FOLLOW ME to find out how it goes”

    • Họ còn đùa rằng vì quên “PLEASE LIKE AND SUBSCRIBE” nên chương trình không chịu kết thúc
  • Giờ chỉ còn thiếu các ngôn ngữ đồng hành Turing hoàn chỉnh phù hợp với ngôn ngữ này nữa thôi
    Họ hình dung “Thunderfoot” là ngôn ngữ để viết kịch bản video phản bác các bài báo Tabloid,
    “Fisker” là ngôn ngữ cho các bài post troll trên cộng đồng Discord hoặc Steam,
    còn “Shitlist” là ngôn ngữ tự động tạo awesomelist cho GitHub

    • “.BOT” được đặt làm ngôn ngữ điều khiển botfarm chạy trên máy ảo X, kèm theo bối cảnh là phần kế tiếp của BitMusk
  • Dự án này là một thử nghiệm quái dị nhưng đầy dễ chịu, nên ngược lại lại thấy khá mới mẻ

  • Tiêu đề bài đăng mà là “SHOCKING DEVELOPMENT” thì đã hoàn hảo rồi