Pandangan Mendalam tentang JSON vs. XML, Bagian 1: Sejarah Setiap Standar

Diterbitkan: 2022-03-11
Terkait: Pandangan Mendalam JSON vs XML, Bagian 2: Kekuatan dan Kelemahan Keduanya

Dari desktop hingga web dan seluler, hampir semua aplikasi komputer yang kita gunakan saat ini mengandalkan salah satu dari dua standar pesan utama: JSON dan XML. Saat ini, JSON adalah format yang paling banyak digunakan, tetapi hanya mengambil alih XML dalam lima tahun terakhir. Pencarian online cepat untuk "JSON vs. XML" akan membawa banyak artikel dan posting blog yang membandingkan dua standar, dan menjadi bias yang semakin meluas memuji kesederhanaan JSON dan mengkritik verbositas XML. Banyak artikel bersikeras bahwa JSON lebih unggul dari XML karena semantiknya yang singkat dan diskon XML sebagai standar masa lalu yang tidak efisien dan membingungkan. Pada awalnya, JSON tampaknya paling populer—jadi apakah JSON lebih baik daripada XML? Pertempuran "JSON vs. XML" mungkin mengarah ke JSON di permukaan, tetapi secara mendalam, ada lebih dari yang terlihat.

Di Bagian 1 artikel ini, kami akan:

  1. Lihat lebih dekat sejarah web untuk mengungkap tujuan asli XML dan JSON.
  2. Pertimbangkan evolusi tren perangkat lunak dalam beberapa tahun terakhir untuk memastikan mengapa JSON menjadi lebih populer daripada XML.

Sejarah JSON dan XML

Untuk mengungkap alasan popularitas JSON atas XML, mari jelajahi sejarah web dan bagaimana evolusinya dari Web 1.0 ke Web 2.0 memengaruhi tren dalam pengembangan.

Web 1.0: HTML

Awal 1990-an adalah awal dari Web 1.0. HTML diperkenalkan pada tahun 1991 dan diadopsi secara luas oleh universitas, bisnis, dan organisasi pemerintah sebagai bahasa web. HTML berasal dari SGML, atau “Standard Generalized Markup Language,” ditemukan pada 1970-an oleh IBM. Selain adopsi massal , HTML melihat adaptasi massal — ekstensi disematkan untuk mendukung multimedia, animasi, aplikasi online, eCommerce, dan banyak lagi. Sebagai turunan dari SGML, HTML tidak memiliki spesifikasi yang ketat untuk menahan perusahaan dari memperluasnya secara bebas untuk memenuhi persyaratan yang berada di luar konsep aslinya. Kontes untuk browser web paling populer antara Netscape dan Microsoft menghasilkan kemajuan pesat, tetapi juga menyebabkan fragmentasi standar tanpa henti. Persaingan sengit mengakibatkan "bencana divergensi" karena augmentasi HTML oleh kedua perusahaan menyebabkan browser mendukung versi HTML unik mereka sendiri. Bencana divergensi ini menjadi masalah besar bagi aplikasi web karena pengembang berjuang untuk menulis kode yang dapat dioperasikan untuk browser.

Web 1.1: XML + HTML = XHTML

Pada akhir 1990-an, sekelompok orang—termasuk Jon Bosak, Tim Bray, James Clark, dan lainnya—menciptakan XML: “Bahasa Markup eXtensible.” Seperti SGML, XML bukanlah bahasa markup itu sendiri, tetapi spesifikasi untuk definisi bahasa markup. XML adalah evolusi dari SGML—dirancang untuk menyediakan sarana untuk mendefinisikan, dan menegakkan, konten terstruktur. Dianggap sebagai "cawan suci komputasi," 1 bahasa XML berusaha "untuk memecahkan masalah pertukaran data universal antara sistem yang berbeda" (Dr. Charles Goldfarb) 2 . Sebagai pengganti dari fragmentasi HTML yang sedang berlangsung, World Wide Web Committee (W3C) dibentuk untuk mendorong kompatibilitas dan kesepakatan di antara industri dalam penerapan standar baru untuk World Wide Web. 3 W3C mulai membentuk kembali HTML sebagai aplikasi XML, dengan hasil menjadi XHTML.

