Pertanyaan ini berumur 6 tahun, tetapi anehnya, tidak ada jawaban yang benar-benar menjawab keempat poin (kecepatan, memori, ekspresif, portabilitas).
Kecepatan
Jelas ini tergantung pada implementasi, tetapi karena JSON digunakan secara luas, dan sangat mudah diimplementasikan, ia cenderung menerima dukungan asli yang lebih besar, dan karenanya mempercepat. Mempertimbangkan bahwa YAML melakukan semua yang JSON lakukan, ditambah satu truk lebih banyak, kemungkinan implementasi yang sebanding dari keduanya, JSON satu akan lebih cepat.
Namun, mengingat bahwa file YAML bisa sedikit lebih kecil daripada rekan JSON-nya (karena lebih sedikit "
dan ,
karakter), mungkin saja pengurai YAML yang sangat dioptimalkan mungkin lebih cepat dalam keadaan luar biasa.
Penyimpanan
Pada dasarnya argumen yang sama berlaku. Sulit untuk melihat mengapa parser YAML akan lebih efisien memori daripada parser JSON, jika mereka mewakili struktur data yang sama.
Ekspresi
Seperti dicatat oleh orang lain, programmer Python cenderung lebih memilih YAML, programmer JavaScript menuju JSON. Saya akan melakukan pengamatan ini:
- Sangat mudah untuk menghafal seluruh sintaks JSON, dan karenanya sangat yakin tentang memahami arti dari setiap file JSON. YAML tidak benar-benar dimengerti oleh manusia mana pun. Jumlah kehalusan dan tepi kasus sangat ekstrim.
- Karena beberapa parser mengimplementasikan keseluruhan spek, bahkan lebih sulit untuk memastikan tentang makna dari ekspresi yang diberikan dalam konteks tertentu.
- Kurangnya komentar di JSON dalam praktiknya benar-benar menyakitkan.
Portabilitas
Sulit membayangkan bahasa modern tanpa perpustakaan JSON. Sulit juga untuk membayangkan parser JSON mengimplementasikan sesuatu yang kurang dari spesifikasi lengkap. YAML memiliki dukungan luas, tetapi kurang di mana-mana dari JSON, dan masing-masing parser mengimplementasikan subset yang berbeda. Oleh karena itu file YAML kurang dapat dioperasikan daripada yang Anda kira.
Ringkasan
JSON adalah pemenang untuk kinerja (jika relevan) dan interoperabilitas. YAML lebih baik untuk file yang dikelola manusia. HJSON adalah kompromi yang layak meskipun dengan portabilitas yang jauh berkurang. JSON5 adalah kompromi yang lebih masuk akal, dengan sintaks yang jelas.