私は、UIを構築するためにどのアプローチを取るか(プログラム型か宣言型か)を決定しようとしてきました。私はJavaScriptとWebテクノロジーを使用しています。ExtJSやYUIのようないくつかのプロジェクトでは、プログラムによるアプローチを採用しています。
var container = new Ext.Container({
style: 'padding: 4px;',
items: [
new Button({text: 'hello'})
]
});
container.render(document.body);
ビューコンポーネントを動的に作成する必要がある場合は、プログラムによるアプローチが必要になる場合があります(?)。プログラミングも簡単です。少なくとも、APIとコードアシスタントに慣れているので、私にとってはそう感じます。
ただし、XUL(FirefoxおよびThunderbird UIに使用される)などの一部のテクノロジーは、宣言型アプローチに基づいています。
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="vbox example" title="Example 3...."
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<vbox>
<button id="yes" label="Yes"/>
<button id="no" label="No"/>
<button id="maybe" label="Maybe"/>
</vbox>
</window>
宣言型アプローチを採用するAmpleSDKと呼ばれるJavaScriptGUIフレームワークもあります。そのため、JavaScriptベースのアプリケーションでは、2つの選択肢があります。
Flexは、プログラム型UIだけでなく、宣言型UIもサポートしています。WFPとSilverlightはXAMLに焦点を合わせているようです。また、OpenLaszloは宣言型アプローチを使用しているようです。
次に、 jQuery UIはプログラマティックであり、DojoToolkitは2つのアプローチの中間にあることがわかります。
頭の中にいくつか質問があります。
1)動的(実行時に追加されるコンポーネント)UIは、宣言型の方法でのみ実装できますか?
2)両方のアプローチをサポートして、ほとんどの部分で宣言型スタイルを使用し、必要に応じてプログラム型スタイルを使用できるようにすることは理にかなっていますか?
3)どちらが好きですか、そしてその理由は何ですか?