0

せっかちな人のためのまとめ:

私が知りたいのは、あなたが新しい GUI 言語で何をしたいのかということです。言及している短い回答について$your_favorite_one; そのような言語は$your_favorite_one. これらは役に立ちません。誘惑に抵抗します。

XHTML (または HTML。XML ではありませんが、非常によく似ています)、XUL、MXML などの XML ベースの言語の使いやすさについて考えています (このコンテキストでの「その他」とは、他の言語とその実装は元の言語に代わるものであり、これらの言語のみを名前で言及する目的は、私が話していることのアイデアを与えることであり、他の言語について言及する気はありません。いずれにせよ包括的なリストを作成しようとする点に注意してください。) そのような言語が持つべき機能について、私はいくつかの意見を持っています。

  1. 言語は「人間が書き込み可能」であるべきであり、平均的な開発者は、どのタグがどのプロパティを持ち、何が内部で許可されているかを常に参照することなく、かなりの量をコーディングできる必要があります。この点では、XHTML/HTML が最適です。
  2. 一般的なタスクには、組み込みのコントロールの適切なコレクションが必要です。ここでは、XHTML/HTML が最悪です。
  3. CSS のような言語でスタイルを設定できる必要があります (機能に関して)。構造と見栄えに関する懸念を簡単に分離できる必要があります。この結合された全体のレイアウト アルゴリズムは、単純で直感的でなければなりません。ヘルフロートがレイアウトから要素を削除するのはなぜですか? layout:not-included または同様のものがないのはなぜですか?

レンダリング エンジンや他の汎用言語とのやり取り、データ バインディング、厳格な XML 準拠 (名前空間なしで新しいタグを定義する機能?) などの非常に重要な設計上の考慮事項についても言及していませんが、これらは私が望むポイントです。そのような言語にとって何が重要だと思うかを尋ねるには?

4

4 に答える 4

1

最新のXMLGUI言語(実際にはGUIだけでなく)はXAMLと呼ばれます。スタイル、レイアウト定義、オブジェクトの初期化など、すべてのキャンディーがあります。しかし、多かれ少なかれ大きなXAMLファイルを作成するのは面倒です。オートコンプリートは役立ちますが、コアの問題である山かっこのフォレストは解決されません。高度なXMLベースのGUI言語に関するもう1つの問題は、一度に複数の目的を果たそうとしますが、XML構文がすべての状況に適しているわけではありません。たとえば、XAMLはデータバインディングをサポートしていますが、なぜ属性文字列で記述する必要があるのでしょうか。これはファーストクラスの機能であり、適切なサポートが必要です。

IMOのすべての最新のXMLベースの言語はひどくひどいです。人間を対象とした言語では、ユーザーに大量の角かっこを書き込んだり、深いタグを入れ子にしたりするように強制してはなりません。コンピュータにやさしいのではなく、ユーザーにやさしいものでなければなりません。私の夢は、Pythonのような構文のGUI言語を使用することです。

結論として、私は言いたいです:

XMLベースの言語作成者の皆様、人道的であり、XMLに基づいて別の言語を作成しないでください。ドメイン固有言語に関する良い本を読んでください。<と>の記号を二度と入力させないでください。

于 2008-09-23T01:52:54.177 に答える
1

能力とシンプルさの間には常にトレードオフがあります。

個人的には、MS 開発用の WPF (XAML を使用) の機能に満足しています。その複雑さが開発の障壁になるとはまったく思いません。

ただし、ツールキット/言語を、より高度な単純性を必要とする人口統計をターゲットにする場合は、既存のフレームワークを活用することを避けて、エンド ユーザーにニーズに固有のDSLを提供することができます。

開発者コミュニティ全体のための新しいフレームワークを作成することは大変な作業ですが、必要な機能が多岐にわたるため、ある時点でかなりの複雑さに対処しなければならないことがわかると思います。幸運を祈ります。

于 2008-09-23T02:00:42.457 に答える
0

任意のデータベースに簡単に接続し、レコードセットを返すクエリを実行し、前述のレコードセットを簡単に解析および反復して、円グラフ、棒グラフ、タイムラインチャートなどのグラフィックコントロールにデータを表示できるようにしたいと思います。 (のようなストックオプション)、アニメーション効果のあるノードグラフ、これらすべてが実行時に行われます。

簡単なマウスイベントのキャッチ、ロールオーバー、マウスイン、マウスアウト、クリック、ドラッグアンドドロップ、クリップボード管理などのアクションを実装します。優れた無限ズーム機能も素晴らしいでしょう。

設計時にSQLクエリの列と表示可能な要素の間に固定接続を確立する「データソース」を設定したくない。必要なクエリを実行し、クエリフィールドに関連付けられた要素をいつでも表示したい。 、実行時に。設計時にデータソースと表示可能な要素のみをバインドできるようにしたくありません。

すべてのためのcssスタイル機能。または、シンプルで簡単なもの。

サイズ変更とレイアウトは自動的に処理されます。ローカルファイルへの簡単なアクセス、解析、再生、表示。画像管理、透明度のサポート、サイズ変更などの簡単なクラス。画面に描画するための基本クラスと高度なクラス:lineTo、rectangle、circle、animations。3Dでも。

埋め込みフォント機能。「ユーザーはこのフォントをインストールしますか?」について心配したくありません。また、DPIや画面解像度についても心配したくありません。

基本的なウィジェット:ツリービューなど。

良いデザイナー。コードを書くウィジェットを追加したくありません。画面に視覚的に配置したい。

また、一般的にC++またはCOMオブジェクトで作成されたdllに接続できれば便利です。

于 2008-09-23T03:24:47.480 に答える
0

Webクライアントとリッチクライアントのどちらを意味するかを指定する必要がありますが、どちらの場合もXAML/WPFを確認してください。反MSの場合は、SilverLightのMono実装であるMoonlightを見てください。

于 2008-09-23T01:52:05.427 に答える