XSLT adalah standar yang matang dan diterima secara luas.
Ini dapat digunakan di browser (bahkan di IE lama) dan di sisi server (nginx memiliki modul XSLT, yang dapat digunakan dari bahasa pemrograman, tentu saja). Implementasinya dikompilasi dan karenanya harus jauh lebih cepat daripada Python atau JS. Implementasi JS Saxon JS dapat digunakan, setidaknya, sebagai mundur. Jinja, Angular, Ruby Slim, ASP dan templating PHP bahkan tidak dekat.
Template XSL dapat dengan mudah divalidasi dalam IDE. Berapa banyak IDE yang dapat membantu dengan Jinja atau Angular?
Sepertinya ide yang sempurna untuk menguraikan UI dan data dengan XSLT.
Memang, implementasi dapat memberikan hasil yang berbeda dalam beberapa kasus sudut, tetapi itu hanya masalah dengan templating di sisi klien. Dan itu sama dengan HTML, CSS, dan semua hal lain yang dilakukan di sisi klien.
Jadi, mengapa tidak XSLT?
sumber
Jawaban:
XSLT tidak benar-benar memiliki peran yang berguna di web interaktif modern. Tujuan XSLT adalah untuk mengubah dari satu bahasa XML ke bahasa lain - tetapi Anda sebenarnya tidak perlu melakukannya sejak awal. Seberapa kuat, cepat, dan didukungnya suatu teknologi tidak relevan jika Anda tidak memiliki masalah yang dirancang untuk diselesaikan oleh teknologi tersebut.
Ada beberapa alasan mengapa use case untuk XSLT telah hilang:
XSLT tumbuh dari penerbitan di mana Anda dapat memiliki proses satu arah dari satu format sumber terstruktur ke beberapa format penerbitan seperti cetak, PDF dan halaman web statis. Sebagian besar situs web tidak cocok dengan use case ini.
sumber
<chapter><title><par>...
) dan XSLT akan "memperluas" itu dengandiv
,table
,tr
sesuai kebutuhan, dengan tambahan bahwa hal itu bisa di-cache. Jadi (sekali lagi, saya tidak tahu seberapa luas "keuntungan" ini menjelaskan) bandwidth yang ditingkatkan juga akan merusaknya (dan fakta bahwa sebagian besar halaman HTML cukup kecil).Tergantung apa yang Anda maksud dengan "di Web".
XSLT sangat banyak digunakan. Sejauh kita dapat menilai dari metrik seperti jumlah pertanyaan StackOverflow, ia berada dalam 30 bahasa pemrograman teratas, yang mungkin menjadikannya bahasa pemrograman data-model-spesifik teratas setelah SQL.
Tetapi XSLT tidak banyak digunakan di sisi klien, yaitu di browser. Biasanya digunakan sisi server untuk mengirimkan konten sesuai permintaan sebagai respons terhadap permintaan HTTP, atau digunakan dalam mode batch sebagai bagian dari alur kerja penerbitan. Ini juga digunakan, tentu saja, dalam banyak aplikasi yang sangat sedikit hubungannya dengan web, misalnya dalam penerbitan cetak.
Ada beberapa alasan XSLT tidak banyak digunakan di browser. Alasan utama adalah bahwa dukungan XSLT konforman yang baik sangat lambat datang dari vendor browser; tidak ada yang ingin menggunakannya sampai tersedia di setiap browser, dan pada saat itu tersedia di setiap browser, hal-hal yang ingin dilakukan orang di browser telah pindah (ingat "Web 2.0"?) dan implementasi XSLT di browser tidak membantu Anda membangun aplikasi interaktif atau mengambil data menggunakan AJAX.
Saxonica (penafian, ini adalah produk saya) telah berusaha untuk mengisi celah ini dengan Saxon-JS, tetapi produk tersebut adalah latecomer untuk pesta, dan pengembangan web sisi klien sangat didorong oleh mode, jadi tidak cukup hanya dengan memiliki produk yang mencentang semua kotak teknis. Bagian dari mode yang didorong adalah bahwa sebagian besar situs berorientasi data (berbeda dari berorientasi dokumen) telah bergerak ke arah JSON daripada XML, sebagian besar karena JSON jauh lebih mudah untuk dimanipulasi dari Javascript.
Masalah lainnya adalah bahwa XSLT adalah bahasa love-it-or-hate-it. Paradigma deklaratif, berbasis aturan, berorientasi fungsional menarik bagi banyak orang karena sifatnya yang tingkat tinggi, tetapi dapat mengesampingkan mereka yang hanya memiliki pengalaman pemrograman adalah menulis kode imperatif yang memberi tahu komputer apa yang harus dilakukan dan dalam pesanan apa.
sumber
Saya membalik-balik antara menjawab pertanyaan ini dan menutupnya sebagai yang berdasarkan opini. Jadi, inilah flip saya:
Singkatnya, karena XML membuat bahasa pemrograman yang jelek. Sesuatu dengan semantik XSLT tetapi sintaks yang jauh lebih baik akan menjadi masalah yang sama sekali berbeda, saya pikir. Ada beberapa bahasa transformasi-XML berbasis Lisp yang sangat keren, misalnya.
XSLT tidak dapat memutuskan apakah ingin menjadi bahasa penulisan ulang pohon, bahasa fungsional, atau bahasa prosedural. Ini memiliki fitur semua itu, tetapi tidak benar-benar bagus di antara mereka. Untuk salah satu dari tiga aspek, ada bahasa yang lebih baik di luar sana.
sumber
Karena XML itu sendiri terlihat seperti junk back-compatability yang usang untuk 99.9% kasus.
Satu-satunya use case di mana XML tidak memiliki penggantian yang unggul langsung adalah hal-hal seperti docx atau odf, dan mungkin SGML akan menjadi lebih baik *. Artinya, kami memiliki struktur dokumen yang sangat kaya dengan segala macam hal yang bersarang di dalamnya satu sama lain dengan transformasi besar yang diterapkan sehingga dapat terlihat benar di layar dan printer.
Hampir setiap saat, XML digunakan untuk melewatkan data terstruktur, dan tampaknya XSLT dirancang untuk mengubah data dokumen terstruktur menjadi data dokumen. Kasus penggunaan itu sedang sekarat. JSON secara langsung lebih unggul dari XML untuk data terstruktur. ** Kedua penurunan harga dan YAML lebih unggul pada data yang diformat dengan ringan. Leg-up awal XML adalah parser bawaan di Jawa dan Javacript. JSON memecahkan penghalang itu dengan memanfaatkan pengurai bawaan untuk kasus-kasus di mana sumber JSON dipercaya (yang sebagian besar dari mereka ketika masih muda).
Dan dunia berubah. Keuntungan pustaka bawaan adalah keunggulan sepele sekarang. XHTML ditolak mentah-mentah dan penggantinya tidak mewarisinya, melainkan dari pendahulunya.
XML sekarang digunakan untuk berbicara langsung dengan orang yang ingin menerimanya, dan itu dihasilkan dalam seluruh kain dalam format yang diinginkan, atau sebaliknya itu dibaca dan diuraikan ke objek model langsung dari formulir yang dikirim. Karena itu bukan lagi sebuah format penyimpanan atau format pertukaran universal, mengubahnya dari skema ke skema tidak lagi diperlukan.
* Mereka mengajar di perguruan tinggi bahwa SGML tidak pernah diterapkan. Mereka berbohong.
** Saya pernah mendengar keluhan tentang format angka buruk di JSON. Di sisi lain XML tidak memiliki format angka sehingga hanya memasukkan semua tipe data dalam string masih menang melawan XML.
sumber