私はウィキペディア-Category:XMLベースのプログラミング言語を見ていました。
言語を設計するために誰かがこのアプローチを取るのはなぜですか
それの利点は何ですか?
私はデメリットしか考えられません。
- 維持するのが難しい
- 読みにくい
- 書くのが難しい
私はウィキペディア-Category:XMLベースのプログラミング言語を見ていました。
言語を設計するために誰かがこのアプローチを取るのはなぜですか
それの利点は何ですか?
私はデメリットしか考えられません。
回答:
XMLベースの言語の最大の利点の1つは、実装が簡単に見えることです。
いいえ、実際には、構文関連のコンパイルエラーを診断し、無料でASTを提供する、利用可能な検証パーサーがたくさんあります。
実行は、上記のASTを単純に繰り返し、関数と変数のマップを保持する
むしろ、プログラムはデータです。ソースファイルは、このプログラムの特定のシリアル化です。このアイデアは、例えばLispのような同型言語で一般的です。このような言語は、プログラムコードとそれが操作しているデータの間の障壁を取り除きます。これは非常に強力で表現力がありますが、Lispコードの外観を「美しい」または「読みやすい」とは言いません。
XMLは、今日のエンタープライズプログラマにとって構造化データのシリアル化形式です。XML処理の周りに確立された大きなツールチェーンがあります。
興味深いことに、XMLドキュメントは、コードのテンプレート化に使用される場合があります。* *シャダー*(依存性注入)。これは、一部のツールチェーンにおけるXMLの普遍性に起因すると考えられます。MindshareXMLは、構造化されたデータ形式としてすぐに使用できます。
rwx
持っているこれらのスクリプトについて心配する必要はありません。それらは私のエディター用のデータですが、私のシェル用の実行可能コードです。
(eval `(foo (quote ,data)))
。パラメータとエスケープについてのあなたの主張は正しいかもしれませんが、あなたは要点を逃しました。
一般的には、XMLベースの言語ではなくXSLTに集中します。
もちろんここには歴史があります。XSLTは、SGMLのスタイル言語であるDSSSLの後継として考えられており、DSSSLの問題点を正しく理解しようとしました。DSSSLの主な問題の1つは、その(スキームに似た)構文であると認識されており、このソリューションはスタイルシートとデータに同じ構文を使用することにありました。結局のところ、スタイルシートはプログラムロジックではなく構造化データで主に構成されるべきであり、そのデータの多くは、パラメーター化された結果ツリーに追加するためのプロフォーマ(「テンプレート」)データで構成されるということです。
XSLTは、過度に冗長であるとしばしば認識されます。残念ながら多くの人がまだ使用しているXSLT 1.0の場合、それはおそらく本当ですが、問題は主にXSLT 2.0で解決されました。これは多くの場合、同じ問題を解決する他の方法よりもはるかに簡潔です。
確かに欠点があります。目的に合わせて設計されたエディターを使用する義務があります(ただし、ほとんどのプログラマーは、すべての言語に構文指向のエディターを使用しますね)。この言語は、構成可能ではありません(ただし、XSLT 2.0は主にそれを修正しています)。しかし、重要な利点もあります。
XSLTは、非プログラマーによって広く使用されており、プログラマーにとっては、2つの構文ではなく1つの構文を習得するだけでよいという非常に大きな利点があります。文字のエンコードや特殊文字のエスケープ方法など、細かいことはすべて覚えておいてください。
XSLTを使用してXSLTコードを処理する機能は、想像以上に便利です。ほぼすべての大規模なXSLTプロジェクトはこの機能を利用しており、非常に大きなメリットをもたらします。たとえば、UIに数百のフォームがあり、それぞれが独自のスタイルシートによって生成された1つのオンラインバンキングシステムを見ましたが、スタイルシートは、コードの共通ライブラリから生成され、ルックアンドフィールの優れた再利用と一貫性を提供します。
XMLのような制約付きの構文フレームワークを使用すると、言語の設計者は言語が進化すると同時にレベルの字句の一貫性を維持する必要があり、同時に優れた拡張性を提供するという、私が期待していなかった利点があります。XQuery WGは、互換性を壊したり、癖を付けたりせずに言語を拡張する方法について常に議論しています。XSLTは基本的に新しい要素と属性を定義する問題なので、XSLTにはそのような問題はありません。
XSLTは、私が使用した唯一のXMLプログラミング言語です。他の人とやり取りする機会や機会がありませんでした。
1つのXMLファイルをデータベースに送信する1つのメインアプリケーションがあり、他のいくつかのアプリケーションは、そのファイルを取得してXSLTファイルを適用し、他のアプリケーションが必要とするデータを抽出できます。これにより、新しいセットのエクスポートの必要性が軽減されます。付属する新しいアプリケーションごとのデータ。それは大きなプラスだと思います。新しいアプリケーション用に1つのXSLTファイルをコーディングするだけで、新しいアプリケーションの新しい情報を生成する必要はなく、すでに生成されている情報をデコードできます。
リストに挙げた他の言語には触れていませんが、そのような言語を使用するのに適した場所を教えてくれました。私があなたの質問に完全に答えたのか、それとも部分的に答えたのかさえわかりません。うまくいけば、私はいくつかの洞察を与えました。
XMLは、歴史的および政治的背景がないとほとんど意味がありません。SGMLは、書き込み、読み取り、保守がさらに困難でしたが、1986年にISOの承認スタンプが押されたため、おそらくこのような不細工を持つ最初のデータ宣言言語になりました。
1990年代初頭にTim Berners-LeeをHTMLの基礎として使用するように促すには、十分に有用であり、文書化されていました。覚えておいてください、彼はワールドワイドウェブを作成するつもりでした、そしてそれを現存するISO標準に基づいて置くことはさらにそれをかなり助けるでしょう。
その後、1990年代後半にWebがかなり定着し、World Wide Web Consortiumはデータ交換のための標準的な構造的マークアップのイニシアチブを開始しました。XMLを取り巻く誇大宣伝要素は、これまでにないレベルの「私たちはこれで何をすべきかはわかりませんが、本当にクールだと思います」のレベルに達しました。
現状では、XMLが最も適しているのは、異種システム間の構造化データ交換です。amonが述べたように、より広い有用性を持つ特定のドメインがいくつかあります。落書きを標準化されたマークアップにエンコードできるようになったことをうれしく思います。将来的に、子供たちは命や告訴の危険を冒す必要がなくなり、代わりにリモートコントロールされた無人のドローンを使ってタグ付けを行うことができます。