Tabloid - Ngôn ngữ lập trình viết code bằng những câu giật tít câu view
(tabloid.vercel.app)- 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ápEXPERTS 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
- Trong mã ví dụ, hàm được khai báo theo dạng
- 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ằngEND 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 THANv.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 Racket và thư 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àmRUMOR HAS IT: bắt đầu khốiA OF B, C: gọi hàmWHAT IF...LIES!: câu lệnh điều kiệnEND OF STORY: kết thúc khốiEXPERTS CLAIM...TO BE: khai báo/gán biếnYOU WON'T WANT TO MISS: xuất dữ liệuLATEST NEWS ON: nhập từ người dùngTOTALLY RIGHT,COMPLETELY WRONG: giá trị booleanAND,OR: toán tử logicPLUS,MINUS,TIMES,DIVIDED BY,MODULO: toán tử số họcIS ACTUALLY,BEATS,SMALLER THAN: toán tử so sánhSHOCKING DEVELOPMENT: trả về từ hàmPLEASE LIKE AND SUBSCRIBE: kết thúc chương trình
2 bình luận
Bạn định thuyết phục cả đội chuyển codebase sang ngôn ngữ này à? ha ha ha
Ý 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?”
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
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ố
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”
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
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