XHTML adalah inisiatif besar yang membawa perhatian pada XML, tetapi ini hanya satu bagian kecil dari XML.

XML menyediakan cara bagi industri untuk menentukan, dengan semantik yang ketat, bahasa markup khusus untuk aplikasi apa pun. Dengan kata kunci "strict semantics", XML mendefinisikan standar yang dapat menegaskan integritas data dalam dokumen XML apa pun, dari sub-bahasa XML apa pun. Untuk perusahaan perangkat lunak yang mengembangkan aplikasi perusahaan terdistribusi yang berinteraksi dengan sistem yang berbeda, bahasa markup yang dapat menegaskan integritas datanya sangat penting. Dengan mendefinisikan konten terstruktur dengan XML, perusahaan memanfaatkan fitur teknologi ini untuk beroperasi dengan platform apa pun, menegakkan integritas data dari setiap pertukaran data, dan secara sistematis mengurangi risiko perangkat lunak sistem mereka. Untuk industri, XML menyediakan teknologi untuk menyimpan, mengomunikasikan, dan memvalidasi segala jenis data, dalam bentuk yang dapat dengan mudah dibaca dan diproses oleh aplikasi pada platform apa pun. Untuk HTML, XML berjanji untuk memecahkan "bencana divergensi."

Java dan .NET

Pada awal 2000-an, web diatur oleh dua perusahaan: Sun dan Microsoft. Pada saat itu, lanskap bahasa pemrograman sangat miring ke sisi server. Arsitektur umum untuk aplikasi web mengandalkan server yang merender halaman HTML di bagian belakang untuk dikirimkan ke browser. Pendekatan ini menyoroti teknologi back-end, yang pada gilirannya mempopulerkan platform back-end terkemuka: Java dan C#.NET. Dikembangkan oleh Sun Microsystems, Java memimpin generasi baru bahasa pemrograman berorientasi objek yang memecahkan masalah lintas-arsitektur dengan pendekatan “tulis sekali jalankan di mana saja” 4 yang baru. Microsoft mengikuti dengan .NET, C#, dan Common Language Runtime (CLR) dan mengarahkan pandangannya pada XML sebagai pendekatan pilihan untuk memecahkan teka-teki interoperabilitas data. Microsoft menjadi pendukung terbesar XML, dengan perusahaan memilih XML sebagai bagian integral dari inisiatif .NET yang menonjol. Diiklankan sebagai "platform untuk layanan web XML," 5 aplikasi .NET dirancang untuk menggunakan XML untuk komunikasi dengan platform lain. Dipilih sebagai standar pertukaran data Microsoft, XML diintegrasikan ke dalam produk server andalannya, seperti SQL Server dan Exchange.

Web 1.2: AJAX

Pengiriman halaman HTML yang telah dirender sebelumnya ke browser tidak dapat diskalakan, dan web membutuhkan alternatif. Dengan setiap tindakan pengguna yang membutuhkan halaman baru untuk dimuat dari server, beban proses dan konsumsi bandwidth menjadi perhatian karena semakin banyak orang yang membanjiri web.

Netscape dan Microsoft berusaha untuk mengatasi masalah ini dengan pengiriman konten asinkron: ActiveX dan JavaScript. Pada tahun 1998, tim Microsoft Outlook Web Access mengembangkan konsep di balik ActiveX 6 , yang kemudian diimplementasikan oleh Mozilla, Safari, Opera, dan browser lainnya dalam JavaScript sebagai objek XMLHttpRequest .

AJAX lahir dari Microsoft ActiveX dan JavaScript Netscape.

Istilah AJAX—kependekan dari “Asynchronous JavaScript and XML”—telah mewakili berbagai teknologi web yang dapat digunakan untuk mengimplementasikan aplikasi web yang berkomunikasi dengan server di latar belakang tanpa memerlukan halaman untuk dimuat ulang. Dalam artikel yang menciptakan istilah AJAX, 7 8 Jesse James Garrett menguraikan konsep utama:

  1. HTML (atau XHTML) dan CSS untuk presentasi.
  2. Model Objek Dokumen (DOM) untuk tampilan dinamis, dan interaksi dengan, data.
  3. XML untuk pertukaran data, dan XSLT untuk manipulasinya.
  4. Objek XMLHttpRequest untuk komunikasi asinkron.
  5. JavaScript untuk menyatukan teknologi ini.

