Perché XSLT è usato raramente sul web? [chiuso]

9

XSLT è uno standard maturo e ampiamente accettato.

Può essere utilizzato nei browser (anche nel vecchio IE) e sul lato server (nginx ha un modulo XSLT, che può essere utilizzato dai linguaggi di programmazione, ovviamente). Le sue implementazioni sono compilate e, quindi, dovrebbero essere molto più veloci di Python o JS. L'implementazione JS Saxon JS può essere utilizzata, almeno, come riserva. I modelli di Jinja, Angular, Ruby's Slim, ASP e PHP non sono nemmeno vicini.

Un modello XSL può essere facilmente convalidato in un IDE. Quanti IDE possono aiutare con Jinja o Angular?

Sembra che sia un'idea perfetta scomporre l'interfaccia utente e i dati con XSLT.

Certamente, le implementazioni possono dare risultati diversi in alcuni casi d'angolo, ma è un problema solo con i modelli sul lato client. Ed è lo stesso con HTML, CSS e tutto ciò che viene fatto sul lato client.

Quindi, perché non XSLT?

    
posta George Sovetov 21.10.2018 - 14:12
fonte

4 risposte

33

XSLT non ha davvero un ruolo utile nel moderno Web interattivo. Lo scopo di XSLT è quello di trasformare da un linguaggio XML in un altro - ma in realtà non è mai necessario farlo in primo luogo. Quanto è potente, veloce e ben supportata una tecnologia è irrilevante se non si ha il problema che la tecnologia è progettata per risolvere.

Ci sono diversi motivi per cui il caso d'uso per XSLT è andato via:

  • L'HTML ha vinto. XSLT doveva essere utile per trasformare il contenuto di "rich text" in un formato di markup semantico in HTML. Ma HTML è di per sé un formato perfetto, quindi perché non utilizzarlo per il contenuto e saltare la trasformazione?
  • I CSS sono diventati molto più potenti. Una delle promesse di XSLT era che si poteva mantenere il markup di origine pulito e semantico e poi trasformarlo in "HTML di presentazione" che funzionava su browser incrociato e dove si potevano riordinare gli elementi e così via. Ma in questi giorni non hai davvero bisogno di HTML di presentazione, puoi usare l'HTML semantico e i CSS possono eseguire lo stile e il layout necessari.
  • XML non è diventato il formato onnipresente per i dati. Quando si recuperano dati SQL da un database, è molto più semplice fonderlo direttamente in un modello, piuttosto che trasformarlo prima in XML e quindi trasformarlo tramite XSLT. E JSON ha quasi sostituito l'XML per i dati strutturati sul lato client.
  • XSLT è progettato per trasformare un intero documento alla volta. Ma nelle moderne pagine Web interattive, piccoli frammenti di dati vengono scaricati in modo frammentario in ogni momento e uniti nella pagina.
  • I dati non sono così complessi. Per la maggior parte dei casi d'uso, i formati di modelli più semplici con segnaposto e ripetitori risolvono il problema. XSLT è molto più potente, ma raramente hai bisogno di quella potenza in più, e ha un costo elevato in termini di complessità e brutto.

XSLT nasce dalla pubblicazione in cui è possibile avere un processo unidirezionale da un formato sorgente strutturato a più formati di pubblicazione come stampa, PDF e pagine Web statiche. La maggior parte dei siti web non si adatta a questo caso d'uso.

    
risposta data 21.10.2018 - 18:24
fonte
5

Dipende cosa intendi con "in Web".

XSLT è molto usato. Per quanto possiamo giudicare dalle metriche come il numero di domande StackOverflow, è tra i primi 30 linguaggi di programmazione, il che probabilmente lo rende il linguaggio di programmazione top-data-specifico dopo SQL.

Ma XSLT non è ampiamente utilizzato sul lato client, cioè nel browser. Solitamente viene utilizzato lato server per fornire contenuto su richiesta in risposta alle richieste HTTP, oppure viene utilizzato in modalità batch come parte di un flusso di lavoro di pubblicazione. È anche usato, naturalmente, in molte applicazioni che hanno ben poco a che fare con il web, ad es. nella pubblicazione di stampa.

