Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 为什么现代GUI开发使用代码而不是可视化编辑器?_User Interface_Frontend_Wysiwyg - Fatal编程技术网

User interface 为什么现代GUI开发使用代码而不是可视化编辑器?

User interface 为什么现代GUI开发使用代码而不是可视化编辑器?,user-interface,frontend,wysiwyg,User Interface,Frontend,Wysiwyg,二十年前,我通过一本电脑杂志获得了Borland Delphi 2。这是我第一次接触编程,构建图形用户界面的可视化拖放方法非常适合我。使用表单设计器创建高级GUI:s既轻松又有趣,尽管我最终并没有成为一名开发人员,但从那以后我一直在编程 不幸的是,业界似乎正在远离可视化GUI编辑器。近年来,我使用HTML/CSS、QT/QML、WPF/XAML和Android实现了GUI:s。我的经验是,这些技术中没有一个与Delphi 2和中的可视化编辑器相符合。 这个观察正确吗?如果是这样的话,现代GUI

二十年前,我通过一本电脑杂志获得了Borland Delphi 2。这是我第一次接触编程,构建图形用户界面的可视化拖放方法非常适合我。使用表单设计器创建高级GUI:s既轻松又有趣,尽管我最终并没有成为一名开发人员,但从那以后我一直在编程

不幸的是,业界似乎正在远离可视化GUI编辑器。近年来,我使用HTML/CSS、QT/QML、WPF/XAML和Android实现了GUI:s。我的经验是,这些技术中没有一个与Delphi 2和中的可视化编辑器相符合。
这个观察正确吗?如果是这样的话,现代GUI:s的哪些方面阻止了使用可视化编辑器轻松构建它们?

答案已经隐藏在您的问题中。HTML、QML、XAML,所有这些语言的名称中都有一个“ML”,这意味着它们是“标记语言”,不是用来描述确切的布局,而是用来描述内容的语义。即使在HTML之前,这也不是一个新概念(例如,请参阅LaTeX),但这种方法的优点需要很长时间才能进入人们的普遍意识。事实上,HTML多年来一直被误用为布局描述语言(在某些情况下仍然如此)

那么,所谓的优势是什么?与Delphi全盛时期的一个重大区别是,我们现在必须应对截然不同的设备、操作系统和屏幕分辨率。这与80年代和90年代形成了鲜明的对比,当时我们主要需要处理一小部分标准分辨率和小部件。如今,一个应用程序可能部署在各种不同的设备上,屏幕格式和分辨率相差甚远。在这种情况下,尝试像素精确放置没有意义。一个试图保持像素精确布局概念的工具只会设定错误的期望,弊大于利。将布局决策委托给平台的相应布局引擎更有效

这不意味着放弃控制权吗?当然,但是开发者失去控制的是用户获得的,这可以说是更重要的。这会对可访问性产生巨大影响。也许有些用户甚至不想要GUI?我说的不仅仅是残疾人(这是开发人员和产品经理经常忽略的用户群),还有其他计算机程序,以使自动化和集成更容易。例如,从(写得好的)HTML文档中提取特定文本比从PDF文档中提取要容易得多


这是否意味着图形工具不再有任何用途?当然不是,但不可否认的是,直接编辑标记需要花费更多的时间。但是标记本质上是声明性的,它本身比我们被迫用来编写UI的命令式代码有巨大的优势。我甚至不会考虑这个“编程”。因此,即使是编译步骤也常常可以省略,从而缩短开发周期。因此,RAD工具基本上试图解决一个在这种形式下根本不存在的问题。

我不能代表任何现代IDE的开发人员和设计师,但有两件事:(1)至少在visual Studio和Xcode中有visual UI编辑器,所以这些东西根本不存在。(2) 如果您的团队中有多个可能希望修改UI的开发人员,那么可视化编辑器将变得非常笨拙。具体来说,它们在版本控制系统中的工作效果往往不太好:与合并/解决代码中的类似更改相比,合并/解决可视化UI编辑器输出中的冲突通常是一个巨大的难题。有许多用于UI的可视化编辑器,人们不喜欢它们,因为它们生成的代码。手工编码通常更好/更干净/更小。作为一个极端的例子,您可以使用MicrosoftWord作为html编辑器。