ป้ายกำกับ: Strong

TOON VS JSONTOON VS JSON

TOON ( Typed Object-Oriented Notation ) เป็นฟอร์แมตที่ออกแบบมาเพื่อแก้ Pain point ของ JSON ( JavaScript Object Notation ) ในเรื่องของการระบุ “ประเภทข้อมูล” ( Type ) และการลดความซ้ำซ้อนของข้อมูลครับ

ถ้าถามว่าแทน JSON ได้แค่ไหน? คำตอบคือ “ในเชิงโครงสร้างข้อมูล ( Data Structure ) แทนได้เกือบ 100% แต่ในเชิงนิเวศ ( Ecosystem ) ยังห่างไกลครับ”

สรุปประเด็นเปรียบเทียบเพื่อให้เห็นภาพชัดเจน ดังนี้ครับ


สิ่งที่ TOON ทำได้ดีกว่า JSON ( Why use it ? )

  • Strong Typing: ในขณะที่ JSON มีแค่ตัวเลข สตริง และบูลีน TOON สามารถกำหนด Type เฉพาะเจาะจงลงไปในโครงสร้างได้เลย ทำให้ลดโอกาสเกิด Error ตอน Parse ข้อมูล
  • Readable & Concise: TOON มักจะตัดเครื่องหมายซ้ำซ้อนอย่างเครื่องหมายคำพูดที่ Key หรือวงเล็บปีกกาในบางจุดออก ทำให้ไฟล์เล็กกว่าและอ่านง่ายกว่าในสายตาโปรแกรมเมอร์
  • Class / Object Mapping: TOON ออกแบบมาให้ Map เข้ากับ Class ใน OOP ( Object-Oriented Programming ) ได้อย่างเป็นธรรมชาติมากกว่า JSON ที่เป็นเพียงพจนานุกรม ( Dictionary ) เปล่า ๆ

ข้อจำกัดเมื่อเทียบกับ JSON ( The Reality Check )

  • Ecosystem: JSON คือมาตรฐานโลก ทุกภาษาโปรแกรม ทุก Browser และทุกฐานข้อมูลรองรับ Native มาตั้งแต่ออกตัว แต่ TOON ยังต้องการ Library เสริมในการใช้งาน
  • Learning Curve: JSON เรียบง่ายจนใครก็อ่านออก แต่ TOON มี Syntax เฉพาะทางที่ต้องเรียนรู้เพิ่มเล็กน้อย
  • Tooling: เครื่องมือจำพวก Beautifier, Validator หรือ Editor ต่าง ๆ ของ JSON มีอยู่มหาศาล ซึ่ง TOON ยังมีจำกัดกว่ามาก

ตารางสรุปการใช้งาน

ฟีเจอร์JSONTOON
ความนิยมสูงสุด ( Universal )เฉพาะกลุ่ม ( Niche )
Type Safetyต่ำ ( ต้องเช็คเอง )สูง ( ฝังมาใน Format )
ขนาดไฟล์ปานกลางเล็ก ( ตัดส่วนซ้ำซ้อนออก )
การอ่านด้วยตาดีดีมาก

สรุปความเห็น

ถ้าคุณกำลังทำโปรเจกต์ภายในที่ต้องการ Type Safety สูง ๆ หรือต้องการลด Overhead ของข้อมูลที่ต้องส่งไปมา TOON เป็นทางเลือกที่น่าสนใจมากครับ

แต่ถ้าต้องทำ Public API ที่คนอื่นต้องมาเชื่อมต่อด้วย JSON ยังคงเป็นคำตอบที่ปลอดภัยที่สุด เพราะไม่ต้องบังคับให้คนอื่นไปลง Library เพิ่มครับ


อ่านเพิ่มเติม