Warum hat XSLT nie die Popularität vieler anderer Sprachen erlebt, die während des Internetbooms entstanden sind?[geschlossen]

StackOverflow https://stackoverflow.com/questions/77342

  •  09-06-2019
  •  | 
  •  

Frage

Die Verwendung von XSLT (XML Stylesheet Language Transform) erfreute sich noch nie so großer Beliebtheit wie viele der anderen Sprachen, die während des Internetbooms auf den Markt kamen.Während es im Einsatz ist und in einigen Fällen von großen erfolgreichen Unternehmen (z. B.Blizzard Entertainment) schien es nie den Mainstream erreicht zu haben.Warum ist das Ihrer Meinung nach so?

War es hilfreich?

Lösung

Ein Problem ist, dass XSLT sieht kompliziert. Jeder Entwickler sollte in der Lage sein, die Sprachkonstrukte zu holen, da es Analoga in den meisten anderen Sprachen ist. Das Problem besteht darin, dass die Konstrukte und Daten alle genau gleich aussehen, was es schwierig, zwischen den beiden zu unterscheiden macht, die als andere languges zu lesen XSLT erschwert.

Ein zweites Problem ist, dass die Verwendungsmöglichkeiten für sie mehr begrenzt sind als andere Sprachen. XSLT ist groß, was er kann; Herstellung kompliziert oder radikale Veränderungen auf XML. Aber es gilt nicht für ein möglichst breites Spektrum von Problemen wie andere Sprachen, so ist es nicht so viel verwendet wird.

Drittens haben viele Programmiersprachen ihre eigenen Bibliotheken für XML zu verwandeln. Ein großer Teil der Zeit, als die Arbeit mit XML, nur kleinen Änderungen oder Lookups benötigt. Die XML wird wahrscheinlich auch durch ein Programm erzeugt oder verbraucht wird der Entwickler bereits in einer anderen Sprache zu schreiben. Diese Faktoren können dazu führen, dass die Sprache der in Dienstprogramme gebaut mit nur bequemer.

Ein weiteres Problem, das alle diese Fragen Trägheit ist beitragen. Das heißt, die Menschen nicht wissen, es, sie nicht sehen, dass sie es viel Bedarf haben, so dass sie vermeiden es als eine Lösung, wenn es eine andere Option ist.

Was Sie am Ende mit ist eine Sprache, die letzte Wahl vieler Entwickler ist, wenn Lösungen. Es ist wahrscheinlich, dass XSLT wird auch vermieden, wenn es das beste Werkzeug für den Job als Ergebnis sein würde.

Andere Tipps

XSLTs verwendet funktionale Programmierung - etwas, die meisten Programmierer nicht benutzt (daher, warum manche Menschen halten es nicht intuitiv glaube ich)

.

Meiner Meinung nach ist eine der ärgerlichsten Sachen in Standard-XSLT (ich spreche von XSLT 1.0, denn das ist die einzige Version, die ich verwendet habe) ist, dass es Unterstützung von String-Transformationen fehlte und einige grundlegenden Datum Zeitfunktionen Manipulationen.

Eine Sache, ich konnte nie verstehen, warum eine Funktion wie translate () wurde entwickelt und implementiert in XPath wheras andere mehr nützliche Funktionen wie ersetzen to_lower , < em> to_upper, oder - lassen Sie uns verrückt sein - reguläre Ausdrücke waren nicht

.

Einige dieser Probleme wurden angesprochen Ich denke, mit EXSLT (extended Xslt?) Für Parser andere als Microsoft MSXML . Ich sage, ich glaube, weil ich eigentlich nie verwendet, da es mit MSXML unvereinbar erklärt wurde.

Ich verstehe nicht, warum XSLT 1.0 mit diesem Prinzip entwickelt wurde, dass ‚Text‘ Manipulation nicht in den Anwendungsbereich der Sprache sein, als es ist offensichtlich, dass, wenn Sie Dateien konvertieren Sie nicht diese Zeichenfolge Konvertierungsprobleme vermeiden können (zB : in französisch Format amerikanisches Format, ein unregelmäßig gepolstertes Datum 31/1/2008 bis 2008-01-31 gegeben Transformation) huh ...

