- Tabloid คือ ภาษาโปรแกรมที่ทัวริงสมบูรณ์ ซึ่งเขียนโค้ดในสไตล์พาดหัวข่าวแบบ Clickbait
- การแสดงผลใช้คำสั่ง
YOU WON'T WANT TO MISS และทุกเอาต์พุตจะถูก แปลงเป็นตัวพิมพ์ใหญ่พร้อมเติมเครื่องหมายอัศเจรีย์โดยอัตโนมัติ
- การประกาศฟังก์ชันใช้ไวยากรณ์
DISCOVER HOW TO ... WITH และการประกาศตัวแปรใช้ EXPERTS CLAIM ... TO BE
- ไม่มีโครงสร้างลูป โดยใช้การเรียกซ้ำแบบรีเคอร์ชันเพื่อทำซ้ำแทน และการคืนค่าฟังก์ชันใช้
SHOCKING DEVELOPMENT
- โปรแกรมต้องลงท้ายด้วย
PLEASE LIKE AND SUBSCRIBE เสมอ และมีทั้ง JavaScript interpreter และ implementation บน Racket
ภาพรวมของภาษา Tabloid
- Tabloid เป็นภาษาที่ออกแบบมาเพื่อให้เขียนโปรแกรมในสไตล์ พาดหัวข่าวคลิกเบต
- ในโค้ดตัวอย่าง จะประกาศฟังก์ชันในรูปแบบ
DISCOVER HOW TO fibonacci WITH a, b, n
- ใช้ไวยากรณ์เชิงประโยคอย่าง
RUMOR HAS IT, WHAT IF, END OF STORY
- เอาต์พุตทั้งหมดของภาษาจะขึ้นต้นด้วย
YOU WON'T WANT TO MISS และมี การแปลงเป็นตัวพิมพ์ใหญ่กับเติมเครื่องหมายอัศเจรีย์อัตโนมัติ
ไวยากรณ์และคุณสมบัติหลัก
- การประกาศฟังก์ชัน:
DISCOVER HOW TO ... WITH
- การประกาศ/กำหนดค่าตัวแปร:
EXPERTS CLAIM ... TO BE
- เงื่อนไข:
WHAT IF ... LIES!
- การเรียกฟังก์ชัน:
A OF B, C
- ขอบเขตบล็อก: เริ่มด้วย
RUMOR HAS IT และจบด้วย END OF STORY
- คำสั่งคืนค่า:
SHOCKING DEVELOPMENT
- การจบโปรแกรม:
PLEASE LIKE AND SUBSCRIBE
- ค่าบูลีน:
TOTALLY RIGHT (true), COMPLETELY WRONG (false)
- โอเปอเรเตอร์:
PLUS, MINUS, TIMES, DIVIDED BY, MODULO, IS ACTUALLY, BEATS, SMALLER THAN เป็นต้น
วิธีการทำงานของภาษา
- Tabloid สามารถรันได้ผ่าน interpreter ที่เขียนด้วย JavaScript
- ชนิดข้อมูลที่รองรับคือ ตัวเลข, สตริง, บูลีน
- ไม่มีไวยากรณ์สำหรับลูป และใช้ การเรียกซ้ำแบบรีเคอร์ชัน เพื่อทำซ้ำ
- นอกจาก online interpreter แล้ว ยังมี implementation บน Racket และ ไลบรารีฟังก์ชันเสริม
ที่มาของการพัฒนา
- ผู้สร้างกล่าวว่าทำภาษานี้ขึ้นมาเพื่อ หลีกเลี่ยงการทำการบ้านวิชาระบบฐานข้อมูล
- ก่อนหน้า Tabloid เขาเคยพัฒนาภาษาที่ใช้งานจริงได้มากกว่าชื่อ Ink มาก่อน
รายการคีย์เวิร์ดมาตรฐาน
DISCOVER HOW TO...WITH: การประกาศฟังก์ชัน
RUMOR HAS IT: เริ่มบล็อก
A OF B, C: การเรียกฟังก์ชัน
WHAT IF...LIES!: เงื่อนไข
END OF STORY: จบบล็อก
EXPERTS CLAIM...TO BE: การประกาศ/กำหนดค่าตัวแปร
YOU WON'T WANT TO MISS: การแสดงผล
LATEST NEWS ON: รับอินพุตจากผู้ใช้
TOTALLY RIGHT, COMPLETELY WRONG: ค่าบูลีน
AND, OR: ตัวดำเนินการเชิงตรรกะ
PLUS, MINUS, TIMES, DIVIDED BY, MODULO: ตัวดำเนินการคณิตศาสตร์
IS ACTUALLY, BEATS, SMALLER THAN: ตัวดำเนินการเปรียบเทียบ
SHOCKING DEVELOPMENT: การคืนค่าฟังก์ชัน
PLEASE LIKE AND SUBSCRIBE: จบโปรแกรม
2 ความคิดเห็น
คิดจะไปโน้มน้าวทีมให้เปลี่ยนโค้ดเบสมาใช้ภาษานี้งั้นเหรอ? 555555
ความคิดเห็นจาก Hacker News
น่าจะสนุกกว่านี้ถ้าตั้งชื่อโพสต์ว่า "Will this programming language revolutionize software development?"
ภาษานี้เคยได้รับความนิยมมาก่อนแล้ว
เคยเป็นประเด็นมาแล้วใน โพสต์หมายเลข 24578749 เมื่อปี 2020 และ โพสต์หมายเลข 40964261 เมื่อปี 2024
กำลังคิดว่าจะลองใช้แมโครแบบนี้กับงานจริงเพื่อให้การเขียนโปรแกรม ยังสนุกอยู่
ในตัวอย่างโค้ดมีวลีอย่าง "EXPERTS CLAIM", "SHOCKING DEVELOPMENT", "PLEASE LIKE AND SUBSCRIBE" โผล่ซ้ำ ๆ จนดูเหมือนพาดหัวข่าวจริง ๆ
ชื่อว่า "And That’s a Good Thing" ดูจะสรุปสถานการณ์นี้ได้ดี
มีไอเดียว่าจะใช้ "CONSIDERED HARMFUL" เป็นโอเปอเรเตอร์ปฏิเสธแบบ postfix ดีไหม
และใช้ "BAN THIS SICK FILTH" เป็นคำสั่งโยน exception ก็น่าจะขำดี
อีกความเห็นบอกว่าน่าจะใส่คำอย่าง "SLAMS" หรือ "SNUBBED" ไว้ที่ไหนสักแห่งด้วย
ดูรายละเอียดได้ที่ ภาพรวมภาษาบน GitHub README
ถ้าตั้งชื่อลูปว่า "BREAKING NEWS … KEEP READING TO DISCOVER" ก็น่าจะสมบูรณ์แบบยิ่งขึ้น
"BREAKING NEWS! โง่ได้อย่างสมบูรณ์แบบแต่น่าเอ็นดูสุด ๆ"
คิดว่าจะลองโน้มน้าวทีมให้เปลี่ยนโค้ดเบสมาใช้ภาษานี้
ปิดท้ายว่า "FOLLOW ME to find out how it goes"
ตอนนี้ก็เหลือแค่ ภาษาเพื่อนร่วมทางที่ Turing-complete ให้เข้าชุดกับภาษานี้เท่านั้น
จินตนาการว่า "Thunderfoot" เป็นภาษาสำหรับสคริปต์วิดีโอโต้แย้งบทความ Tabloid,
"Fisker" เป็นภาษาสำหรับโพสต์ปั่นในคอมมูนิตี้ Discord หรือ Steam,
และ "Shitlist" เป็นภาษาสำหรับสร้าง awesomelist บน GitHub แบบอัตโนมัติ
โปรเจกต์นี้เป็นความพยายามที่ เพี้ยนแบบน่าชื่นใจ เลยกลับให้ความรู้สึกสดใหม่
ชื่อโพสต์น่าจะสมบูรณ์แบบถ้าเป็น "SHOCKING DEVELOPMENT"