这两天在上海参加erlang的大会,来不及写第五小节,先回复一些评论吧。其中最主要的是nanyu的一组评论,大概有三、四篇,写到了不少东西。下面一一道来。
有关评论请参见:
http://blog.csdn.net/aimingoo/archive/2008/12/17/3540112.aspx
如果我没理解错,你说的似乎是 RAD已死,而取而代之的是WEB UI.
-------
这是最基本的一个理解错误,RAD有很多种说法,但却没有一种说法是直接与“UI开发”相关的,所以它死与不死,与WEB UI替代了谁,没有必然关系。类似概念问题,在很多朋友对这个话题的讨论中都有出现。
在第四节上,我写到如下文字,或是对该问题的一个答复:
那么回顾这整个过程,……这能表明RAD已死么?不完全是,最多能说明“基于界面可视的RAD产品化技术已死”。我必须在这个小节里强调这一点,以说明VCL已死与RAD已死之间,不存在必然的、直接的、强关联的关系。我对RAD之死的观点,VCL只是引子,而非凭据。
说一下,RAD这个词,几乎就被当成是 borland公司产品中Delphi,或MS VB 的代名词。
-------
这也是一个主要的概念错误。与上面的问题是同源的。RAD其实更多的是指“快速软件开发”(的过程或方法),而类似于Delphi/VB的UI方式,以及IDE都只是上述过程或方法的一个具体工具。这个工具是整个过程或方法中的一个部分,而不是它的全部。
事实上我开始也受这一概念错误的困扰。但后来读者biekvn与我在站内信中讨论时,发现RAD这一名词是常为人所误解的。于是我就问了一个问题:如果说Delphi的拖拉界面的IDE是RAD的,那么Eclipse的IDE,没有用拖拉界面,但是有模块有语法检错等自动工具,又算不算RAD呢?答案当然是算,Eclipse当然提高了我们的开发工效,也是实现RAD过程的一个可行工具。但是,注意Eclipse没有所谓的拖拉界面(第三方的暂不论),所以简单地说:拖拉界面的操作方法,以及由些带来的组件化界面、皮肤化界面,只是RAD实施的一种方法或工具,却不是RAD的全部,也不是它的代名词。
撇清这一概念之后,我必须多多地强调一下:在“VCL已死、RAD已死”这组文章中,我讨论的是两个问题,前者是UI开发与设计方法的问题,后者是软件工程方法的问题。对于RAD之死的观点,VCL只是引子,而非凭据。
问:为什么现在BS的程序越来越多,而CS程序越来越少?
-------
这个问题有很多答案,当然你所提到的“BS易于部署”是其中一个,也相对关键。但也还有其它潜在的因素,比如BS的量级,以及网络的条件等等。其中我常常提到的,是BS的短连接,正是CS长连接的一个有效补充,这正是他们在不同的环境下此消彼涨的内在动因。
WEB UI与你说的BS程序也不是一个概念,我基本上不讨论WEB UI是不是一定要在浏览器访问一个远端的WEB服务器这样的问题。事实上,我在SD2C大会上公开的技术方案,是将WEB UI用来做C/S的客户端界面的。我们只需要讨论“WEB UI本质上是怎样的一种UI模式”这样的问题就好。我的答案是:基于块+层+链接的、可描述的、可迁移的。而这三点,又正好是基于MFC、WIMP以及(一般概念下的)MVC模式等技术上的UI所不具备的。
我们讨论B/S与C/S就讨论之,讨论WEB UI与WIMP UI就讨论之,讨论RAD与RUP就讨论之……等等。我们不要把多个概念或领域的因果混淆起来讨论。大多数时候我们要分开论述他们。我们可能提及到相互的影响,但即使如此,也要先分清楚再去混淆。
“同样的,“链接”是用户UI交互的本质,也是WWW的本质”
评论:……有大量的文字内容需要链接,这才是WWW的本质,而不是说“链接”成为了WWW的本质。
-------
这个问题分两半,一是UI交互的本质,二是WWW的本质。在UI交互的概念中,“链接”代表的是“点击”,亦即是行为。如果说“块+层”是“UI描述”的话,“链接”在这里就是“UI交互”,是使UI活动起来的要素。我说他是“UI交互的本质”并不为过。至于“链接是不是WWW的本质”的问题,你应该看看有关WWW起源的文字,你会了解到,WEB的源起,与“将文档结构化,使之可以相互链接起来”有极其紧密的关系。更为简单地说:如果不是链接,WEB只会成为Pages,而不会成为Web Site,以及Web World。
至于后面说Mac让鼠标只有一个键的问题,理解了上述文字也就理解了。或者你可以看看mac系统的设计方面的资料。当然,mac的鼠标现在加上了滚轮,这个就更有趣了。研究UI的人会有很多想法的——我的意思是哲学的、美学的或设计领域上的想法或观点。
“所以,事实上WEB的成功,与WEB UI比传统的WIMP UI更加人性,以及更加面向设计师(例如PS高手)有直接的关系。
评: 再说一遍:(UI)设计师和PS高手是两回事。
-------
EN。。。这也是你的评论中最主要的一个观点。其实我也是这样的观点,而且也在正文中提到了,只是读者不注意罢了。我的观点中:当界面分离出来的时候,自然产生了E2+C2的问题。E2是指效果(Effect)和体验(Experience),其中效果是美术设计来保证的,而体验则由前端开发来保证。
所以我在这里说美术设计,主体是指用“类似PS的工具”来设计与实现界面的人。当然你可以说UI设计师不一定用PS,这个没关系。我在这里用PS只是一个例举。我不能确定XBOX的UI设计师是用PS做的,也不能确定MAC的UI设计师用PS工作,我只是概要的指称了一下。
我不知道你说的“UI设计师”包不包括UED,对我来说,UED是一个团队而非一个个人。如果以这个角度来看,UI设计师——是一个个人,而“UI设计”则是一个领域。“UI设计”可能包括效果、体验以及它们的实现。只要把UI分离出来,在这个分离出来的UI领域工作的所有人——包括程序员——都可以叫“UI设计师”。而事实上,如果按上述的解释,那么“UI设计”也就等于现在常说的“UED(用户体验设计)”,因为体验当然也包括视觉体验——颜色、形状、位置、对比等等。所以我们不太容易能分清这些名词了。
所以我说“更加面向设计师(例如PS高手)……”这个句子时,设计师就只好被限定在“使用PS等工具的这一类UED设计师”的范围内。我在类似这样的情况下会用例举来说明我的“限定”只是一种写作习惯,如果非要我在一篇文章中用十个、二十个的名词来限定不同的角度,当然也做得到,只是那样就更不易读了。
好了,我在这样的段落里要说明什么呢?我的意思是说,PS一类的平面绘制工具是以“块+层”为主要的构图方式的,而WEB UI也具有类似的特点,所以他们之间相互转换是自然而平滑的。你(作为程序员时)没有必要去向一个PS人员解释什么是“ICON",以及它应该有多大或多少颜色。因为在WEB UI的体系上,根本就没有ICON。
至于一个UI设计人员是否要在界面上画一个方块然后填上一些像素,来表明“这是个指示(ICON的主要途)”,那是设计人员的取舍,而不是“WINDOWS操作系统”或“VCL组件系统”或“Win32 API“的限定。这样一来,UI设计才会自由,而用户看到的UI也才会自由而人性——当然,某个具体的UI设计与开发人员(我们假定为整个的UED团队)是否能做出一个“人性的”界面,不在我的讨论范围之内。
其它(其它的一些回复,可能增补)
-------
to fengjsSoft,
既然据你所知的,WEB系统没几个比你开发的CS程序相比,那么我们也不能讨论什么了。在佛家来说,是很有些人有知见障的,当所知所见积累到一定程度,就成了新知新见的障碍,这是必然经历的一个阶段。
to mobeing,
正因为我在SD2C上发言称“VCL已死,RAD已死”,却又没有足够的时间来释清我的观点,所以我才写这一组文章。即使我在写之前仍有些未能透澈,但我在写的过程中已复深思,所以写下来的、记下来的,已是相当慎重了。
至于你提及过的我对VCL的了解,我不解释,因为看起来你已经足够了解我了嘛。在此谢过你的关心与建议,互相珍重、慎重。
分享到:
相关推荐
VCL是Delphi和C++Builder等RAD(快速应用开发)工具中的核心部分,提供了丰富的图形用户界面控件和系统相关类,使得开发者能够高效地构建Windows应用程序。 源码文件包含了一系列的示例程序和章节练习,例如`...
深入探究VCL设计与实现,以RPG方式与读者共同扮演架构设计师,一砖一瓦搭起VCL大厦。配合Windows Framework、COM、Interface等各种技术,按图索骥,逐步厘清VCL Framework真正的脉络所在。• 掌握OO开发之大...
Delphi是一款强大的RAD(快速应用开发)工具,其强大的特性之一就是VCL库。VCL为开发者提供了丰富的控件和类,使得能够高效地创建Windows应用程序。在这一部分,李维先生可能详细解析了VCL中的组件层次结构,如何...
VCL(Visual Component Library)是RAD Studio中的一个图形界面应用程序开发框架,用于创建Windows桌面应用程序。DataSnap服务器VCL应用程序作为连接移动客户端和企业数据库的中间层。 2. 在DataSnap服务器上定义一...
《Delphi开发答疑300问》是一本专注于Delphi编程技术解答的书籍,通过配套的光盘资源,读者可以获取到更为丰富的学习材料。在Delphi编程领域,这本书提供了300个常见问题和解决方案,涵盖了从基础语法、控件使用到...
本书不仅提供了关于VCL组件的详细介绍,还强调了C++ Builder在快速应用程序开发(RAD)方面的优势。RAD是一种快速开发应用程序的技术,它通过减少编程过程中所需的步骤和加快开发速度来实现。C++ Builder 5.0在这一...
《Marco Cantu's A Tour of Delphi 2009中文版》提供了对Delphi 2009全面的介绍,涵盖了开发环境、语言特性、VCL框架、RAD工具以及项目管理等方面。在这一部分,读者可以学习到如何使用Delphi 2009的集成开发环境...
这本书籍详细介绍了Delphi 10 Seattle版本的新特性和功能,帮助读者快速掌握这个强大的集成开发环境(IDE)。 Delphi是一种基于Object Pascal的可视化编程工具,由Embarcadero Technologies开发。它以其高效、快速...
Delphi的核心之一是其丰富的组件库,包括VCL(Visual Component Library)和FireMonkey(FMX)。通过学习如何使用按钮、文本框、列表视图等常见组件,你可以快速构建用户界面,并理解组件属性、方法和事件的工作...
Delphi XE7是一款强大的Windows应用程序开发工具,它以其高效的Object Pascal语言和VCL框架而闻名。然而,当需要与Java环境交互时,如何在Delphi XE7中调用Java的JAR文件就成为一个挑战。本篇将深入探讨如何实现这一...
本资源以CHM(Microsoft Help Compiler)格式提供,方便读者离线查阅和学习。 DELPHI的核心是VCL(Visual Component Library)框架,它为开发人员提供了丰富的组件库,用于构建用户界面和处理各种系统任务。在...
通过这些实例,读者可以深入理解C++Builder的API和VCL框架,学习如何有效地组织代码,优化程序性能,并掌握解决实际问题的方法。此外,书中每个实例都提供了详细的步骤解释和代码注释,有助于初学者逐步理解C++...
综上所述,"Borland C++Builder高级编程技术"这本书籍应该涵盖了上述这些方面的深入内容,帮助读者掌握C++Builder的高级用法,提高软件开发的效率和质量。通过学习,开发者可以充分利用C++Builder的强大功能,快速...
它以其强大的VCL(Visual Component Library)框架和RAD(Rapid Application Development)特性著称,使得开发者能够快速构建高性能的桌面应用程序。DELPHI全掌握这本书不仅涵盖了DELPHI的基础知识,还深入探讨了...
通过这些实例,读者可以学习到如何使用Delphi的VCL(Visual Component Library)组件库来构建用户界面,如何编写和调用自定义函数和过程,以及如何利用Delphi的面向对象特性进行程序设计。 例如,"实例78"可能涉及...
在《C++ Builder编程指南》中,读者可以深入学习如何使用C++ Builder进行程序设计,包括UI设计、事件处理、数据库操作、网络通信、多线程编程、内存管理和优化等主题。同时,通过阅读《Программирован...
Delphi是一种基于Object Pascal的高效能、可视化开发工具,它以其快速应用程序开发(Rapid Application Development, RAD)闻名,广泛应用于桌面应用软件的开发。 在书中,读者可以学习到Delphi的基础知识,包括...
C++Builder简易实例教程介绍了一种基于C++语言的快速应用程序开发(RAD)工具,即Borland公司推出的Borland C++Builder 6.0。本书的目的是帮助读者快速掌握C++Builder的基本使用方法,并对其中的各种控件进行详细...
C++ Builder是Embarcadero Technologies公司开发的一款强大的可视化编程工具,它将C++语言的强大功能与RAD(快速应用程序开发)技术相结合,使开发者能够快速构建高性能的桌面应用程序。该书通过源代码实例,让读者...
《Borland C++ Builder 5实例精解》是一本专为C++ Builder 5开发者设计的实战指南,旨在帮助读者深入理解并熟练运用这款强大的集成开发环境(IDE)。C++ Builder 5是Borland公司在2001年发布的一款针对Windows平台的...