Diese Textmanipulation Probleme im Allgemeinen waren sehr einfach und leicht in MSXML angesprochen, indem XSL mit JScript-Funktionen erweitert werden: Sie haben eine JScript-Funktion aufrufen könnte eine Verarbeitung auszuführen, wie jeden anderen XSL-Vorlage nennen würde, aber ich fand immer, dass Lösung unelegant und am Ende meiner eigenen XSL-Template-Bibliotheken zu erstellen. Erstens, weil die JScript Art und Weise brach Ihre XSL-Portabilität, und dann, weil es gezwungen Sie Ihre Programmierlogik zu mischen. Einige Bits in reiner XPath / XSLT Ausdruck und anderen Bits in DOM / Objekt-Notation mit JScript

Nicht aktualisierbaren Variablen aufweist, ist eine weitere Einschränkung, die für Neulinge sehr verwirrend ist, nur einige Leute überwinden dies nicht und halten damit zu kämpfen. In einigen einfachen Fällen Sie Abhilfen mit einer Mischung aus paremetrized Vorlagen und rekursive Aufrufe (zum Beispiel eine Erhöhung oder decrasing Zähler zu implementieren), aber seien wir ehrlich haben kann, Rekursion ist nicht so natürlich.

Ich glaube, ich all diese Einschränkungen gehörte in der XSLT-2.0-Spezifikation angesprochen wurden leider MS beschlossen, es nicht zu implementieren und fördern XQuery statt. Das ist traurig, warum nicht beide implementieren? Ich denke, dass XSLT würde immer noch eine gute Chance, haben so populär wie CSS für HTML wurde. Wenn man darüber nachdenkt, ist der schwierigste Teil beim Lernen XSLT XPath, der Rest als das Verständnis der Kaskadierung Verhalten in CSS nicht so schwierig ist, und CSS ist so populär geworden ...

So und meiner Meinung nach, ist es der Mangel an all die kleinen Dinge hier erwähnt, und die Zeit, die sie in XSLT zu adressieren nahm auf 2,0 (mit nicht einmal sowieso unterstützt MS), die zu dieser Situation von impopularity geführt hat. Wie sehr wünschte ich MS beschlossen, es zu implementieren, nachdem alle ...

Da die meisten XSLT-Implementierungen haben einen hohen Speicherbedarf (ich nehme an, dass durch die Gestaltung der Sprache verursacht wird), weil die Menschen für alle möglichen Dinge XSLT zu missbrauchen eher, dass es nicht besonders gut geeignet für und die rein deklarativen war Natur von XSL, die ziemlich schwierig, bestimmte Arten von Transformationen macht.

Es ist toll für xml, aber nicht so toll für typische Codierung. Es fehlt typische grundlegenden Konzepte (dh veränderbare Variablen) und macht, was recht komplex einfach sein sollte (oder unmöglich). Die meisten seiner Probleme ergeben sich aus der Tatsache, dass XML eine große Datendarstellungssprache ist aber nicht eine große Programmiersprache. Aber sagen, dass ich es täglich benutzen und es würde empfehlen, wo es Sinn macht. In Verbindung mit externen Namensräumen kann es (Anrufe an Java, etc.) gemacht nützlichem werden. Am Ende ist es eine andere Sprache zu lernen, und viele Programmierer würde mit etwas halten bevorzugen sie es gewohnt sind oder ähnelt etwas werden sie verwendet.

Weil es einfacher zu schreiben und Code beizubehalten, die verwendet Java, C #, JavaScript etc. einen XML-Stream deserialisieren, verwandeln sie, und exportieren Sie die gewünschte Ausgabe und XSLT bietet keinen wesentlichen Performance-Vorteil.

XSLT macht Somethings einfach, aber es macht andere Dinge sehr, sehr hart.

