关于“VCL已死、RAD已死”答读者问
這兩天在上海參加erlang的大會(huì),來(lái)不及寫第五小節(jié),先回復(fù)一些評(píng)論吧。其中最主要的是nanyu的一組評(píng)論,大概有三、四篇,寫到了不少東西。下面一一道來(lái)。
?
有關(guān)評(píng)論請(qǐng)參見(jiàn):
http://blog.csdn.net/aimingoo/archive/2008/12/17/3540112.aspx
?
?
如果我沒(méi)理解錯(cuò),你說(shuō)的似乎是 RAD已死,而取而代之的是WEB UI.
-------
這是最基本的一個(gè)理解錯(cuò)誤,RAD有很多種說(shuō)法,但卻沒(méi)有一種說(shuō)法是直接與“UI開(kāi)發(fā)”相關(guān)的,所以它死與不死,與WEB UI替代了誰(shuí),沒(méi)有必然關(guān)系。類似概念問(wèn)題,在很多朋友對(duì)這個(gè)話題的討論中都有出現(xiàn)。
?
在第四節(jié)上,我寫到如下文字,或是對(duì)該問(wèn)題的一個(gè)答復(fù):
那么回顧這整個(gè)過(guò)程,……這能表明RAD已死么?不完全是,最多能說(shuō)明“基于界面可視的RAD產(chǎn)品化技術(shù)已死”。我必須在這個(gè)小節(jié)里強(qiáng)調(diào)這一點(diǎn),以說(shuō)明VCL已死與RAD已死之間,不存在必然的、直接的、強(qiáng)關(guān)聯(lián)的關(guān)系。我對(duì)RAD之死的觀點(diǎn),VCL只是引子,而非憑據(jù)。
?
說(shuō)一下,RAD這個(gè)詞,幾乎就被當(dāng)成是 borland公司產(chǎn)品中Delphi,或MS VB 的代名詞。
-------
這也是一個(gè)主要的概念錯(cuò)誤。與上面的問(wèn)題是同源的。RAD其實(shí)更多的是指“快速軟件開(kāi)發(fā)”(的過(guò)程或方法),而類似于Delphi/VB的UI方式,以及IDE都只是上述過(guò)程或方法的一個(gè)具體工具。這個(gè)工具是整個(gè)過(guò)程或方法中的一個(gè)部分,而不是它的全部。
?
事實(shí)上我開(kāi)始也受這一概念錯(cuò)誤的困擾。但后來(lái)讀者biekvn與我在站內(nèi)信中討論時(shí),發(fā)現(xiàn)RAD這一名詞是常為人所誤解的。于是我就問(wèn)了一個(gè)問(wèn)題:如果說(shuō)Delphi的拖拉界面的IDE是RAD的,那么Eclipse的IDE,沒(méi)有用拖拉界面,但是有模塊有語(yǔ)法檢錯(cuò)等自動(dòng)工具,又算不算RAD呢?答案當(dāng)然是算,Eclipse當(dāng)然提高了我們的開(kāi)發(fā)工效,也是實(shí)現(xiàn)RAD過(guò)程的一個(gè)可行工具。但是,注意Eclipse沒(méi)有所謂的拖拉界面(第三方的暫不論),所以簡(jiǎn)單地說(shuō):拖拉界面的操作方法,以及由些帶來(lái)的組件化界面、皮膚化界面,只是RAD實(shí)施的一種方法或工具,卻不是RAD的全部,也不是它的代名詞。
?
撇清這一概念之后,我必須多多地強(qiáng)調(diào)一下:在“VCL已死、RAD已死”這組文章中,我討論的是兩個(gè)問(wèn)題,前者是UI開(kāi)發(fā)與設(shè)計(jì)方法的問(wèn)題,后者是軟件工程方法的問(wèn)題。對(duì)于RAD之死的觀點(diǎn),VCL只是引子,而非憑據(jù)。
?
?
問(wèn):為什么現(xiàn)在BS的程序越來(lái)越多,而CS程序越來(lái)越少?-------
這個(gè)問(wèn)題有很多答案,當(dāng)然你所提到的“BS易于部署”是其中一個(gè),也相對(duì)關(guān)鍵。但也還有其它潛在的因素,比如BS的量級(jí),以及網(wǎng)絡(luò)的條件等等。其中我常常提到的,是BS的短連接,正是CS長(zhǎng)連接的一個(gè)有效補(bǔ)充,這正是他們?cè)诓煌沫h(huán)境下此消彼漲的內(nèi)在動(dòng)因。
?
WEB UI與你說(shuō)的BS程序也不是一個(gè)概念,我基本上不討論WEB UI是不是一定要在瀏覽器訪問(wèn)一個(gè)遠(yuǎn)端的WEB服務(wù)器這樣的問(wèn)題。事實(shí)上,我在SD2C大會(huì)上公開(kāi)的技術(shù)方案,是將WEB UI用來(lái)做C/S的客戶端界面的。我們只需要討論“WEB UI本質(zhì)上是怎樣的一種UI模式”這樣的問(wèn)題就好。我的答案是:基于塊+層+鏈接的、可描述的、可遷移的。而這三點(diǎn),又正好是基于MFC、WIMP以及(一般概念下的)MVC模式等技術(shù)上的UI所不具備的。
?
我們討論B/S與C/S就討論之,討論WEB UI與WIMP UI就討論之,討論RAD與RUP就討論之……等等。我們不要把多個(gè)概念或領(lǐng)域的因果混淆起來(lái)討論。大多數(shù)時(shí)候我們要分開(kāi)論述他們。我們可能提及到相互的影響,但即使如此,也要先分清楚再去混淆。
?
“同樣的,“鏈接”是用戶UI交互的本質(zhì),也是WWW的本質(zhì)”
評(píng)論:……有大量的文字內(nèi)容需要鏈接,這才是WWW的本質(zhì),而不是說(shuō)“鏈接”成為了WWW的本質(zhì)。
-------
這個(gè)問(wèn)題分兩半,一是UI交互的本質(zhì),二是WWW的本質(zhì)。在UI交互的概念中,“鏈接”代表的是“點(diǎn)擊”,亦即是行為。如果說(shuō)“塊+層”是“UI描述”的話,“鏈接”在這里就是“UI交互”,是使UI活動(dòng)起來(lái)的要素。我說(shuō)他是“UI交互的本質(zhì)”并不為過(guò)。至于“鏈接是不是WWW的本質(zhì)”的問(wèn)題,你應(yīng)該看看有關(guān)WWW起源的文字,你會(huì)了解到,WEB的源起,與“將文檔結(jié)構(gòu)化,使之可以相互鏈接起來(lái)”有極其緊密的關(guān)系。更為簡(jiǎn)單地說(shuō):如果不是鏈接,WEB只會(huì)成為Pages,而不會(huì)成為Web Site,以及Web World。
?
至于后面說(shuō)Mac讓鼠標(biāo)只有一個(gè)鍵的問(wèn)題,理解了上述文字也就理解了。或者你可以看看mac系統(tǒng)的設(shè)計(jì)方面的資料。當(dāng)然,mac的鼠標(biāo)現(xiàn)在加上了滾輪,這個(gè)就更有趣了。研究UI的人會(huì)有很多想法的——我的意思是哲學(xué)的、美學(xué)的或設(shè)計(jì)領(lǐng)域上的想法或觀點(diǎn)。
?
?
“所以,事實(shí)上WEB的成功,與WEB UI比傳統(tǒng)的WIMP UI更加人性,以及更加面向設(shè)計(jì)師(例如PS高手)有直接的關(guān)系。
評(píng): 再說(shuō)一遍:(UI)設(shè)計(jì)師和PS高手是兩回事。
-------
EN。。。這也是你的評(píng)論中最主要的一個(gè)觀點(diǎn)。其實(shí)我也是這樣的觀點(diǎn),而且也在正文中提到了,只是讀者不注意罷了。我的觀點(diǎn)中:當(dāng)界面分離出來(lái)的時(shí)候,自然產(chǎn)生了E2+C2的問(wèn)題。E2是指效果(Effect)和體驗(yàn)(Experience),其中效果是美術(shù)設(shè)計(jì)來(lái)保證的,而體驗(yàn)則由前端開(kāi)發(fā)來(lái)保證。
?
所以我在這里說(shuō)美術(shù)設(shè)計(jì),主體是指用“類似PS的工具”來(lái)設(shè)計(jì)與實(shí)現(xiàn)界面的人。當(dāng)然你可以說(shuō)UI設(shè)計(jì)師不一定用PS,這個(gè)沒(méi)關(guān)系。我在這里用PS只是一個(gè)例舉。我不能確定XBOX的UI設(shè)計(jì)師是用PS做的,也不能確定MAC的UI設(shè)計(jì)師用PS工作,我只是概要的指稱了一下。
?
我不知道你說(shuō)的“UI設(shè)計(jì)師”包不包括UED,對(duì)我來(lái)說(shuō),UED是一個(gè)團(tuán)隊(duì)而非一個(gè)個(gè)人。如果以這個(gè)角度來(lái)看,UI設(shè)計(jì)師——是一個(gè)個(gè)人,而“UI設(shè)計(jì)”則是一個(gè)領(lǐng)域。“UI設(shè)計(jì)”可能包括效果、體驗(yàn)以及它們的實(shí)現(xiàn)。只要把UI分離出來(lái),在這個(gè)分離出來(lái)的UI領(lǐng)域工作的所有人——包括程序員——都可以叫“UI設(shè)計(jì)師”。而事實(shí)上,如果按上述的解釋,那么“UI設(shè)計(jì)”也就等于現(xiàn)在常說(shuō)的“UED(用戶體驗(yàn)設(shè)計(jì))”,因?yàn)轶w驗(yàn)當(dāng)然也包括視覺(jué)體驗(yàn)——顏色、形狀、位置、對(duì)比等等。所以我們不太容易能分清這些名詞了。
?
所以我說(shuō)“更加面向設(shè)計(jì)師(例如PS高手)……”這個(gè)句子時(shí),設(shè)計(jì)師就只好被限定在“使用PS等工具的這一類UED設(shè)計(jì)師”的范圍內(nèi)。我在類似這樣的情況下會(huì)用例舉來(lái)說(shuō)明我的“限定”只是一種寫作習(xí)慣,如果非要我在一篇文章中用十個(gè)、二十個(gè)的名詞來(lái)限定不同的角度,當(dāng)然也做得到,只是那樣就更不易讀了。
?
好了,我在這樣的段落里要說(shuō)明什么呢?我的意思是說(shuō),PS一類的平面繪制工具是以“塊+層”為主要的構(gòu)圖方式的,而WEB UI也具有類似的特點(diǎn),所以他們之間相互轉(zhuǎn)換是自然而平滑的。你(作為程序員時(shí))沒(méi)有必要去向一個(gè)PS人員解釋什么是“ICON",以及它應(yīng)該有多大或多少顏色。因?yàn)樵赪EB UI的體系上,根本就沒(méi)有ICON。
?
至于一個(gè)UI設(shè)計(jì)人員是否要在界面上畫一個(gè)方塊然后填上一些像素,來(lái)表明“這是個(gè)指示(ICON的主要途)”,那是設(shè)計(jì)人員的取舍,而不是“WINDOWS操作系統(tǒng)”或“VCL組件系統(tǒng)”或“Win32 API“的限定。這樣一來(lái),UI設(shè)計(jì)才會(huì)自由,而用戶看到的UI也才會(huì)自由而人性——當(dāng)然,某個(gè)具體的UI設(shè)計(jì)與開(kāi)發(fā)人員(我們假定為整個(gè)的UED團(tuán)隊(duì))是否能做出一個(gè)“人性的”界面,不在我的討論范圍之內(nèi)。
?
?
?
其它(其它的一些回復(fù),可能增補(bǔ))
-------
to fengjsSoft,
既然據(jù)你所知的,WEB系統(tǒng)沒(méi)幾個(gè)比你開(kāi)發(fā)的CS程序相比,那么我們也不能討論什么了。在佛家來(lái)說(shuō),是很有些人有知見(jiàn)障的,當(dāng)所知所見(jiàn)積累到一定程度,就成了新知新見(jiàn)的障礙,這是必然經(jīng)歷的一個(gè)階段。
?
to? mobeing,
正因?yàn)槲以赟D2C上發(fā)言稱“VCL已死,RAD已死”,卻又沒(méi)有足夠的時(shí)間來(lái)釋清我的觀點(diǎn),所以我才寫這一組文章。即使我在寫之前仍有些未能透澈,但我在寫的過(guò)程中已復(fù)深思,所以寫下來(lái)的、記下來(lái)的,已是相當(dāng)慎重了。
至于你提及過(guò)的我對(duì)VCL的了解,我不解釋,因?yàn)榭雌饋?lái)你已經(jīng)足夠了解我了嘛。在此謝過(guò)你的關(guān)心與建議,互相珍重、慎重。
轉(zhuǎn)載于:https://www.cnblogs.com/encounter/archive/2008/12/22/2188612.html
總結(jié)
以上是生活随笔為你收集整理的关于“VCL已死、RAD已死”答读者问的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ASP.NET 配置文件 configS
- 下一篇: 为netbean配置C++编译环境