晦明禅师手捋银须,点头说道:“你很好,不负我一番心血!”凌未风道:“还望师父教诲。”晦明禅师问道:“你已见着那红衣少女了?”凌未风应了一声。晦明禅师道:“她是白发魔女的关门弟子,若她在内,同你一辈共有七人,只余了石天成一人没有学剑。其余六人再加上易兰珠,你们七人倒可以称为天山七剑呢,只可惜你的师兄早死,骸骨也没有运回!”
——题记
众所周知,1979年,苹果公司的员工包括史蒂夫·乔布斯,被允许参观施乐PARC并看到了Alto电脑的图形用户界面。乔布斯最终决定将“图形用户界面”的概念应用到了Macintosh电脑,许多公司、团体和项目都从中获得了灵感。至此,那种轻视用户体验的资本主义软件工程方法来了一个飓风,深刻激励着数字时代从片面重视信息管理效率转向兼顾全回路人人交互、人机交互、泛在交互,实质催生了微软的windows系统以及一系列或私有或开源的图形图像系统,并进一步为后来的互联网可视化技术奠定基础技术。qt和gtk就是这类技术中的两个示例,相对而言,gtk有较深的人工智能的痕迹,而qt则重视软件过程和集成的便利和结构性。正如“天山七剑”不是七把剑而是七个人,而“qt七剑”同样也不是七把剑,而是七种qt定向发展了的软件技术。那么,“qt七剑”是什么呢?为什么只知道例如xyz系统、青鸟工程软件思想、外国主流软件技术是不够的呢?
1.系统语义技术——坚韧不拔的Qt系统语义类
一个幽灵,一个完全平等而无限的幽灵,QObject是qt的故事的开始,也是Qt的系统语义类属(System Semantic Class Genre)的第一个成员。如果只是把不同的组件理解为QObject的扩展,那就没理解到qt的整体的精髓。实际上,应该从“系统语义”的高度把握qt技术。qt的系统语义的一个核心的思想就是从策略化与组件组合出发,而Qt的系统语义的两大特性:协变类(Covariable Classs)和隐式跨线程迭代(Implicited Cross-thread Iterable),为qt技术应用系统奠定系统底层的运行思维和安全模型。
2.传递语义技术——迅猛凌厉,威力无穷的信号提交
在不同的领域,“传递”一词有着不同的含义。在文化传播领域,传递描述了信息从一方向另一方的扩散;在控制论领域,传递可以被建模并构成了系统的能力的基础;在应用软件的角度,传递可以被理解为一个存在伦理风险但也常常是软件权能的载体的过程,一种技术。qt通过协变类宏语义、编译时优化、协变类类型异步安全等机制,确保其推出的“槽函数”可推导可编译、低代价召唤、跨组件互通、跨模态通信。
3.QPushButton组件技术——才情出众的人机对话设计
在主动和被动之间,体现的是软件系统对功能的理解和取舍,还是深深的独特的软件人的温柔。QPushButton的一个动作精确被固定为“在被点击之后”(onclicked)的信号发射,体现了深刻的“对任务完成负责”、“对历史负责”、“对用户期望负责”的思维。兼顾基本功能和协变类权能(Capability Of Covariant Class)的需要,是QPushButton的“才”,统筹直观性和清晰性是QPushButton的“情”,是事件和体验的流畅,是用户感受的“轻”。
4.二阶层事件管理技术——继承自事件循环的多线程事件管理
Qt的事件管理技术的第一个阶层是一般的事件管理,即处理并发布操作系统、开发者协变类、Qt内置对象体系所产生、转发、推送的事件,实现相关的函数接口的生效。但这一层实际上不是Qt原创,而是常常使用了很多跨平台的库,这也使得Qt具有可移植性。而Qt的二阶层事件管理技术体现为,继承了这些底层的可移植的事件库,并实现了一个特制的包括事件接口信号槽、事件过滤器、事件管理与控制的软件语义层,为工艺软件、高性能图形学及其应用、泛在事件表示提供事件框架和规范性框架。
5.Qt坐标系技术——承二维之精髓,融三维之广博
Qt的一个重要功能是支持丰富的二维和三维的图像显示,而Qt的坐标系忠于一般的坐标系理论,并基于二维坐标系为开发者提供绘制程序入口,但不进一步提供更多。在三维图形任务中,则可以和openGL等技术集成。Qt的坐标系技术不是要做软件工艺的颠覆者,而是简单的、淡泊的、可靠的、冷静的图形软件开发者的盟友,忠诚地支撑着在无限对象场景(Infinite Object Scene)中构建软件系统。
6.Qt字体技术——数字化字体显示技术的关门弟子
今天,软件更多从视图层的层面去看字体,确实,漂亮的字体为用户提供了大量的温暖阳光的体验。但字体的内涵不仅仅是视图,从语言和信息的层面,字体实际上是“视觉化要素”,是拯救“用户视觉体验”的重要助手。Qt字体技术的特点是不是把字体看成一种属性,而是把字体看成一种对象。Qt字体技术的基础是QFont查询器。
7.Qt网络编程技术——独具一格的网络编程接口封装
通过Qt,人人都可以通过c++编写简单的网络服务器,这就是Qt把网络编程改造成了一组对象:使用共通协议度用(perform)网络操作(network operation)的类。
————
老汉曰:中华民族的伟大复兴是古老中国焕发新活力的历史,是重塑中华文明、东方文明、人民生活的伟大过程,是影响世界的伟大历程。一路走来,这个伟大复兴曾经有过感人肺腑的热烈篇章,也是在谎言、真相、斗争中不断发展的。有谎言、真相、斗争,可能就有先进与落后的争端,有实用和公理的揪斗,而真相的公平、共享、可靠、可持续,归根结底离不开人。希望这篇对“Qt七剑”的分析和讨论,有助于软件世界发实用、则计算、兴机械。
--
修改:darkk FROM 223.104.40.*
FROM 223.104.40.*