Nun ... Vielleicht, weil es ist ein Schmerz XSLTs zu schreiben ... Ich hatte ein paar XSLTs vor ein paar Monate zu schreiben, und ich träume von spitzen Klammern ...

<Really> 
    <No>
        <fun/>
    </No>
</Really>         

(Ich weiß, dass dies kein Xslt)

Im Allgemeinen ist die Zeiten, wenn Sie XML-Daten in eine andere Form von XML-Daten zu transformieren erforderlich sein werden, aber keine andere Verarbeitung tun, um es sehr begrenzt sein wird. Normalerweise wird XML als Vermittler zwischen zwei getrennten Systemen verwendet werden, von denen eine in der Regel nach Maß, um den Ausgang des anderen zu verarbeiten. Als solches ist es einfacher, nur eines der Systeme schreiben, ohne den zusätzlichen Schritt zu müssen, führen eine Art von Transformation der XML-Ausgabe des anderen zu verarbeiten.

XSL ist Mainstream und weithin angenommen. Welche anderen Sprachen sind Sie auf? XSL ist keine Programmiersprache, nur eine Transformationssprache , so ist es recht begrenzter Umfang.

Ich denke, es läuft darauf hinaus, XML-Syntax nach unten ist wohl gute Daten zur Beschreibung, aber es ist nicht eine große Syntax für das, was ist im Wesentlichen eine Programmiersprache (XSLT).

Wie bereits erwähnt, ist XSLT (wie „die guten Teile“ von JavaScript) eine funktionale Programmiersprache.Die meisten traditionellen Programmierer hassen diese Staatenlosigkeit.Außerdem hassen zu viele traditionelle Programmierer spitze Klammern.

Vor allem aber löst die korrekte Verwendung von XSLT sowohl die deklarative GUI-Generierung als auch das Datenbindungsproblem für den Webserver auf plattformunabhängige Weise.Anbieter wie Microsoft sind nicht motiviert, diese „unbequeme“ Leistung zu feiern.

Ich behaupte jedoch, dass Microsoft die beste XSLT-Unterstützung für die IDE (Visual Studio) bietet. in der Welt.

Ich denke, es versucht zu decken Art und Weise viele Anwendungsfälle damit eine Turing-complete immer (oder so hörte ich) Sprache. Wenn Sie versuchen, eine nicht-triviale Transformation zu tun, beenden Sie komplexe Schleifen, Bedingungen ... in einer hässlichen und ausführlichen Sprache schriftlich auf, die am besten mit einer GPL durchgeführt wird.

Aus meiner Sicht macht diese Komplexität eine korrekte Implementierung von XSLT schwierig zu schreiben und beschränkte die zur Verfügung stehenden Möglichkeiten, damit weite Verbreitung unter dem Stimm Hacker, die oft gerne mit kleinem und effizienten Code basteln, nicht enterprisey Code.

XSLT ist sehr mächtig, aber erfordert eine andere Art und Weise über das Problem des Denkens. Es ist auch das Leben schwer selbst gemacht durch nicht Nutzdaten Funktionalität in den frühen Versionen bieten. Nehmen Sie zum Beispiel eine ToUpper () Stil Methode, Sie in der Regel implementieren es mit so etwas wie:

<xsl:variable name="lcletters">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="ucletters">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>  

<xsl:value-of select="translate($toconvert,$lcletters,$ucletters)"/>

Nicht die einfachste Art und Weise der Codierung!

Xslt ist für xml xml, wenn Sie Daten, die bereits entronnen ist und eine klare Definition der Ein- und Ausgänge. indem es für Dinge wie xml2html mir scheint nur, wie eine solche Kopfschmerzen, und mit nahezu jeder dynamischen Sprache und CSS ist die Ausgabe viel einfacher, mit Stil zu implementieren.

Ich fand es toll für ‚Composite Web-Service architecture'.Sometimes Anzahl von Webservices zusammenarbeiten, um das Finale haben output.When diese Web Service unter ihnen über XML kommunizieren müssen, dann können XSLT die XML-Nachricht von einer Form in eine andere umwandeln.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top