คำถามนี้มีอายุ 6 ขวบ แต่แปลกไม่มีคำตอบใดที่ตอบโจทย์ทั้งสี่ (ความเร็วหน่วยความจำการแสดงออกการพกพา)
ความเร็ว
เห็นได้ชัดว่านี่ขึ้นอยู่กับการนำไปใช้ แต่เนื่องจาก JSON ใช้กันอย่างแพร่หลายและง่ายต่อการติดตั้งจึงมีแนวโน้มที่จะได้รับการสนับสนุนจากเจ้าของภาษามากขึ้นและด้วยความเร็ว เมื่อพิจารณาว่า YAML ทำทุกอย่างที่ JSON ทำรวมถึงปริมาณรถบรรทุกมากขึ้นอาจเป็นไปได้ว่าการใช้งานทั้งสองอย่างของ JSON นั้นจะเร็วกว่า
อย่างไรก็ตามเนื่องจากไฟล์ YAML อาจมีขนาดเล็กกว่าไฟล์ JSON เล็กน้อย (เนื่องจากน้อยกว่า"
และ,
ตัวอักษร) เป็นไปได้ว่าตัวแยกวิเคราะห์ YAML ที่ปรับให้เหมาะสมที่สุดอาจเร็วกว่าในสถานการณ์พิเศษ
หน่วยความจำ
โดยทั่วไปแล้วจะมีการโต้แย้งเดียวกัน เป็นการยากที่จะดูว่าทำไมตัวแยกวิเคราะห์ YAML จะมีประสิทธิภาพของหน่วยความจำมากกว่าตัวแยกวิเคราะห์ JSON หากพวกเขาเป็นตัวแทนของโครงสร้างข้อมูลเดียวกัน
ลึกซึ้ง
ตามที่ระบุไว้โดยคนอื่น ๆ โปรแกรมเมอร์ Python มักจะชอบ YAML และโปรแกรมเมอร์ JavaScript ที่มีต่อ JSON ฉันจะทำการสังเกตเหล่านี้:
- ง่ายต่อการจดจำไวยากรณ์ทั้งหมดของ JSON และดังนั้นจึงมั่นใจมากเกี่ยวกับการทำความเข้าใจความหมายของไฟล์ JSON ใด ๆ YAML ไม่สามารถเข้าใจมนุษย์ได้อย่างแท้จริง จำนวนรายละเอียดปลีกย่อยและกรณีขอบเป็นอย่างมาก
- เนื่องจากตัวแยกวิเคราะห์บางตัวใช้ข้อกำหนดทั้งหมดจึงยากที่จะแน่ใจเกี่ยวกับความหมายของนิพจน์ที่ระบุในบริบทที่กำหนด
- การขาดความคิดเห็นใน JSON นั้นเป็นเรื่องเจ็บปวดจริง ๆ
ความเบา
มันยากที่จะจินตนาการถึงภาษาสมัยใหม่โดยไม่มีห้องสมุด JSON นอกจากนี้ยังยากที่จะจินตนาการว่าโปรแกรมแยกวิเคราะห์ JSON จะใช้งานอะไรน้อยกว่าข้อมูลจำเพาะทั้งหมด YAML ได้รับการสนับสนุนอย่างกว้างขวาง แต่แพร่หลายน้อยกว่า JSON และโปรแกรมแยกวิเคราะห์แต่ละเครื่องใช้ชุดย่อยที่แตกต่างกัน ดังนั้นไฟล์ YAML สามารถใช้งานร่วมกันได้น้อยกว่าที่คุณคิด
สรุป
JSON เป็นผู้ชนะด้านประสิทธิภาพ (ถ้าเกี่ยวข้อง) และการทำงานร่วมกัน YAML ดีกว่าสำหรับไฟล์ที่มนุษย์ดูแล HJSONเป็นการประนีประนอมที่ดีแม้ว่าจะมีการพกพาลดลงมาก JSON5เป็นการประนีประนอมที่สมเหตุสมผลมากขึ้นด้วยไวยากรณ์ที่กำหนดไว้อย่างดี