เจาะลึกถึง JSON กับ XML ส่วนที่ 1: ประวัติของแต่ละมาตรฐาน
เผยแพร่แล้ว: 2022-03-11จากเดสก์ท็อปสู่เว็บและมือถือ แอปพลิเคชันคอมพิวเตอร์เกือบทั้งหมดที่เราใช้ในปัจจุบันต้องอาศัยหนึ่งในสองมาตรฐานข้อความหลัก: JSON และ XML วันนี้ JSON เป็นรูปแบบที่ใช้กันอย่างแพร่หลายมากที่สุด แต่แซงหน้า XML เท่านั้นภายในห้าปีที่ผ่านมา การค้นหาออนไลน์อย่างรวดเร็วสำหรับ "JSON กับ XML" จะนำบทความและบล็อกโพสต์จำนวนนับไม่ถ้วนมาเปรียบเทียบทั้งสองมาตรฐาน และมีอคติเพิ่มขึ้นเรื่อยๆ ซึ่งยกย่องความเรียบง่ายของ JSON และวิพากษ์วิจารณ์การใช้คำฟุ่มเฟือยของ XML บทความจำนวนมากยืนยันว่า JSON นั้นเหนือกว่า XML เนื่องจากความหมายสั้น ๆ และ XML ลดราคาเป็นมาตรฐานที่ไม่มีประสิทธิภาพและทำให้เกิดความสับสนในอดีต ในตอนแรกอาย JSON ดูเหมือนจะเป็นที่นิยมมากที่สุด ดังนั้น JSON นั้นดีกว่า XML หรือไม่ การต่อสู้ของ "JSON กับ XML" อาจไปถึง JSON บนพื้นผิว แต่ในเชิงลึก มีมากกว่าที่เห็น
ในส่วนที่ 1 ของบทความนี้ เราจะ:
- ดูประวัติของเว็บอย่างละเอียดถี่ถ้วนเพื่อเปิดเผยจุดประสงค์ดั้งเดิมของ XML และ JSON
- พิจารณาวิวัฒนาการของแนวโน้มซอฟต์แวร์ในช่วงไม่กี่ปีที่ผ่านมาเพื่อให้แน่ใจว่าเหตุใด JSON จึงได้รับความนิยมมากกว่า XML
ประวัติของ JSON และ XML
เพื่อค้นหาสาเหตุของความนิยมของ JSON บน XML มาสำรวจประวัติของเว็บและดูว่าวิวัฒนาการจาก Web 1.0 เป็น Web 2.0 มีอิทธิพลต่อแนวโน้มในการพัฒนาอย่างไร
เว็บ 1.0: HTML
ต้นปี 1990 เป็นจุดเริ่มต้นของ Web 1.0 HTML ถูกนำมาใช้ในปี 1991 และได้รับการยอมรับอย่างกว้างขวางจากมหาวิทยาลัย ธุรกิจ และองค์กรภาครัฐในฐานะภาษาของเว็บ HTML มาจาก SGML หรือ "Standard Generalized Markup Language" ที่ IBM คิดค้นขึ้นในปี 1970 นอกจาก การนำไปใช้ จำนวนมากแล้ว HTML ยังเห็นการ ปรับ จำนวนมาก — มีการฝังส่วนขยายเพื่อรองรับมัลติมีเดีย แอนิเมชั่น แอปพลิเคชันออนไลน์ อีคอมเมิร์ซ และอื่นๆ ในฐานะอนุพันธ์ของ SGML HTML ขาดข้อกำหนดที่เข้มงวดในการจำกัดบริษัทต่างๆ จากการขยายอย่างอิสระเพื่อตอบสนองความต้องการที่อยู่นอกเหนือแนวคิดดั้งเดิม การแข่งขันสำหรับเว็บเบราว์เซอร์ที่ได้รับความนิยมสูงสุดระหว่าง Netscape และ Microsoft ทำให้เกิดความคืบหน้าอย่างรวดเร็ว แต่ก็นำไปสู่การกระจายตัวของมาตรฐานอย่างไม่หยุดยั้ง การแข่งขันที่ดุเดือดส่งผลให้เกิด "หายนะที่แตกต่าง" เนื่องจากการเพิ่ม HTML โดยทั้งสองบริษัททำให้เบราว์เซอร์สนับสนุน HTML เวอร์ชันเฉพาะของตนเอง ภัยพิบัติจากความแตกต่างนี้กลายเป็นปัญหาใหญ่สำหรับเว็บแอปพลิเคชัน เนื่องจากนักพัฒนาพยายามดิ้นรนเพื่อเขียนโค้ดที่ทำงานร่วมกันได้สำหรับเบราว์เซอร์
เว็บ 1.1: XML + HTML = XHTML
ในช่วงปลายทศวรรษ 1990 กลุ่มคน ซึ่งรวมถึง Jon Bosak, Tim Bray, James Clark และคนอื่นๆ ได้คิดค้น XML: "eXtensible Markup Language" เช่นเดียวกับ SGML XML ไม่ใช่ภาษามาร์กอัป แต่เป็นข้อกำหนดสำหรับคำจำกัดความของภาษามาร์กอัป XML เป็นวิวัฒนาการจาก SGML—ออกแบบมาเพื่อให้วิธีการกำหนดและบังคับใช้เนื้อหาที่มีโครงสร้าง ถือเป็น “จอกศักดิ์สิทธิ์ของการคำนวณ” 1 ภาษา XML พยายาม “เพื่อแก้ปัญหาการแลกเปลี่ยนข้อมูลสากลระหว่างระบบที่แตกต่างกัน” (ดร. ชาร์ลส์ โกลด์ฟาร์บ) 2 . แทนที่จะกระจาย HTML อย่างต่อเนื่อง คณะกรรมการเวิลด์ไวด์เว็บ (W3C) ได้รับการจัดตั้งขึ้นเพื่อส่งเสริมความเข้ากันได้และข้อตกลงระหว่างอุตสาหกรรมในการนำมาตรฐานใหม่สำหรับเวิลด์ไวด์เว็บมาใช้ 3 W3C ตั้งค่าเกี่ยวกับการปรับรูปแบบ HTML เป็นแอปพลิเคชัน XML โดยให้ผลลัพธ์เป็น XHTML
XHTML เป็นโครงการริเริ่มขนาดใหญ่ที่ดึงความสนใจมาที่ XML แต่เป็นเพียงส่วนเล็กๆ ส่วนหนึ่งของ XML เท่านั้น
XML เป็นช่องทางให้อุตสาหกรรมระบุภาษามาร์กอัปที่กำหนดเองด้วยความหมายที่เข้มงวดสำหรับแอปพลิเคชันใดๆ ด้วยคำหลักที่เป็น "ความหมายที่เข้มงวด" XML กำหนดมาตรฐานที่สามารถยืนยันความสมบูรณ์ของข้อมูลในเอกสาร XML ของภาษาย่อย XML ใดๆ สำหรับบริษัทซอฟต์แวร์ที่พัฒนาแอปพลิเคชันระดับองค์กรแบบกระจายที่เชื่อมต่อกับระบบที่แตกต่างกัน ภาษามาร์กอัปที่สามารถยืนยันความสมบูรณ์ของข้อมูลได้นั้นมีความสำคัญ ด้วยการกำหนดเนื้อหาที่มีโครงสร้างด้วย XML บริษัทต่างๆ ได้ใช้ประโยชน์จากคุณสมบัติของเทคโนโลยีนี้เพื่อทำงานร่วมกับแพลตฟอร์มใดๆ บังคับใช้ความสมบูรณ์ของข้อมูลในการแลกเปลี่ยนข้อมูลทุกครั้ง และเพื่อลดความเสี่ยงของซอฟต์แวร์ของระบบอย่างเป็นระบบ สำหรับอุตสาหกรรม XML ได้จัดเตรียมเทคโนโลยีในการจัดเก็บ สื่อสาร และตรวจสอบข้อมูลทุกประเภท ในรูปแบบที่แอปพลิเคชันบนแพลตฟอร์มใดๆ สามารถอ่านและประมวลผลได้อย่างง่ายดาย สำหรับ HTML นั้น XML สัญญาว่าจะแก้ไข "ภัยพิบัติจากความแตกต่าง"
Java และ .NET
ในช่วงต้นทศวรรษ 2000 เว็บอยู่ภายใต้การควบคุมของสองบริษัท: Sun และ Microsoft ในขณะนั้น ภูมิทัศน์ของภาษาการเขียนโปรแกรมเอียงไปทางฝั่งเซิร์ฟเวอร์อย่างมาก สถาปัตยกรรมทั่วไปสำหรับเว็บแอปพลิเคชันอาศัยเซิร์ฟเวอร์ที่แสดงหน้า HTML ที่ส่วนหลังเพื่อส่งไปยังเบราว์เซอร์ แนวทางนี้เน้นย้ำถึงเทคโนโลยีแบ็คเอนด์ ซึ่งทำให้แพลตฟอร์มแบ็คเอนด์ชั้นนำได้รับความนิยมอย่าง Java และ C#.NET Java ที่พัฒนาโดย Sun Microsystems เป็นผู้นำภาษาการเขียนโปรแกรมเชิงวัตถุรุ่นใหม่ที่แก้ปัญหาข้ามสถาปัตยกรรมด้วยแนวทาง 4 แบบใหม่ “เขียนครั้งเดียวทำงานได้ทุกที่” Microsoft ตามมาด้วย .NET, C# และ Common Language Runtime (CLR) และจับตามองที่ XML เป็นทางเลือกในการไขปริศนาการทำงานร่วมกันของข้อมูล Microsoft กลายเป็นผู้สนับสนุนที่ยิ่งใหญ่ที่สุดของ XML โดยบริษัทเลือก XML เป็นส่วนสำคัญของการริเริ่ม .NET ที่โดดเด่น โฆษณาว่าเป็น "แพลตฟอร์มสำหรับบริการเว็บ XML" แอปพลิเคชัน .NET ที่ 5 ได้รับการออกแบบให้ใช้ XML สำหรับการสื่อสารกับแพลตฟอร์มอื่นๆ XML ได้รับเลือกให้เป็นมาตรฐานการแลกเปลี่ยนข้อมูลของ Microsoft ถูกรวมเข้ากับผลิตภัณฑ์เซิร์ฟเวอร์หลัก เช่น SQL Server และ Exchange
เว็บ 1.2: AJAX
การส่งหน้า HTML ที่แสดงผลล่วงหน้าไปยังเบราว์เซอร์ไม่สามารถปรับขนาดได้ และเว็บต้องการทางเลือกอื่น ด้วยการดำเนินการของผู้ใช้แต่ละครั้งที่จำเป็นต้องโหลดหน้าใหม่จากเซิร์ฟเวอร์ การโหลดกระบวนการและการใช้แบนด์วิดท์กลายเป็นเรื่องที่น่ากังวลเนื่องจากมีผู้คนจำนวนมากขึ้นทำให้เว็บขยายตัว
Netscape และ Microsoft พยายามแก้ไขปัญหานี้ด้วยการส่งเนื้อหาแบบอะซิงโครนัส: ActiveX และ JavaScript ในปี 1998 ทีมงาน Microsoft Outlook Web Access ได้พัฒนาแนวคิดเบื้องหลัง ActiveX 6 ซึ่งต่อมาถูกนำไปใช้โดย Mozilla, Safari, Opera และเบราว์เซอร์อื่นๆ ใน JavaScript เป็นวัตถุ XMLHttpRequest
AJAX เกิดจาก ActiveX ของ Microsoft และ JavaScript ของ Netscape
คำว่า AJAX ย่อมาจาก “Asynchronous JavaScript and XML” เป็นตัวแทนของเทคโนโลยีเว็บที่หลากหลาย สามารถนำมาใช้เพื่อใช้งานเว็บแอปพลิเคชันที่สื่อสารกับเซิร์ฟเวอร์ในเบื้องหลังโดยไม่ต้องโหลดหน้าซ้ำ ในบทความที่สร้างคำว่า AJAX, 7 8 Jesse James Garrett ได้สรุปแนวคิดหลัก:
- HTML (หรือ XHTML) และ CSS สำหรับการนำเสนอ
- Document Object Model (DOM) สำหรับการแสดงและการโต้ตอบกับข้อมูลแบบไดนามิก
- XML สำหรับการแลกเปลี่ยนข้อมูล และ XSLT สำหรับการจัดการ
- ออบเจ็กต์
XMLHttpRequest
สำหรับการสื่อสารแบบอะซิงโครนัส - JavaScript เพื่อนำเทคโนโลยีเหล่านี้มารวมกัน
ด้วยการนำส่งเนื้อหาแบบอะซิงโครนัสซึ่งพิสูจน์แล้วว่าช่วยลดภาระของเซิร์ฟเวอร์และประหยัดแบนด์วิธได้มาก AJAX จึงเป็นตัวเปลี่ยนเกม การเปิดตัว XMLHttpRequest
ในเบราว์เซอร์ทำให้นักพัฒนาสามารถใช้ตรรกะที่ซับซ้อนมากขึ้นในส่วนหน้าได้ Google ได้ปรับใช้ AJAX ข้ามเบราว์เซอร์ที่เป็นไปตามมาตรฐานกับ Gmail ในปี 2547 และ Google Maps ในปี 2548 9 และในเดือนตุลาคม 2547 รุ่นเบต้าสาธารณะของ Kayak.com เป็นหนึ่งในอีคอมเมิร์ซขนาดใหญ่กลุ่มแรกที่ใช้ AJAX 10
เว็บ 2.0: แอปพลิเคชันหน้าเดียว
การนำ AJAX มาใช้เป็นสถาปัตยกรรมที่ปรับขนาดได้สำหรับเว็บแอปพลิเคชัน นำไปสู่การเริ่มต้นของ Web 2.0: แอปพลิเคชันหน้าเดียว (SPA) 11 แทนที่จะโหลดซ้ำทั้งหน้าสำหรับการโต้ตอบของผู้ใช้แต่ละครั้ง SPA จะเขียนหน้าปัจจุบันใหม่ภายในเบราว์เซอร์แบบไดนามิก นอกจากการลดภาระของเซิร์ฟเวอร์และการใช้แบนด์วิดท์ลงอย่างมากแล้ว แนวทาง SPA ยังอนุญาตให้เว็บแอปพลิเคชันคล้ายกับแอปพลิเคชันเดสก์ท็อปเนื่องจากประสบการณ์ที่ราบรื่นและไม่สะดุดระหว่างการโต้ตอบกับผู้ใช้
ในเดือนเมษายน 2545 Stuart Morris เขียนหนึ่งใน SPA แรกๆ ที่ slashdotslash.com 12 และต่อมาในปีเดียวกัน Lucas Birdeau, Kevin Hakman, Michael Peachey และ Evan Yeh บรรยายการใช้งานหน้าเดียวในสิทธิบัตรสหรัฐอเมริกา 8,136,109 รายการ 13 สิทธิบัตรอธิบายเว็บเบราว์เซอร์ที่ใช้ JavaScript เพื่อแสดงส่วนต่อประสานผู้ใช้ เรียกใช้ตรรกะของแอปพลิเคชัน และสื่อสารกับเว็บเซิร์ฟเวอร์
Gmail ของ Google, Google Maps และรุ่นเบต้าสาธารณะของ Kayak ได้จุดประกายให้เกิดยุคใหม่ของการพัฒนาเว็บแอปพลิเคชัน เบราว์เซอร์ที่เปิดใช้งานด้วย AJAX ช่วยให้นักพัฒนาสามารถเขียนแอปพลิเคชันที่หลากหลายสำหรับเว็บได้ ความหมายที่ง่ายของ JavaScript ทำให้การพัฒนาแอปพลิเคชันเป็นไปได้สำหรับโปรแกรมเมอร์ทุกระดับ อุปสรรคในการเข้าสู่การพัฒนาซอฟต์แวร์ลดลงอย่างมาก และนักพัฒนาแต่ละรายทั่วโลกเริ่มมีส่วนร่วมกับไลบรารีและเฟรมเวิร์กของตนเอง ไลบรารียอดนิยม เช่น jQuery ซึ่งทำให้การทำงานของ AJAX เป็นปกติในเบราว์เซอร์จากผู้ผลิตหลายราย ทำให้เกิดการปฏิวัติ AJAX ต่อไป
การเพิ่มขึ้นของ JSON
ในเดือนเมษายน 2544 Douglas Crockford และ Chip Morningstar ส่งข้อความ JSON แรกจากคอมพิวเตอร์ที่โรงรถบริเวณ Bay Area ของ Morningstar Crockford และ Morningstar พยายามสร้างแอปพลิเคชัน AJAX ให้ดีก่อนที่จะมีการสร้างคำว่า "AJAX" แต่การสนับสนุนเบราว์เซอร์สำหรับสิ่งที่พวกเขาพยายามทำให้สำเร็จนั้นไม่ดี พวกเขาต้องการส่งข้อมูลไปยังแอปพลิเคชันของตนหลังจากโหลดหน้าเว็บแล้ว แต่ยังไม่พบวิธีที่จะอนุญาตให้ดำเนินการนี้กับเบราว์เซอร์ทั้งหมดได้
ในปี 2544 การพัฒนา AJAX เพิ่งเริ่มต้นขึ้น และยังไม่มีรูปแบบที่ทำงานร่วมกันได้ของวัตถุ XMLHttpRequest
ใน Internet Explorer 5 และ Netscape 4 ดังนั้น Crockford และ Morningstar จึงใช้วิธีการที่แตกต่างกันซึ่งทำงานในทั้งสองเบราว์เซอร์
ข้อความ JSON แรกมีลักษณะดังนี้:
<html><head><script> document.domain = 'fudco'; parent.session.receive( { to: "session," do: "test," text: "Hello world" } ) </script></head></html>
ข้อความนี้เป็นเอกสาร HTML ที่มี JavaScript บางส่วน และมีเพียงส่วนเล็ก ๆ ของข้อความที่มีลักษณะคล้าย JSON อย่างที่เราทราบในปัจจุบัน Crockford และ Morningstar สามารถโหลดข้อมูลแบบอะซิงโครนัสได้โดยชี้ <iframe>
ไปยัง URL ที่จะส่งคืนเอกสาร HTML เช่นเดียวกับด้านบน เมื่อได้รับการตอบกลับ JavaScript ใน HTML จะทำงาน และโดยการหลีกเลี่ยงการป้องกันเบราว์เซอร์ที่ป้องกันไม่ให้หน้าต่างย่อยเข้าถึงพาเรนต์ วัตถุตามตัวอักษรจะถูกส่งกลับไปยังเฟรมหลักของแอปพลิเคชัน เทคนิคที่ใช้เฟรมนี้ ซึ่งบางครั้งเรียกว่า "เทคนิคเฟรมที่ซ่อนอยู่" มักใช้ในช่วงปลายยุค 90 ก่อนการนำ XMLHttpRequest
ไปใช้อย่างแพร่หลาย 14

