11 คะแนน โดย GN⁺ 2025-11-10 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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 ความคิดเห็น

 
yangeok 2025-11-12

คิดจะไปโน้มน้าวทีมให้เปลี่ยนโค้ดเบสมาใช้ภาษานี้งั้นเหรอ? 555555

 
GN⁺ 2025-11-10
ความคิดเห็นจาก Hacker News
  • น่าจะสนุกกว่านี้ถ้าตั้งชื่อโพสต์ว่า "Will this programming language revolutionize software development?"

    • คิดว่าคงดีถ้าข้อความ error ออกมาในทำนอง "YOU WON'T BELIEVE WHAT YOU'LL SEE IN LINE ${line_number}"
    • น่าประทับใจที่โพสต์นี้ดังได้ทั้งที่ยังรักษา ธรรมเนียมไม่ใช้คลิกเบต ของชุมชนไว้
  • ภาษานี้เคยได้รับความนิยมมาก่อนแล้ว
    เคยเป็นประเด็นมาแล้วใน โพสต์หมายเลข 24578749 เมื่อปี 2020 และ โพสต์หมายเลข 40964261 เมื่อปี 2024

    • ไม่คิดเลยว่าแค่มี คีย์เวิร์ด ไม่กี่คำก็จะสนุกได้ขนาดนี้
      กำลังคิดว่าจะลองใช้แมโครแบบนี้กับงานจริงเพื่อให้การเขียนโปรแกรม ยังสนุกอยู่
      ในตัวอย่างโค้ดมีวลีอย่าง "EXPERTS CLAIM", "SHOCKING DEVELOPMENT", "PLEASE LIKE AND SUBSCRIBE" โผล่ซ้ำ ๆ จนดูเหมือนพาดหัวข่าวจริง ๆ
  • ชื่อว่า "And That’s a Good Thing" ดูจะสรุปสถานการณ์นี้ได้ดี

  • มีไอเดียว่าจะใช้ "CONSIDERED HARMFUL" เป็นโอเปอเรเตอร์ปฏิเสธแบบ postfix ดีไหม

    • ยืมสำนวนแบบอังกฤษมาใช้ โดยให้ "IN BOOST TO x" คือเพิ่ม 1, "IN BLOW TO x" คือลด 1
      และใช้ "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"

    • แล้วก็แซวต่อว่าลืมใส่ "PLEASE LIKE AND SUBSCRIBE" เลยทำให้โปรแกรมไม่ยอมจบ
  • ตอนนี้ก็เหลือแค่ ภาษาเพื่อนร่วมทางที่ Turing-complete ให้เข้าชุดกับภาษานี้เท่านั้น
    จินตนาการว่า "Thunderfoot" เป็นภาษาสำหรับสคริปต์วิดีโอโต้แย้งบทความ Tabloid,
    "Fisker" เป็นภาษาสำหรับโพสต์ปั่นในคอมมูนิตี้ Discord หรือ Steam,
    และ "Shitlist" เป็นภาษาสำหรับสร้าง awesomelist บน GitHub แบบอัตโนมัติ

    • ส่วน ".BOT" ถูกตั้งให้เป็นภาษาควบคุมบอตฟาร์มที่ทำงานบน X virtual machine และเป็นภาคต่อของ BitMusk
  • โปรเจกต์นี้เป็นความพยายามที่ เพี้ยนแบบน่าชื่นใจ เลยกลับให้ความรู้สึกสดใหม่

  • ชื่อโพสต์น่าจะสมบูรณ์แบบถ้าเป็น "SHOCKING DEVELOPMENT"