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 ยังมีจำกัดกว่ามาก
ตารางสรุปการใช้งาน
| ฟีเจอร์ | JSON | TOON |
| ความนิยม | สูงสุด ( Universal ) | เฉพาะกลุ่ม ( Niche ) |
| Type Safety | ต่ำ ( ต้องเช็คเอง ) | สูง ( ฝังมาใน Format ) |
| ขนาดไฟล์ | ปานกลาง | เล็ก ( ตัดส่วนซ้ำซ้อนออก ) |
| การอ่านด้วยตา | ดี | ดีมาก |
สรุปความเห็น
ถ้าคุณกำลังทำโปรเจกต์ภายในที่ต้องการ Type Safety สูง ๆ หรือต้องการลด Overhead ของข้อมูลที่ต้องส่งไปมา TOON เป็นทางเลือกที่น่าสนใจมากครับ
แต่ถ้าต้องทำ Public API ที่คนอื่นต้องมาเชื่อมต่อด้วย JSON ยังคงเป็นคำตอบที่ปลอดภัยที่สุด เพราะไม่ต้องบังคับให้คนอื่นไปลง Library เพิ่มครับ
อ่านเพิ่มเติม