यह सवाल 6 साल पुराना है, लेकिन अजीब बात है, कोई भी उत्तर वास्तव में सभी चार बिंदुओं (गति, स्मृति, अभिव्यंजना, पोर्टेबिलिटी) को संबोधित नहीं करता है।
गति
स्पष्ट रूप से यह कार्यान्वयन-निर्भर है, लेकिन क्योंकि JSON का व्यापक रूप से उपयोग किया जाता है, और इसे लागू करना इतना आसान है, यह अधिक से अधिक देशी समर्थन प्राप्त करने के लिए बढ़ गया है, और इसलिए गति। यह देखते हुए कि YAML वह सब कुछ करता है जो JSON करता है, साथ ही एक ट्रक लोड अधिक है, यह संभावना है कि दोनों के किसी भी तुलनीय कार्यान्वयन के साथ, JSON जल्दी हो जाएगा।
हालाँकि, यह देखते हुए कि एक YAML फ़ाइल अपने JSON समकक्ष (कम "
और ,
पात्रों के कारण ) से थोड़ी छोटी हो सकती है , यह संभव है कि एक अत्यधिक अनुकूलित YAML पार्सर असाधारण परिस्थितियों में तेज हो सकता है।
याद
मूल रूप से एक ही तर्क लागू होता है। यह देखने के लिए मुश्किल है कि एक जेसीएल पार्सर की तुलना में एक YAML पार्सर कभी भी अधिक मेमोरी कुशल क्यों होगा, यदि वे एक ही डेटा संरचना का प्रतिनिधित्व कर रहे हैं।
अभिव्यक्ति
जैसा कि अन्य लोगों ने बताया है कि पायथन प्रोग्रामर YAML को प्राथमिकता देते हैं, जावास्क्रिप्ट प्रोग्रामर JSON की ओर। मैं ये अवलोकन करूँगा:
- JSON के पूरे सिंटैक्स को याद रखना आसान है, और इसलिए किसी भी JSON फ़ाइल के अर्थ को समझने के बारे में बहुत आश्वस्त होना चाहिए। YAML वास्तव में किसी भी मानव द्वारा समझने योग्य नहीं है। सूक्ष्मता और किनारे के मामलों की संख्या चरम है।
- चूँकि कुछ पार्सर संपूर्ण कल्पना को कार्यान्वित करते हैं, इसलिए किसी दिए गए संदर्भ में दिए गए अभिव्यक्ति के अर्थ के बारे में निश्चित होना कठिन है।
- JSON में टिप्पणियों की कमी, व्यवहार में, एक वास्तविक दर्द है।
पोर्टेबिलिटी
JSON लाइब्रेरी के बिना आधुनिक भाषा की कल्पना करना कठिन है। एक JSON पार्सर को पूर्ण कल्पना से कम किसी चीज को लागू करने की कल्पना करना भी मुश्किल है। YAML का व्यापक समर्थन है, लेकिन JSON की तुलना में कम सर्वव्यापी है, और प्रत्येक पार्सर एक अलग सबसेट को लागू करता है। इसलिए YAML फाइलें आपके विचार से कम इंटरऑपरेबल हैं।
सारांश
JSON प्रदर्शन के लिए विजेता है (यदि प्रासंगिक है) और इंटरऑपरेबिलिटी। YAML मानव-रखरखाव फ़ाइलों के लिए बेहतर है। HJSON एक सभ्य समझौता है, हालांकि बहुत कम पोर्टेबिलिटी के साथ। JSON5 एक अधिक उचित समझौता है, जिसमें अच्छी तरह से परिभाषित वाक्यविन्यास है।