บทความรายละเอียดที่ติดตามวิวัฒนาการจาก XML สู่ JSON สู่ CBOR ได้จุดประกายการถกเถียงอย่างเข้มข้นในหมู่นักพัฒนา โดยหลายคนตั้งคำถามว่า CBOR สมควรได้รับความสนใจหรือไม่ และวิพากษ์วิจารณ์การละเว้นความสัมพันธ์กับ MessagePack บทความที่วาง CBOR เป็นรูปแบบข้อมูลสำคัญได้ดึงดูดความสงสัยจากชุมชนเทคนิค
การอ้างว่าส่งเสริม CBOR ทำให้เกิดความสงสัย
นักพัฒนาหลายคนแสดงความกังวลว่าบทความดูเหมือนเนื้อหาการตลาดมากกว่าการวิเคราะห์ทางเทคนิคที่เป็นกลาง นักวิจารณ์ชี้ให้เห็นว่าในขณะที่ XML และ JSON เป็นรูปแบบที่ได้รับการยอมรับอย่างสากล การเรียก CBOR ว่าสำคัญดูเหมือนเร็วเกินไปเมื่อเปรียบเทียบกับรูปแบบไบนารีที่มีการใช้งานมากกว่า เช่น Protocol Buffers, Apache Avro และ Cap'n Proto นักพัฒนาหลายคนยอมรับว่าไม่เคยพบ CBOR ในการปฏิบัติงานจริง โดยมีคนหนึ่งระบุว่าการสัมผัสครั้งเดียวคือระหว่างการพัฒนา QR code passport ในยุค COVID
ช่วงเวลาและน้ำเสียงของบทความทำให้บางคนตั้งคำถามเกี่ยวกับแรงจูงใจในการส่งเสริมรูปแบบที่ยังคงเป็นช่องว่างค่อนข้างเล็ก อย่างไรก็ตาม ผู้สนับสนุนโต้แย้งว่าบทบาทของ CBOR ในมาตรฐานใหม่ ๆ เช่น WebAuthn และการรับรองความถูกต้อง FIDO2 ที่จัดการการแลกเปลี่ยน passkey แสดงให้เห็นถึงความสำคัญที่เพิ่มขึ้นในโปรโตคอลความปลอดภัย
กรณีการใช้งานและการนำ CBOR มาใช้
- WebAuthn/FIDO2: ใช้สำหรับการแลกเปลี่ยนข้อมูลการยืนยันตัวตน passkey
- โปรโตคอล CoAP: ทางเลือก HTTP ที่มีน้ำหนักเบาสำหรับอุปกรณ์ IoT
- COSE: CBOR Object Signing and Encryption สำหรับความปลอดภัย
- การจัดการอุปกรณ์ IoT: โปรโตคอล OMA-DM/LWM2M
- การแสดงใบรับรอง: ใบรับรอง C509 compact X.509
- บริการ AWS: เริ่มสนับสนุนใน API ที่ใช้ข้อมูลหนัก (2025)
ข้อได้เปรียบหลัก:
- ขนาดข้อความเล็กกว่า JSON โดยไม่ต้องบีบอัด
- รูปแบบที่อธิบายตัวเอง (ไม่ต้องใช้ schema)
- สามารถขยายได้ผ่าน semantic tags ที่ลงทะเบียนกับ IANA
- ปรับให้เหมาะสมสำหรับสภาพแวดล้อมที่จำกัด/IoT
การขาดการเชื่อมโยง MessagePack เป็นสัญญาณเตือนภัย
การวิจารณ์ที่สำคัญมุ่งเน้นไปที่ความล้มเหลวของบทความในการยอมรับความสัมพันธ์ของ CBOR กับ MessagePack ซึ่งเป็นรูปแบบไบนารีก่อนหน้านี้ที่มีเป้าหมายและหลักการออกแบบที่คล้ายคลึงกัน การละเว้นนี้ถูกติดป้ายว่าเป็นสัญญาณเตือนภัยโดยนักพัฒนาที่มีประสบการณ์ซึ่งเข้าใจบริบททางประวัติศาสตร์ ความสัมพันธ์ระหว่างรูปแบบเหล่านี้มีความสำคัญต่อการเข้าใจตำแหน่งของ CBOR ในระบบนิเวศ เนื่องจากพวกเขาจัดการกับปัญหาที่คล้ายคลึงกันด้วยแนวทางที่เปรียบเทียบได้
ก็ CBOR คือ MessagePack นั่นแหละ Carsten Bormann แยก MessagePack ออกมา เปลี่ยนค่าแท็กบางตัว เขียนมาตรฐานรอบ ๆ มัน และส่งไปยัง IETF โดยขัดต่อความปรารถนาของผู้สร้าง MessagePack
บริบททางประวัติศาสตร์นี้เผยให้เห็นว่า CBOR ไม่ใช่สิ่งใหม่โดยสิ้นเชิง แต่สร้างขึ้นจากงานที่มีอยู่แล้ว ทำให้การนำเสนอของบทความอาจทำให้ผู้อ่านที่ไม่คุ้นเคยกับประวัติศาสตร์รูปแบบไบนารีเข้าใจผิดได้
การเปรียบเทียบการบีบอัดขาดหายไปอย่างเห็นได้ชัด
ประเด็นที่ถกเถียงกันอีกประการหนึ่งเกี่ยวข้องกับการขาดการเปรียบเทียบระหว่าง CBOR และ JSON ที่บีบอัด ในขณะที่บทความส่งเสริมข้อได้เปรียบด้านขนาดของ CBOR เหนือ JSON ธรรมดา มันไม่ได้กล่าวถึงว่า CBOR ทำงานได้อย่างไรเมื่อเทียบกับ JSON ที่ใช้เทคนิคการบีบอัดมาตรฐาน เช่น gzip หรือ zstd ซึ่งถูกใช้งานอย่างแพร่หลายและโปร่งใสต่อผู้ใช้ การละเว้นนี้ดูเหมือนจะมีนัยสำคัญเป็นพิเศษ เนื่องจากการบีบอัดถูกใช้กันทั่วไปในแอปพลิเคชันเว็บและสามารถลดช่องว่างขนาดที่ CBOR อ้างว่าเป็นข้อได้เปรียบได้อย่างมาก
การขาดการเปรียบเทียบนี้ทำให้บางคนแนะนำว่ามันถูกแยกออกโดยเจตนาเพื่อรักษาเรื่องเล่าที่เอื้ออำนวยสำหรับ CBOR คล้ายกับวิธีที่ผลิตภัณฑ์ที่แข่งขันกันหลีกเลี่ยงการเน้นจุดแข็งของคู่แข่งในเนื้อหาการตลาดของพวกเขา
การเปรียบเทียบ CBOR กับ JSON กับ XML
คุณสมบัติ | XML | JSON | CBOR |
---|---|---|---|
ประเภทรูปแบบ | ภาษามาร์กอัปสำหรับเอกสาร | รูปแบบการแลกเปลี่ยนข้อมูล | รูปแบบข้อมูลแบบไบนารี |
อ่านได้ด้วยมนุษย์ | ได้ | ได้ | ไม่ได้ |
ขนาดข้อความ | ใหญ่ที่สุด (แท็กที่ยาวเยิ่น) | ปานกลาง | เล็กที่สุด (การเข้ารหัสแบบไบนารี) |
ความเร็วในการแยกวิเคราะห์ | ช้าที่สุด (การแยกวิเคราะห์ที่ซับซ้อน) | เร็ว | เร็วที่สุด (การถอดรหัสแบบไบนารี) |
การรองรับเบราว์เซอร์ดั้งเดิม | ใช่ | ใช่ | ไม่ใช่ |
การรองรับ Schema | DTD, XSD | JSON Schema | แท็กเชิงความหมาย |
ความคิดเห็น | ใช่ | ไม่ใช่ | ไม่ใช่ |
ข้อมูลไบนารี | ต้องการการเข้ารหัส Base64 | ต้องการการเข้ารหัส Base64 | รองรับแบบดั้งเดิม |
การตรวจสอบความเป็นจริงของการยอมรับรูปแบบไบนารี
แม้จะมีข้อดีทางเทคนิคของ CBOR การถกเถียงเผยให้เห็นความจริงที่กว้างขึ้นเกี่ยวกับการยอมรับรูปแบบไบนารี นักพัฒนาหลายคนยังคงพอใจกับความสามารถในการอ่านของมนุษย์และความสามารถในการดีบักของ JSON โดยเฉพาะเมื่อรวมกับโครงสร้างพื้นฐานการบีบอัดที่มีอยู่ ลักษณะไบนารีของ CBOR แม้จะมีประสิทธิภาพ แต่สูญเสียความสามารถในการตรวจสอบและดีบักการแลกเปลี่ยนข้อมูลได้อย่างง่ายดาย ซึ่งยังคงมีค่าในสถานการณ์การพัฒนาหลายกรณี
นักพัฒนาบางคนสนับสนุนการสร้างรูปแบบไบนารีแบบกำหนดเองเมื่อประสิทธิภาพมีความสำคัญ โดยโต้แย้งว่าประโยชน์ด้านความเร็วของการเข้ารหัสไบนารีมีมากพอที่จะปรับความพยายามในการพัฒนาเพิ่มเติม อย่างไรก็ตาม คนอื่น ๆ ชอบโซลูชันมาตรฐาน เช่น CBOR สำหรับการทำงานร่วมกันและลดภาระการใช้งาน
บทสรุป
การถกเถียงรอบบทความที่เน้น CBOR นี้เน้นความท้าทายในการส่งเสริมรูปแบบข้อมูลใหม่ในระบบนิเวศที่ JSON ได้รับการยอมรับเกือบสากล ในขณะที่ CBOR มีบทบาทสำคัญในสภาพแวดล้อมที่จำกัดและโปรโตคอลความปลอดภัย การวางตำแหน่งเป็นผู้สืบทอดทั่วไปของ JSON ดูเหมือนเร็วเกินไป ปฏิกิริยาของชุมชนเน้นความสำคัญของบริบททางประวัติศาสตร์ที่ซื่อสัตย์และการเปรียบเทียบที่ครอบคลุมเมื่อประเมินรูปแบบการแลกเปลี่ยนข้อมูล เมื่อ Internet of Things ยังคงขยายตัว CBOR อาจพบช่องว่างของมัน แต่การแทนที่ JSON ในการพัฒนาเว็บหลักยังคงไม่น่าจะเกิดขึ้นเนื่องจากความเรียบง่ายและการสนับสนุนระบบนิเวศของ JSON
อ้างอิง: From XML to JSON to CBOR