基于XML的GUI语言有哪些“必备”功能

时间:2008-09-23 01:31:03

标签: html xml user-interface language-design xul

不耐烦的总结:

我想知道的是你想用一种新的gui语言。关于提及$your_favorite_one的简短答案;我认为你的意思是,这样的语言应该看起来像$your_favorite_one。这些没有帮助。抵制诱惑。

我正在考虑基于XML的语言的用户友好性,例如XHTML(或HTML,尽管不是XML,它们非常相似),XUL,MXML和其他(在此上下文中的“其他”意味着,我知道其他语言的存在以及它们的实现是否与其原始语言不同,并且仅提及这些语言的目的是为了让我知道我在谈论什么,我不想提及任何其他语言,而且,无论如何,我认为没有必要制作一份综合清单。)我对这种语言应具备的功能有一些看法;

  1. 语言应该是“人类可写的”,这样一般的开发人员应该能够编码好的数量,而不必经常提到哪些标签具有哪些属性,哪些属性允许内部属性。 XHTML / HTML是这方面最好的。
  2. 应该有很好的内置控件集合用于常见任务。 XHTML / HTML在这里很糟糕。
  3. 应该可以使用类似CSS的语言(关于功能)进行样式设置。应该很容易区分对结构和眼睛糖果的担忧。这种组合整体的布局算法应该简单直观。为什么地狱浮动会从布局中移除元素?为什么没有布局:不包含或类似的东西呢?
  4. 我知道我甚至没有提到非常重要的设计考虑因素,例如与渲染引擎和其他通用语言的交互,数据绑定,严格的XML合规性(定义新标签的能力?没有命名空间?)但这些是我想问一下你认为对这种语言重要的是什么?

4 个答案:

答案 0 :(得分:1)

最新的XML GUI语言(实际上不仅仅用于GUI)称为XAML。它有所有的糖果:样式,布局定义,对象初始化等。但是写一个或多或少的大型XAML文件是一个痛苦。自动完成有所帮助,但核心问题 - 尖括号的森林 - 没有解决。高级基于XML的GUI语言的另一个问题 - 它们试图同时用于多种目的,但XML语法并不适用于所有情况。例如,XAML支持数据绑定,但为什么我应该在属性字符串中写它?这是一流的功能,应该有适当的支持。

IMO所有基于XML的现代语言都非常糟糕。用于人类的语言不得强迫用户编写大量括号或进行深层标记嵌套。它必须是用户友好,而不是计算机友好。我的梦想是拥有类似Python语法的GUI语言。

总之,我想说:

亲爱的基于XML的lang作者,请务必要人性化,不要创建基于XML的其他语言。阅读一本关于领域特定语言的好书,请不要让我输入<和>符号再次出现。

答案 1 :(得分:1)

在能力和简单性之间总会存在权衡。

我个人对使用WPF(使用XAML)进行MS开发的功能感到满意。我发现它的复杂性根本不是发展的障碍。

但是,如果您要将工具包/语言定位到需要更高程度简单性的人群中,您可能会利用现有框架并为最终用户提供针对其需求的DSL

为整个开发社区编写一个新的框架虽然是一项庞大的工作,但我怀疑你会发现,由于需要广泛的功能,你必须处理大量的复杂性在某些时候。祝你好运。

答案 2 :(得分:0)

您应该指定您是指Web还是富客户端,但无论哪种方式都可以查看XAML / WPF。如果您是反MS,请查看Moonlight,即SilverLight的Mono实现。

答案 3 :(得分:0)

我希望能够轻松连接到任何数据库,执行返回记录集的查询,并能够轻松地解析和迭代所述记录集以在图形控件中显示其数据,例如饼图,条形图,时间线图表(股票期权等),带有动画效果的节点图,所有这些都在运行时。

轻松捕获鼠标事件,对翻转,鼠标,鼠标移动,点击,拖放,剪贴板管理等实施任何操作。良好的无限缩放功能也会很棒。

我不想设置一个“数据源”,在我的SQL查询中的某个列与设计时的某个可显示元素之间建立固定连接,我想执行任何我想要的查询并显示与任何查询相关联的元素字段,随时,在运行时。我不希望在设计时只能绑定数据源和可显示的元素。

css风格的一切能力。或者简单易行的东西。

自动调整大小和布局。轻松访问本地文件,解析,播放,显示。简单的图像管理类,支持透明度,调整大小等。在屏幕上绘制的基本和高级类:lineTo,rectangle,circle,animations。甚至是3D。

嵌入字体功能。我不想担心“用户是否会安装此字体?”另外,我不想担心DPI或屏幕分辨率。

基本小部件:树视图等

一位优秀的设计师。我不想添加编写代码的小部件。我想把它们放在屏幕上。

此外,如果它可以连接到通常使用C ++或COM对象创建的dll,那将是很好的。