แนวทางนี้ดึงดูดนักพัฒนาเพราะให้ความสามารถในการทำงานร่วมกันได้ในทุกเบราว์เซอร์ เนื่องจากข้อความเป็นเพียง JavaScript จึงไม่จำเป็นต้องมีการแยกวิเคราะห์พิเศษใดๆ แนวคิดในการใช้ JavaScript ด้วยวิธีนี้ตรงไปตรงมามากจน Crockford บอกว่าเขาไม่ใช่คนแรกที่ทำแบบนั้น—เขาอ้างว่ามีใครบางคนที่ Netscape ใช้ JavaScript เพื่อสื่อสารข้อมูลตั้งแต่ช่วงต้นปี 1996 15
Crockford และ Morningstar ตระหนักดีว่าพวกเขามีบางอย่างที่สามารถใช้งานได้ทุกประเภท พวกเขาตั้งชื่อรูปแบบ JSON ซึ่งย่อมาจาก "JavaScript Object Notation" พวกเขาเริ่มนำเสนอให้กับลูกค้า แต่ในไม่ช้าก็พบว่าหลายคนไม่เต็มใจที่จะเสี่ยงกับเทคโนโลยีใหม่ที่ไม่มีคุณสมบัติอย่างเป็นทางการ ดังนั้น Crockford จึงตัดสินใจว่าเขาจะเขียนเรื่องนี้ ในปี 2002 Crockford ได้ซื้อโดเมน JSON.org และวางไวยากรณ์ JSON และการนำ Parser ไปใช้อ้างอิง เว็บไซต์ยังคงอยู่ แม้ว่าตอนนี้จะมีลิงก์ที่ชัดเจนไปยังมาตรฐาน JSON ECMA ที่ให้สัตยาบันในปี 2013 16 หลังจากวางเว็บไซต์ Crockford ได้ดำเนินการส่งเสริม JSON เพียงเล็กน้อย แต่ไม่นานก็พบว่ามีผู้ส่งการใช้งานตัวแยกวิเคราะห์ JSON สำหรับภาษาโปรแกรมต่างๆ ที่มาของ JSON นั้นเชื่อมโยงกับ JavaScript อย่างชัดเจน แต่เห็นได้ชัดว่า JSON นั้นเหมาะสมดีในการแลกเปลี่ยนข้อมูลระหว่างภาษาต่างๆ
JSON ใน AJAX
ในปี 2548 Jesse James Garrett ได้บัญญัติคำว่า "AJAX" ในบล็อกโพสต์ โดยเขาเน้นว่า AJAX ไม่ใช่เทคโนโลยีใหม่แต่อย่างใด แต่เป็น "เทคโนโลยีหลายอย่าง ซึ่งแต่ละเทคโนโลยีก็เจริญรุ่งเรืองด้วยตัวของมันเอง มารวมกันในรูปแบบใหม่ที่ทรงพลัง" 16 บล็อกโพสต์ของเขาอธิบายต่อไปว่านักพัฒนาสามารถใช้ JavaScript และ XMLHttpRequest
เพื่อสร้างแอปพลิเคชันประเภทใหม่ที่ตอบสนองและเก็บสถานะได้ดีกว่าหน้าเว็บทั่วไปได้อย่างไร เขาชี้ไปที่ Gmail, Google Maps และ Flickr เป็นตัวอย่างเว็บไซต์ที่ใช้เทคนิค AJAX แม้ว่า “X” ใน “AJAX” จะใช้แทน XML แต่ Garrett ชี้ไปที่ JSON ว่าเป็นทางเลือกที่ยอมรับได้โดยสิ้นเชิง เขาเขียนว่า “XML เป็นวิธีที่ได้รับการพัฒนาอย่างเต็มที่ที่สุดในการรับข้อมูลเข้าและออกจากไคลเอนต์ AJAX แต่ก็ไม่มีเหตุผลที่คุณไม่สามารถใช้เอฟเฟกต์แบบเดียวกันได้สำเร็จโดยใช้เทคโนโลยีเช่น JavaScript Object Notation หรือวิธีการจัดโครงสร้างข้อมูลที่คล้ายกัน” 17
JavaScript และ JSON มีจุดมุ่งหมายร่วมกันอย่างชัดเจน ความหมายของ JSON จับคู่กับ JavaScript โดยตรง ทำให้เป็นรูปแบบการแลกเปลี่ยนข้อมูลดั้งเดิมสำหรับภาษา นักพัฒนาพบว่า JSON ใช้งานได้ง่ายกว่าใน JavaScript และหลายคนชอบ XML มากกว่า
เมื่อ JSON ดึงความสนใจจากบล็อกเกอร์ การแพร่กระจายของ JSON ก็ได้เริ่มต้นขึ้น
ทำไม JSON ถึงได้รับความนิยมมากกว่า XML
JSON เป็นรูปแบบดั้งเดิมสำหรับข้อมูลในแอปพลิเคชัน JavaScript ด้วยความนิยมของ JavaScript ในทศวรรษที่ผ่านมา ข้อความ JSON ถูกสร้างขึ้นมากกว่ารูปแบบข้อมูลอื่นๆ การเขียนแอปพลิเคชันใน JavaScript เกือบจะบังคับให้ใช้ JSON สำหรับการแลกเปลี่ยนข้อมูล รูปแบบอื่นเป็นไปได้ แต่ต้องใช้ความพยายามมากกว่า JSON ด้วย JavaScript ที่ได้รับความนิยมในการพัฒนาแอปพลิเคชัน JSON จึงติดตามอย่างใกล้ชิดในรูปแบบการแลกเปลี่ยนข้อมูลที่ใช้งานง่ายและผสานรวมแบบเนทีฟ
เท่าที่เกี่ยวข้องกับ blogosphere มีการเขียนบทความ ตัวอย่าง และบทช่วยสอนเพิ่มเติมเกี่ยวกับ JavaScript (และด้วยเหตุนี้ JSON) มากกว่าแพลตฟอร์มการเขียนโปรแกรมอื่นๆ
ประวัติศาสตร์และเส้นทางวิวัฒนาการของเว็บมีบทบาทสำคัญในการทำให้ JSON เป็นที่นิยม ตาม Stack Overflow ตอนนี้มีการถามคำถามเกี่ยวกับ JSON มากกว่ารูปแบบการแลกเปลี่ยนข้อมูลอื่น ๆ 18
จากข้อมูลของ Google Trends พบว่ามีโปรไฟล์ที่คล้ายกันเปรียบเทียบความสนใจในการค้นหาสำหรับ JSON และ XML 19
การเพิ่มจำนวน JavaScript หมายความว่า JSON ดีกว่า XML หรือไม่
ชุมชนนักพัฒนายืนยันว่า JSON ได้รับความนิยมมากกว่า XML เนื่องจากมีขอบเขตการประกาศที่รัดกุมและความหมายที่เรียบง่าย Douglas Crockford สรุปข้อดีของ JSON ใน JSON.org เองว่า “JSON เข้าใจได้ง่ายสำหรับทั้งมนุษย์และเครื่องจักร เนื่องจากไวยากรณ์ของ JSON มีน้อยและโครงสร้างของมันคาดเดาได้” 20 นักวิจารณ์คนอื่นๆ เกี่ยวกับ XML ได้เน้นที่การใช้คำฟุ่มเฟือยของ XML ว่าเป็น "ภาษีวงเล็บมุม" 21 รูปแบบ XML กำหนดให้แท็กเปิดแต่ละแท็กจับคู่กับแท็กปิด ส่งผลให้มีข้อมูลซ้ำซ้อนที่สามารถทำให้เอกสาร XML มีขนาดใหญ่กว่าเอกสาร JSON ที่เทียบเท่ากันอย่างมากเมื่อไม่มีการบีบอัด และที่สำคัญกว่านั้นคือ นักพัฒนากล่าวว่า "มันยังทำให้เอกสาร XML อ่านยากขึ้นอีกด้วย" 22
JSON ได้รับการยกย่องอย่างรวดเร็วเนื่องจากความเรียบง่ายและความหมายที่สั้น และ XML ถูกระบุว่าเป็นมาตรฐานที่ล้าสมัยเนื่องจากการใช้คำฟุ่มเฟือยและดูเหมือนความซับซ้อนมากเกินไป บทความและโพสต์ในบล็อกจำนวนมากมีมุมมองที่จำกัดเมื่อเปรียบเทียบ JSON กับ XML ทำให้ผู้อ่านเชื่อว่า JSON มาแทนที่ XML กรณีนี้ไม่ได้!
มุมมองที่จำกัดที่นำเสนอโดยบทความและโพสต์ในบล็อกทำให้ผู้อ่านลดราคา XML เนื่องจากล้าสมัย ทำให้หลายคนไม่ทราบถึงคุณลักษณะที่มีประสิทธิภาพที่อาจช่วยปรับปรุงสถาปัตยกรรมของซอฟต์แวร์และความยืดหยุ่นในการเปลี่ยนแปลง ตลอดจนลดความเสี่ยงของซอฟต์แวร์อย่างเป็นระบบ
JSON ได้รับความนิยมมากกว่า XML เนื่องจากการครอบงำของ JavaScript เป็นภาษาที่ใช้กันอย่างแพร่หลายที่สุดในปัจจุบัน ด้วยอิทธิพลของแนวโน้มซอฟต์แวร์ของ JavaScript ในช่วงทศวรรษที่ผ่านมา JSON ยังคงได้รับความสนใจมากขึ้นเรื่อยๆ มากกว่ารูปแบบการแลกเปลี่ยนข้อมูลอื่นๆ Blogosphere นั้นสะท้อนได้อย่างรวดเร็วว่า “JSON ดีกว่า XML” แต่ส่วนใหญ่แล้ว ข้อความเหล่านี้มักไม่ยุติธรรม หรือได้รับการสนับสนุนด้วยการเปรียบเทียบอย่างง่ายเกี่ยวกับความหมายและการใช้คำฟุ่มเฟือย มาตรฐานดีกว่าแบบอื่นหรือไม่? คำตอบสำหรับคำถามนี้สามารถมาจากการประเมินอย่างลึกซึ้งของแต่ละมาตรฐานเท่านั้น
บทสรุป
ตั้งแต่ปี 1990 จนถึงปัจจุบัน เว็บมาไกลมาก สงครามเบราว์เซอร์ระหว่าง Netscape และ Microsoft ทำให้เกิดหายนะที่แตกต่างกันของ HTML และจำเป็นต้องมีโซลูชันในการบันทึกเว็บ XML ถูกประดิษฐ์ขึ้นเพื่อทำให้ XHTML เป็นทางการ และมอบโซลูชันจอกศักดิ์สิทธิ์สำหรับการคำนวณโดยรวม ตั้งแต่การเรนเดอร์หน้า HTML แบบเต็มโดยเซิร์ฟเวอร์แบ็คเอนด์ไปจนถึง AJAX และ SPA แนวโน้มในสถาปัตยกรรมเว็บและการพัฒนาเบราว์เซอร์ได้ให้ความสำคัญกับ JavaScript ซึ่งทำให้นักพัฒนาทั่วโลกมุ่งสู่ JSON
ความนิยมของ JSON มีความสัมพันธ์กับจาวาสคริปต์ จาวาสคริปต์ได้นำนักพัฒนาซอฟต์แวร์ใหม่ๆ มาเขียนซอฟต์แวร์มากกว่าภาษาอื่นๆ ด้วยความสะดวกในการใช้งานและช่วงการเรียนรู้ที่สั้น ด้วยการผสานรวมดั้งเดิมของ JSON กับแพลตฟอร์มการพัฒนาที่ได้รับความนิยมสูงสุด จึงไม่น่าแปลกใจที่มีคำถามเกี่ยวกับ JSON บน Stack Overflow มากกว่ารูปแบบการแลกเปลี่ยนข้อมูลอื่นๆ
ด้วยแนวโน้มของซอฟต์แวร์ในช่วงไม่กี่ปีที่ผ่านมาทำให้นักพัฒนา JavaScript เข้าสู่อุตสาหกรรมมากขึ้น JSON จึงได้รับฉายาว่า "รูปแบบการแลกเปลี่ยนข้อมูลที่ได้รับความนิยมมากที่สุด"
บนพื้นผิวการต่อสู้ของ "JSON กับ XML" ไปที่ JSON แต่ในเชิงลึก มีมากกว่าที่เห็น
ในส่วนที่ 2 ของบทความนี้ เราจะพิจารณาจุดแข็งและจุดอ่อนทางเทคนิคของ JSON และ XML อย่างละเอียดยิ่งขึ้น และประเมินความเหมาะสมของแต่ละมาตรฐานสำหรับการใช้งานทั่วไปและองค์กร การพิจารณาอย่างละเอียดถี่ถ้วนใน "การแลกเปลี่ยนข้อมูล" จะเผยให้เห็นถึงอิทธิพลที่กว้างไกลต่อความเสี่ยงด้านซอฟต์แวร์ของแอปพลิเคชันโดยรวม ความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับความแตกต่างพื้นฐานระหว่าง JSON และ XML จะช่วยให้นักพัฒนาสามารถประเมินความเสี่ยงด้านซอฟต์แวร์ของแต่ละมาตรฐานที่เกี่ยวข้องกับข้อกำหนดของโครงการได้ดียิ่งขึ้น เพื่อช่วยให้นักพัฒนาสามารถสร้างซอฟต์แวร์ที่มีเสถียรภาพมากขึ้น ทนทานต่อจุดบกพร่องและอนาคตมากขึ้น ไม่รู้จัก
อีกประการหนึ่งที่น่าสนใจของข้อกำหนด JSON คือคุณไม่สามารถแปลงวัตถุ JavaScript ด้วยความสัมพันธ์แบบสองทิศทาง โดยที่คุณสมบัติย่อยอ้างอิงถึงคุณสมบัติหลัก เป็น JSON การทำเช่นนั้นจะส่งผลให้เกิด Uncaught TypeError: Converting circular structure to JSON
สำหรับการแฮ็กเกี่ยวกับข้อจำกัดนี้ โปรดดู Bidirectional Relationship Support ใน JSON
อ้างอิง
1. อินเทอร์เน็ต: สารานุกรมประวัติศาสตร์ ลำดับเหตุการณ์ เล่ม 3, น. 130 (ABC-CLIO, 2005)
2. คู่มือข้อมูลเมตา ความหมายและอภิปรัชญา หน้า 109 (World Scientific, ธันวาคม 2013)
3. WebDiy.org - World Wide Web Consortium (W3C) - ประวัติ
4. "JavaSoft จัดส่ง Java 1.0" (Sun Microsystems, มกราคม 1996)
5. การเปิดใช้งานอินเทอร์เน็ตยุคหน้าเชิงพื้นที่ (David Engen, มกราคม 2002)
6. เรื่องราวของ XMLHTTP (AlexHopmann.com, มกราคม 2550)
7. การเริ่มต้น Ajax - หน้า 2 (Wiley Publishing, มีนาคม 2550)
8. Ajax: แนวทางใหม่ในการใช้งานเว็บ (Jesse James Garrett, กุมภาพันธ์ 2548)
9. ประวัติโดยย่อของอาแจ็กซ์ (Aaron Swartz, ธันวาคม 2548)
10. "Kayak.com คืออะไร" (ผู้ปฏิบัติงานเบื้องหลัง, ตุลาคม 2551)
11. Inner-Browsing: ขยายกระบวนทัศน์การนำทางการท่องเว็บ (Netscape, พฤษภาคม 2003)
12. "เว็บไซต์ในตัวโดยใช้ DHTML" (SlashDotSlash.com, กรกฎาคม 2012)
13. การส่งข้อมูลและการจัดรูปแบบข้อมูลเพื่อให้สามารถจัดการฝั่งไคลเอ็นต์ได้ (US Patent Bureau, เมษายน 2002)
14. "อาแจ็กซ์คืออะไร" อาแจ็กซ์มืออาชีพ รุ่นที่ 2 (ไวลีย์ มีนาคม 2550)
15. Douglas Crockford: The JSON Saga (Yahoo!, กรกฎาคม 2009)
16. มาตรฐาน ECMA 404 (ECMA International, ธันวาคม 2017)
17. Ajax: A New Approach to Web Applications (Jesse James Garrett, กุมภาพันธ์ 2548)
18. เทรนด์ล้นกอง (Stack Overflow, 2009-2019)
19. Google เทรนด์ (Google, 2004-2019)
20. JSON: ทางเลือกที่ปราศจากไขมันสำหรับ XML (Crockford, 2006)
21. XML: ภาษีวงเล็บมุม (Coding Horror พฤษภาคม 2008)
22. Xml ห่วย (WikiWikiWeb, 2016)