基于XML的GUI语言的"必备"功能是什么

时间:2020-03-06 14:34:34  来源:igfitidea点击:

不耐烦的摘要:

我想知道的是我们想用新的GUI语言获得的内容。关于提到$ your_favorite_one的简短答案;我认为意思是,这种语言应类似于$ your_favorite_one。这些没有帮助。抵制诱惑。

我正在考虑基于XML的语言的用户友好性,例如XHTML(或者HTML,尽管它们不是XML,它们非常相似),XUL,MXML和其他语言(在这种情况下,"其他"意味着我知道其他语言及其实现替代原始语言的实现,并且仅以名称提及这些语言的目的是为了让我了解我在说什么,而我不想提及任何其他语言,而且,我也认为没有还是要尝试列出完整的列表。)。对于这种语言应具有的功能,我有一些看法。

  • 该语言应该是"人类可写的",这样,普通开发人员应该能够编写大量代码,而无需不断引用哪些标签具有哪些属性,哪些内容允许使用什么。 XHTML / HTML在这方面是最好的。
  • 对于常规任务,应内置良好的控件集合。 XHTML / HTML在这里很烂。
  • 它应该能够使用类似于CSS的语言(就功能而言)进行样式设置。应该很容易将对结构和眼睛糖果的关注分开。这个组合整体的布局算法应该简单直观。为什么地狱浮动从布局中删除元素?为什么没有布局:不包含或者类似的布局?

我知道我什至没有提到非常重要的设计注意事项,例如与渲染引擎和其他通用语言的交互,数据绑定,严格的XML遵从性(定义新标签的能力?没有名称空间?),但是这些是我想要的要点。问一下我们认为对于这种语言重要的是什么?

解决方案

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

最新的XML GUI语言(不仅实际上用于GUI)称为XAML。它具有所有优点:样式,布局定义,对象初始化等。但是编写或者多或者少的大型XAML文件很麻烦。自动补全功能可以解决,但是尖括号的核心问题尚未解决。它们试图同时满足多种用途的基于XML的高级GUI lang的另一个问题是,但XML语法并不适合所有情况。例如XAML支持数据绑定,但是为什么我应该在属性字符串中写它呢?这是一流的功能,应该有适当的支持。

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

最后,我想说:

尊敬的基于XML的lang语言作者,请人道化,不要创建基于XML的另一种语言。阅读有关领域特定语言的好书,请不要再让我键入<和>符号。

在能力和简单性之间总会有一个权衡。

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

但是,如果我们打算将工具箱/语言定位于需要更高程度的简单性的人群,则可以利用现有框架并为最终用户提供针对其需求的DSL,从而摆脱困境。

但是,为整个开发社区编写一个新框架是一项艰巨的任务,并且我怀疑我们会发现,由于所需的功能广泛,因此在某些时候我们将不得不应对大量的复杂性。祝你好运。

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

易于捕获鼠标事件,以对翻转,mouseins,mouseout,单击,拖放,剪贴板管理等执行任何操作。良好的无限缩放功能也将非常出色。

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

css样式功能适用于所有内容。或者简单易用的东西。

调整大小和布局会自动进行。轻松访问本地文件,以进行分析,播放和显示。用于图像管理,支持透明度,调整大小等的简单类。用于在屏幕上绘制的基本和高级类:lineTo,矩形,圆形,动画。甚至3D。

嵌入式字体功能。我不想担心"用户会安装此字体吗?"我也不想担心DPI或者屏幕分辨率。

基本小部件:treeviews等

优秀的设计师。我不想添加编写代码的小部件。我想将它们直观地放在屏幕上。

同样,如果它可以连接到通常由C ++或者COM对象制成的dll,那将是很好的。