最适合作 GUI 的是 DSL 或者 XML(以及 XML 的扩展)之类的标记语言,而不是编程语言。css
例如 Qt 的 QML,Android 的 XML 或者 WPF 的 XAML 以及你们都再熟悉不过的 HTML/CSS,包括 JavaFX 也有 FXML。前端
一门编程语言若是想更适合定义界面,那么它的语法就得往 DSL 方面靠拢(或者支持 DSL 风格)。vue
GUI这个东西的特性就是变化无穷,细节复杂,须要怼大量人力完成。因此适合GUI的语言,必然是能够节省人力的特性。从编程语言角度,越能更快给到编程者反馈,语言写法越接近最终成品的用户界面,基本是更好的。java
0. 书写简单。语法简洁,杂音少,不须要写boilerplate。支持function closure是基础了。Kotlin里UI DSL还有大括号实际上也不是特别干净,最好能像CoffeeScript同样用缩进表达。node
总之就是怎么写得快怎么好咯。若是综合上面几点,最好的GUI语言就是webpack
CoffeeScript的语法 + TypeScript的类型系统 + Kotlin的语法糖DSL + Dartlang的热加载 + C#的async/await/Rxangularjs
与其问什么语言最适合作 GUI,倒不如问作 GUI 须要语言/框架具备哪些特性。web
首先用代码来“画”界面在如今来看是很怪异的,因此用 DSL + 完善的布局系统来写界面必定是趋势。对应的技术有 WPF、Qt Quick、JavaFX、Android Layout XML...typescript
其次,界面不能脱离了数据,而如何将数据与界面之间创建起关系是相当重要的,双向数据绑定无疑是最好的实现方法。对应的技术有 WPF、Cocoa、各类 Web MVVM 框架...编程
最后还有交互,交互是一件很复杂的事情,不要试图用函数式的思想去解决这个问题,交互必定须要命令式的编程方式,而实现交互最基础的一点就是事件系统,如何将视图里的控件事件与一段逻辑代码联系在一块儿?看看 Qt Signal/Slot 和 Cocoa 就知道了,这点须要一个语言特性叫反射。
按照个人理解,适合写gui的语言应当有这些特色
大概就这么多,要我说,我认为最适合的语言是
ui 的关键部分
我我的以为应该分为四个部分。
第一:排版(包括布局)
第二:附加属性(外观 颜色 边框 阴影 行高 字体)
第三:事件(交互)
第四:数据
以上主要是对目前前端 这种UI范式进行的总结。
而排版(或布局)须要一些比较自动化得 约定和机制。以便于确保 编程人员不用过多得考虑排版(反面教材就是winform 具体位置点这种的是最差的)。
附加属性这个彻底能够参考css 这种 设计模式。
事件和数据 没啥好说的 参考下 相似 angularjs 或者vue 这种双向绑定就是了。
那么到底需不须要标记语言呢?
不必定。
由于也彻底能够用 编程语言来布局。关键是api的设计而已。