Ich habe mir Wikipedia angesehen - Kategorie: XML-basierte Programmiersprachen .
Warum sollte jemand diesen Ansatz für das Entwerfen einer Sprache wählen?
Was sind die Vorteile davon?
Ich kann nur an Nachteile denken.
- schwer zu pflegen
- schwer zu lesen
- schwer zu schreiben
programming-languages
language-design
xml
Moha das allmächtige Kamel
quelle
quelle
Antworten:
Einer der größten Vorteile einer XML-basierten Sprache besteht darin, dass sie einfach zu implementieren ist
Nein, es gibt eine Menge validierender Parser , die die syntaxbezogenen Kompilierungsfehler diagnostizieren und Ihnen den AST kostenlos zur Verfügung stellen
Die Ausführung iteriert auch einfach über den AST und führt eine Karte der Funktionen und Variablen
quelle
Code ist Daten.
Programme sind Daten. Eine Quelldatei ist nur eine bestimmte Serialisierung dieses Programms. Diese Idee ist zB in homoikonischen Sprachen wie Lisp verbreitet. Eine solche Sprache beseitigt die Barrieren zwischen dem Programmcode und den Daten, mit denen er arbeitet. Dies kann äußerst kraftvoll und ausdrucksstark sein, obwohl ich das Erscheinungsbild von Lisp-Code nicht als „schön“ oder „leicht zu lesen“ bezeichnen würde.
XML ist das strukturierte Datenserialisierungsformat für den aktuellen Unternehmensprogrammierer. Es gibt große Toolchains rund um die XML-Verarbeitung.
Interessanterweise werden XML-Dokumente manchmal zum Vorlagen von Code verwendet … * shudder * (Abhängigkeitsinjektion). Ich schreibe dies der Allgegenwart von XML in einigen Toolchains zu / das Mindshare-XML als strukturiertes Datenformat.
quelle
rwx
Skripte aus, die ich habe, die Daten für meinen Editor sind, sondern ausführbaren Code für meine Shell.(eval `(foo (quote ,data)))
. Ihr Argument über Parameter vs. Escape mag richtig sein, aber Sie haben den Punkt verfehlt.Ich werde mich eher auf XSLT als auf XML-basierte Sprachen im Allgemeinen konzentrieren.
Natürlich gibt es hier eine Geschichte. XSLT wurde als Nachfolger von DSSSL, der Styling-Sprache für SGML, konzipiert und versuchte, das zu korrigieren, was DSSSL falsch gemacht hatte. Eines der Hauptprobleme bei DSSSL wurde als seine (schemaähnliche) Syntax angesehen, und es herrschte das weit verbreitete Gefühl, dass die Lösung darin bestand, dieselbe Syntax für das Stylesheet und die Daten zu verwenden. Schließlich bestand die Idee darin, dass ein Stylesheet größtenteils aus strukturierten Daten und nicht aus Programmlogik bestehen sollte und ein Großteil dieser Daten aus Proforma-Daten ("Vorlagendaten") zum Hinzufügen zum Ergebnisbaum mit einigen Parametrisierungen bestehen sollte.
XSLT wird oft als übermäßig ausführlich empfunden. Für XSLT 1.0, das leider noch von vielen Menschen verwendet wird, stimmt das wahrscheinlich, aber das Problem wurde größtenteils mit XSLT 2.0 gelöst, das oft viel prägnanter ist als andere Möglichkeiten, dasselbe Problem zu lösen.
Es gibt sicherlich Nachteile. Sie sind ziemlich verpflichtet, einen speziell entwickelten Editor zu verwenden (aber dann verwenden die meisten Programmierer syntaktisch gesteuerte Editoren für jede Sprache, nicht wahr?). Die Sprache ist nicht ganz so komponierbar wie sie sein könnte (obwohl XSLT 2.0 dies weitgehend behebt). Es gibt aber auch wesentliche Vorteile:
XSLT wird häufig von Nicht-Programmierern verwendet, und für sie ist es ein großes Plus, dass sie nur eine Syntax lernen müssen, nicht zwei. Denken Sie daran, es sind all die kleinen Details wie der Umgang mit der Zeichenkodierung und dem Escapezeichen von Sonderzeichen.
Die Möglichkeit, XSLT-Code mit XSLT zu verarbeiten, ist viel nützlicher, als Sie sich vorstellen können. Nahezu alle großen XSLT-Projekte nutzen diese Funktion und können sehr große Vorteile bringen. Ich habe zum Beispiel ein Online-Banking-System gesehen, dessen Benutzeroberfläche einige hundert Formulare enthielt, die jeweils von einem eigenen Stylesheet generiert wurden. Die Stylesheets wurden jedoch aus einer gemeinsamen Codebibliothek generiert, die eine hervorragende Wiederverwendung und Konsistenz des Erscheinungsbilds bietet.
Es gibt einen Vorteil, den ich nicht erwartet hätte, nämlich dass die Verwendung eines eingeschränkten syntaktischen Frameworks wie XML die Sprachdesigner dazu zwingt, ein lexikalisches Konsistenzniveau beizubehalten, wenn sich die Sprache weiterentwickelt, und gleichzeitig eine große Erweiterbarkeit bietet. Die XQuery WG diskutiert immer wieder, wie die Sprache erweitert werden kann, ohne die Kompatibilität zu beeinträchtigen oder Macken einzuführen. XSLT hat keine derartigen Probleme, da es im Grunde darum geht, neue Elemente und Attribute zu definieren.
quelle
Ich könnte sehen, dass so etwas in einer XML-lastigen Umgebung (denken Sie an XSLT) praktisch ist, in der Sie vermutlich bereits anständige XML-Editoren haben und es nützlich sein könnte, Code mit demselben Toolset generieren zu können. Dies kann auch das Schreiben von Korrektheitsprüfern oder anderen Tools erleichtern, um sicherzustellen, dass der Code bestimmten Standards oder Regeln entspricht (z. B. definiert ein Schema, wohin die Geschäftslogik gehen muss, und / oder stellt sicher, dass alle Variablen auf konsistente Weise initialisiert werden ).
quelle
XSLT ist die einzige XML-Programmiersprache, die ich verwendet habe. Ich hatte keine Gelegenheit, mich mit den anderen zu befassen.
Wir haben eine Hauptanwendung, die eine XML-Datei in eine Datenbank schießt, und mehrere andere Anwendungen können diese Datei verwenden und eine XSLT-Datei darauf anwenden, um die Daten zu extrahieren, die diese anderen Anwendungen benötigen. Dadurch wird der Export eines neuen Satzes verringert Daten für jede neue Anwendung, die hinzukommt. Ich denke, das ist ein großes Plus. Sie müssen nur eine XSLT-Datei für die neue Anwendung codieren, um die bereits erstellten Informationen zu dekodieren, anstatt neue Informationen für eine neue Anwendung zu erstellen.
Mir ist klar, dass ich keine der anderen von Ihnen aufgelisteten Sprachen angesprochen habe, aber ich habe Ihnen eine Vorstellung von einem guten Ort für die Verwendung einer solchen Sprache gegeben. Ich bin mir immer noch nicht sicher, ob ich Ihre Frage vollständig oder teilweise beantwortet habe. aber hoffentlich habe ich einen Einblick gegeben.
quelle
XML macht ohne historischen und politischen Kontext fast keinen Sinn. SGML war noch schwieriger zu schreiben, zu lesen und zu warten, aber 1986 wurde es mit dem ISO-Gütesiegel versehen, was es möglicherweise zur ersten Datendeklarationssprache machte, die eine solche Imprimatur aufwies.
Es war ausreichend nützlich und dokumentiert, um Tim Berners-Lee zu inspirieren, es Anfang der neunziger Jahre als Grundlage für HTML zu verwenden. Denken Sie daran, dass er beabsichtigte, ein World Wide Web zu erstellen, und dass es auf einem bestehenden ISO-Standard basieren würde, um dies erheblich zu fördern.
In den späten 1990er Jahren startete das World Wide Web Consortium eine Initiative für standardmäßige strukturelle Markups für den Datenaustausch, da das Web ziemlich gut verankert war. Der Hype-Faktor um XML erreichte ein beispielloses Niveau von "Wir sind uns nicht sicher, was wir damit machen sollen, aber ich wette, es wird wirklich cool".
Derzeit ist XML vor allem für den strukturierten Datenaustausch zwischen unterschiedlichen Systemen geeignet. Wie amon bemerkt hat, gibt es einige spezifische Bereiche, in denen es einen breiteren Nutzen hat. Ich bin nur froh, dass es jetzt möglich ist, Graffiti in einem standardisierten Markup zu codieren , damit Kinder in Zukunft kein Leben und keine Strafverfolgung riskieren müssen, sondern ihre Markierungen mit ferngesteuerten Drohnen mit Farbe ausführen.
quelle