java 解析标记语言_Markup Language/标记语言/置标语言(例如xml,html)是GUI发展历史上的错误吗?...

不是。

以前的编程语言的语法设计不够现代,用来定义 UI 非常不友好。你自己想想用一堆最平凡的方法调用代码创建各种元素和属性,然后在各个容器之间插入,多难受。并且非常不直观。

XML 和 HTML 解决了这个问题。而且用 XML 或 HTML 并不表示 UI 是静态的,它们解析以后仍然会构造出以前用语言代码创建的各种对象。

所以 JS 能通过 DOM API 操作 HTML 中的元素,Android 中的 Java 代码能直接获得 XML 中定义的控件对象进行各种控制。

但是,陆续的,很多语言都开始宣称自己的语法灵活,能构造出 DSL 风格的代码。如果一个 UI 库利用了这一点,完全以适合 DSL 调用风格来设计 API,便能造就纯语言代码定义 UI 的技术,并且直观性不差 XML 或其它描述性语言。

可是实际上,如果你真的用它们写过代码,如果你遵循基本的界面/逻辑分离思想,你会发现用语言代码定义 UI 的时候,和 XML 是没有太大区别的。反而增加了一些优点,例如不需要运行时解析从而提高了性能。

如果你用它们的 DSL 设计 UI 的时候,混入了一堆逻辑代码,那你表面上是利用了语言代码定义 UI 的优势,实际上是犯了基本的程序设计错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值