Dengan pengiriman konten asinkron yang terbukti mengurangi beban server dan menghemat bandwidth yang cukup besar, AJAX adalah pengubah permainan. Pengenalan XMLHttpRequest ke browser memungkinkan pengembang untuk menerapkan logika yang lebih kompleks di front end. Google membuat penerapan luas AJAX lintas-browser yang sesuai standar dengan Gmail pada tahun 2004 dan Google Maps pada tahun 2005. 9 Dan, pada bulan Oktober 2004, rilis beta publik Kayak.com adalah salah satu penggunaan eCommerce skala besar pertama dari AJAX. 10

Web 2.0: Aplikasi satu halaman

Adopsi AJAX sebagai arsitektur scalable untuk aplikasi web menyebabkan awal Web 2.0: Aplikasi Satu Halaman (SPA). 11 Alih-alih memuat ulang seluruh halaman untuk setiap interaksi pengguna, SPA secara dinamis menulis ulang halaman saat ini di dalam browser. Selain pengurangan yang cukup besar dalam beban server dan konsumsi bandwidth, pendekatan SPA memungkinkan aplikasi web menyerupai aplikasi desktop karena pengalaman yang mulus dan tanpa gangguan selama interaksi pengguna.

Pada April 2002, Stuart Morris menulis salah satu SPA pertama di slashdotslash.com 12 , dan kemudian pada tahun yang sama, Lucas Birdeau, Kevin Hakman, Michael Peachey, dan Evan Yeh menjelaskan implementasi aplikasi satu halaman dalam paten AS 8.136.109. 13 Paten menjelaskan browser web menggunakan JavaScript untuk menampilkan antarmuka pengguna, menjalankan logika aplikasi, dan berkomunikasi dengan server web.

Google Gmail, Google Maps, dan beta publik Kayak memicu era baru pengembangan aplikasi web. Peramban yang diaktifkan dengan AJAX memberdayakan pengembang untuk menulis aplikasi yang kaya untuk web. Semantik JavaScript yang mudah memungkinkan pengembangan aplikasi bagi pemrogram berkaliber apa pun. Hambatan untuk masuk ke pengembangan perangkat lunak sangat berkurang, dan pengembang individu di seluruh dunia mulai berkontribusi dengan perpustakaan dan kerangka kerja mereka sendiri. Pustaka populer seperti jQuery, yang menormalkan perilaku AJAX di seluruh browser dari produsen yang berbeda, semakin memajukan revolusi AJAX.

Kebangkitan JSON

Pada April 2001, Douglas Crockford dan Chip Morningstar mengirim pesan JSON pertama dari komputer di garasi Morningstar's Bay Area. Crockford dan Morningstar mencoba membangun aplikasi AJAX jauh sebelum istilah "AJAX" diciptakan, tetapi dukungan browser untuk apa yang mereka coba capai tidak bagus. Mereka ingin meneruskan data ke aplikasi mereka setelah halaman dimuat, tetapi belum menemukan cara untuk memungkinkan ini berfungsi di semua browser.

Pada tahun 2001, pengembangan AJAX baru saja dimulai, dan belum ada bentuk objek XMLHttpRequest yang dapat dioperasikan di Internet Explorer 5 dan Netscape 4. Jadi Crockford dan Morningstar menggunakan pendekatan berbeda yang bekerja di kedua browser.

Pesan JSON pertama terlihat seperti ini:

 <html><head><script> document.domain = 'fudco'; parent.session.receive( { to: "session," do: "test," text: "Hello world" } ) </script></head></html>