Ci sono una serie di motivi per cui XSLT non è ampiamente utilizzato nel browser. Il motivo principale è che il buon supporto XSLT conforme era molto lento proveniente dai venditori di browser; nessuno voleva usarlo fino a quando non era disponibile su tutti i browser, e quando era disponibile su ogni browser, le cose che le persone volevano fare nel browser si erano spostate (ricorda "Web 2.0"?) e le implementazioni XSLT nel browser non ti aiuta a creare applicazioni interattive o a recuperare i dati usando AJAX.

Saxonica (disclaimer, questo è il mio prodotto) ha tentato di colmare queste lacune con Saxon-JS, ma il prodotto è un ritardatario della festa, e lo sviluppo del web lato client è molto guidato dalla moda, quindi non è sufficiente avere un prodotto che ticchetta tutte le scatole tecniche. Parte dell'essere guidati dalla moda è che la maggior parte dei siti orientati ai dati (distinti dal documento orientato) si sono spostati verso JSON piuttosto che su XML, soprattutto perché JSON è molto più facile da manipolare da Javascript.

L'altro problema è che XSLT è un linguaggio di amore o di odio. Il suo paradigma dichiarativo, basato su regole e orientato alla funzionalità attira molti a causa della sua natura di alto livello, ma può essere scoraggiante per coloro la cui unica esperienza di programmazione è scrivere codice imperativo che dice al computer esattamente cosa fare e in quale ordine.

    
risposta data 21.10.2018 - 18:17
fonte
2

Sono un flip-flop avanti e indietro tra la risposta a questa domanda e la chiusura come fondamentalmente basata sull'opinione pubblica. Quindi, ecco il mio capovolgimento:

In breve, perché XML fa un linguaggio di programmazione schifoso. Qualcosa con la semantica di XSLT, ma molto meglio la sintassi sarebbe tutta un'altra questione, penso. Ad esempio, esistono linguaggi di trasformazione XML basati sul Lisp molto interessanti.

XSLT non può decidere se vuole essere una lingua di riscrittura degli alberi, una lingua funzionale o un linguaggio procedurale. Ha caratteristiche di tutti questi, ma non è molto buono in nessuno di essi. Per ognuno dei tre aspetti, ci sono lingue migliori là fuori.

    
risposta data 21.10.2018 - 14:24
fonte
0

Perché lo stesso XML sembra obsoleto rifiuto di compatibilità con le versioni precedenti per il 99,9% dei casi.

L'unico caso d'uso per il quale XML non ha sostituzioni immediatamente superiori è cose come docx o odf, ed è possibile che SGML sarebbe stato migliore *. Cioè, abbiamo una struttura di documenti incredibilmente ricca con tutti i tipi di cose annidati l'uno dentro l'altro con le grandi trasformazioni che vengono applicate in modo che possano apparire corrette sullo schermo e sulla stampante.

Quasi sempre, XML è utilizzato per trasmettere dati strutturati in giro, e sembra che XSLT sia progettato per trasformare i dati del documento strutturato in dati del documento. Quel caso d'uso si sta estinguendo. JSON è direttamente superiore all'XML per i dati strutturati. ** Sia il markdown che YAML sono superiori a dati leggermente formattati. Il leg-up iniziale di XML era il parser integrato in Java e Javacript. JSON ha infranto quella barriera sfruttando un parser incorporato per i casi in cui la fonte JSON è attendibile (che era la maggior parte di loro quando era giovane).

E il mondo è cambiato. Il vantaggio della libreria integrata è un vantaggio banale ora. XHTML è stato rifiutato a titolo definitivo e la sua sostituzione non ha ereditato da esso, ma dal suo predecessore.

L'XML ora è usato per parlare direttamente con il ragazzo che vuole riceverlo, ed è generato in tutto il materiale nel formato desiderato, o al contrario viene letto e analizzato al modello di oggetto direttamente dal modulo in cui è stato inviato. Poiché è non è più un formato di archiviazione o un formato di interscambio universale, non è più necessario trasformarlo da schema in schema.

* Hanno insegnato al college che SGML non è mai stato implementato. Hanno mentito.

** Ho sentito lamentarsi dei cattivi formati numerici in JSON. D'altra parte, XML non ha un formato numerico, quindi il solo riempimento di tutti i tipi di dati nella stringa vince ancora su XML.

    
risposta data 21.10.2018 - 20:48
fonte

Leggi altre domande sui tag