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

Why is modern GUI development done using code and not a visual editor?

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

不幸的是,业界似乎正在​​远离可视化 GUI 编辑器。近年来,我使用 HTML/CSS、QT/QML、WPF/XAML 和 Android 实现了 GUI:s。我的经验是,none 这些技术的可视化编辑器与 Delphi 2 中的可视化编辑器相当,使用代码更好地完成视觉任务。

这个观察是否正确?如果是这样,现代 GUI:s 是什么阻止了使用可视化编辑器轻松构建它们?

答案已经隐藏在您的问题中。 HTML、QML、XAML,所有这些语言的名称中都有一个 "ML",意思是这些是 "Markup Languages",并不是要描述确切的布局,而是要描述内容的语义.甚至在 HTML 之前,这就不是一个新概念(例如,请参见 LaTeX),但这种方法的优点花了很长时间才进入普遍意识。事实上 HTML 多年来一直被误用作布局描述语言(在某些情况下仍然如此)。

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

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

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