Pesan ini sebenarnya adalah dokumen HTML yang berisi beberapa JavaScript, dan hanya sebagian kecil dari pesan yang menyerupai JSON seperti yang kita kenal sekarang. Crockford dan Morningstar dapat memuat data secara asinkron dengan mengarahkan <iframe> ke URL yang akan mengembalikan dokumen HTML seperti di atas. Ketika respons diterima, JavaScript dalam HTML akan dijalankan, dan dengan menghindari perlindungan browser yang mencegah sub-jendela mengakses induknya, literal objek diteruskan kembali ke bingkai utama aplikasi. Teknik berbasis bingkai ini, kadang-kadang disebut "teknik bingkai tersembunyi", umumnya digunakan di akhir tahun 90-an sebelum penerapan XMLHttpRequest . 14

Pendekatan ini menarik bagi pengembang karena menawarkan interoperabilitas di semua browser. Karena pesannya hanya JavaScript, itu tidak memerlukan penguraian khusus apa pun. Ide menggunakan JavaScript dengan cara ini sangat sederhana sehingga Crockford sendiri mengatakan bahwa dia bukan orang pertama yang melakukannya—dia mengklaim bahwa seseorang di Netscape menggunakan JavaScript untuk mengkomunikasikan informasi sejak tahun 1996. 15

Crockford dan Morningstar menyadari bahwa mereka memiliki sesuatu yang dapat digunakan di semua jenis aplikasi. Mereka menamai format mereka JSON, yang merupakan kependekan dari "JavaScript Object Notation." Mereka mulai menawarkannya kepada klien tetapi segera menemukan bahwa banyak yang tidak mau mengambil risiko pada teknologi baru yang tidak memiliki spesifikasi resmi. Jadi Crockford memutuskan dia akan menulis satu. Pada tahun 2002, Crockford membeli domain JSON.org dan memasang tata bahasa JSON dan implementasi referensi parser. Situs web tersebut masih aktif, meskipun sekarang menyertakan tautan yang menonjol ke standar JSON ECMA yang diratifikasi pada tahun 2013. 16 Setelah memasang situs web, Crockford melakukan sedikit lebih banyak untuk mempromosikan JSON tetapi segera menemukan orang-orang yang mengirimkan implementasi parser JSON untuk bahasa pemrograman yang berbeda. Asal JSON jelas terkait dengan JavaScript, tetapi menjadi jelas bahwa JSON sangat cocok untuk menukar data antara bahasa yang berubah-ubah.

JSON di AJAX

Pada tahun 2005, Jesse James Garrett menciptakan istilah "AJAX" dalam sebuah posting blog, di mana ia menekankan bahwa AJAX bukanlah salah satu teknologi baru melainkan "beberapa teknologi, masing-masing berkembang dengan sendirinya, datang bersama-sama dengan cara baru yang kuat." 16 Posting blognya menjelaskan bagaimana pengembang dapat memanfaatkan JavaScript dan XMLHttpRequest untuk membangun jenis aplikasi baru yang lebih responsif dan stateful daripada halaman web biasa. Ia menunjuk Gmail, Google Maps, dan Flickr sebagai contoh website yang menggunakan teknik AJAX. Meskipun "X" dalam "AJAX" adalah singkatan dari XML, Garrett menunjuk ke JSON sebagai alternatif yang sepenuhnya dapat diterima. Dia menulis bahwa "XML adalah cara yang paling berkembang sepenuhnya untuk mendapatkan data masuk dan keluar dari klien AJAX, tetapi tidak ada alasan Anda tidak dapat mencapai efek yang sama menggunakan teknologi seperti JavaScript Object Notation atau cara serupa untuk menyusun data." 17

JavaScript dan JSON secara tegas dimaksudkan untuk bersama. Peta semantik JSON langsung ke JavaScript, menjadikannya format pertukaran data asli untuk bahasa tersebut. Pengembang dengan cepat menemukan bahwa JSON lebih mudah digunakan dalam JavaScript, dan banyak yang lebih memilihnya daripada XML.

Saat JSON menarik perhatian blogosphere, proliferasi JSON telah dimulai.

Mengapa JSON Menjadi Lebih Populer Dari XML

JSON adalah format asli untuk data dalam aplikasi JavaScript. Dengan mempopulerkan JavaScript dalam dekade terakhir, lebih banyak pesan JSON telah dibuat daripada format data lainnya. Menulis aplikasi dalam JavaScript hampir mengamanatkan penggunaan JSON untuk pertukaran data. Format lain dimungkinkan, tetapi membutuhkan lebih banyak upaya daripada dengan JSON. Dengan semakin populernya JavaScript untuk pengembangan aplikasi, JSON mengikuti perkembangannya sebagai format pertukaran data yang mudah digunakan dan terintegrasi secara native.

Sejauh menyangkut blogosphere, lebih banyak artikel, sampel, dan tutorial telah ditulis tentang JavaScript (dan karenanya JSON) daripada platform pemrograman lainnya.

Sejarah dan jalur evolusi web telah memainkan peran penting dalam mempopulerkan JSON. Menurut Stack Overflow, sekarang lebih banyak pertanyaan diajukan tentang JSON daripada tentang format pertukaran data lainnya. 18

alt_teks

Menurut Google Trends, profil serupa terlihat membandingkan minat penelusuran untuk JSON dan XML. 19

alt_teks

Apakah proliferasi JavaScript berarti JSON lebih baik daripada XML?

Komunitas pengembang bersikeras bahwa JSON menjadi lebih populer daripada XML karena cakupan deklaratifnya yang ringkas dan semantiknya yang sederhana. Douglas Crockford sendiri merangkum beberapa keunggulan JSON di JSON.org: “JSON lebih mudah dipahami baik oleh manusia maupun mesin, karena sintaksnya minimal dan strukturnya dapat diprediksi.” 20 Kritikus XML lainnya telah berfokus pada verbositas XML sebagai "pajak kurung sudut." 21 Format XML mengharuskan setiap tag pembuka untuk dicocokkan dengan tag penutup, menghasilkan informasi yang berlebihan yang dapat membuat dokumen XML secara signifikan lebih besar daripada dokumen JSON yang setara saat tidak dikompresi. Dan, mungkin yang lebih penting, pengembang mengatakan: "itu juga membuat dokumen XML lebih sulit dibaca." 22

JSON telah dipuji karena kesederhanaan dan semantiknya yang singkat, dan XML diberi label sebagai standar kuno di masa lalu karena verbositas dan kompleksitas yang tampaknya berlebihan. Banyak artikel dan posting blog menawarkan perspektif terbatas ketika membandingkan JSON dengan XML, membuat pembaca percaya bahwa JSON adalah pengganti XML. Ini bukan kasusnya!

Perspektif terbatas yang ditawarkan oleh artikel dan posting blog telah membuat pembaca mengabaikan XML sebagai usang, membuat banyak orang tidak menyadari fitur canggih yang dapat membantu mereka meningkatkan arsitektur perangkat lunak dan ketahanan terhadap perubahan serta mengurangi risiko perangkat lunak secara sistematis.

JSON lebih populer daripada XML karena dominasi JavaScript sebagai bahasa yang paling banyak digunakan saat ini. Dengan pengaruh JavaScript terhadap tren perangkat lunak dalam dekade terakhir, JSON terus menerima lebih banyak perhatian daripada format pertukaran data lainnya. Blogosphere dengan cepat menggemakan bahwa "JSON lebih baik daripada XML," tetapi paling sering daripada tidak, pernyataan ini dibiarkan tidak dapat dibenarkan, atau didukung dengan perbandingan sederhana mengenai semantik dan verbositas. Jadi apakah salah satu standar lebih baik dari yang lain? Jawaban atas pertanyaan ini hanya dapat diperoleh dari evaluasi yang lebih dalam terhadap setiap standar.

Kesimpulan

Dari tahun 1990 hingga hari ini, web telah berkembang pesat. Perang browser antara Netscape dan Microsoft menyebabkan bencana divergensi HTML, dan solusi diperlukan untuk menyelamatkan web. XML diciptakan untuk memformalkan XHTML, dan memberikan solusi cawan suci untuk komputasi secara keseluruhan. Dari rendering halaman HTML lengkap oleh server back-end ke AJAX dan SPA, tren dalam arsitektur web dan pengembangan browser telah membawa fokus ke JavaScript, mengarahkan pengembang di seluruh dunia menuju JSON.

Popularitas JSON berkorelasi dengan JavaScript. Dengan kemudahan penggunaan dan kurva pembelajaran yang singkat, JavaScript telah membawa lebih banyak pengembang baru untuk menulis perangkat lunak daripada bahasa lainnya. Dengan integrasi asli JSON dengan platform pengembangan paling populer, tidak mengherankan jika lebih banyak pertanyaan diajukan tentang JSON di Stack Overflow daripada format pertukaran data lainnya.

Dengan tren perangkat lunak dalam beberapa tahun terakhir membawa lebih banyak pengembang JavaScript ke industri, JSON telah mendapatkan gelar "format pertukaran data paling populer."

Di permukaan, pertempuran "JSON vs. XML" mengarah ke JSON, tetapi secara mendalam, ada lebih dari yang terlihat.

Di Bagian 2 artikel ini, kita akan melihat lebih dekat kekuatan dan kelemahan teknis JSON dan XML, dan mengevaluasi kesesuaian setiap standar untuk aplikasi umum dan perusahaan. Melihat lebih dekat pada "pertukaran data" akan mengungkapkan luasnya pengaruhnya terhadap risiko perangkat lunak aplikasi secara keseluruhan. Pemahaman yang lebih mendalam tentang perbedaan mendasar antara JSON dan XML akan memungkinkan pengembang untuk mengevaluasi dengan lebih baik risiko perangkat lunak dari setiap standar dalam kaitannya dengan persyaratan proyek mereka—untuk memberdayakan pengembang untuk membangun perangkat lunak yang lebih stabil, dan lebih tahan terhadap bug dan masa depan tidak diketahui.

Omong-omong, kekhasan yang menarik dari spesifikasi JSON adalah Anda tidak dapat mengonversi objek JavaScript dengan hubungan dua arah, di mana properti anak merujuk ke properti induk, menjadi JSON. Melakukannya akan menghasilkan Uncaught TypeError: Converting circular structure to JSON . Untuk peretasan seputar batasan ini, lihat Dukungan Hubungan Dua Arah di JSON .

Referensi

1. Internet: Sebuah Ensiklopedia Sejarah. Kronologi, Jilid 3, hal. 130 (ABC-CLIO, 2005)

2. Buku Pegangan Metadata, Semantik Dan Ontologi, hal. 109 (Ilmiah Dunia, Desember 2013)

3. WebDiy.org - World Wide Web Consortium (W3C) - Sejarah

4. "JavaSoft mengirimkan Java 1.0" (Sun Microsystems, Januari 1996)

5. Mengaktifkan Internet Generasi Selanjutnya Secara Spasial (David Engen, Januari 2002)

6. Kisah XMLHTTP (AlexHopmann.com, Januari 2007)

7. Awal Ajax - Halaman 2 (Wiley Publishing, Maret 2007)

8. Ajax: Pendekatan Baru untuk Aplikasi Web (Jesse James Garrett, Februari 2005)

9. Sejarah Singkat Ajax (Aaron Swartz, Desember 2005)

10. "Apa itu Kayak.com?" (Latar Belakang Perusahaan, Oktober 2008)

11. Penjelajahan Dalam: Memperluas Paradigma Navigasi Penjelajahan (Netscape, Mei 2003)

12. "Situs web mandiri menggunakan DHTML" (SlashDotSlash.com, Juli 2012)

13. Pengiriman data dan informasi format untuk memungkinkan manipulasi sisi klien (Biro Paten AS, April 2002)

14. "Apa itu Ajax?" Ajax Profesional, edisi ke-2. (Wiley, Maret 2007)

15. Douglas Crockford: The JSON Saga (Yahoo!, Juli 2009)

16. Standar ECMA 404 (ECMA Internasional, Desember 2017)

17. Ajax: Pendekatan Baru untuk Aplikasi Web (Jesse James Garrett, Februari 2005)

18. Tren Stack Overflow (Stack Overflow, 2009-2019)

19. Google Trends (Google, 2004-2019)

20. JSON: Alternatif Bebas Lemak untuk XML (Crockford, 2006)

21. XML: Pajak Angle Bracket (Coding Horror, Mei 2008)

22. Xml Menyebalkan (WikiWikiWeb, 2016)