Posted on 2006-01-23 23:03
canonical 閱讀(351)
評論(0) 編輯 收藏 所屬分類:
設計理論
在我看來,軟件開發(fā)就是一個從二進制指令構造出一些高級結構的過程(from
binary chaos to artificial
intelligence)。這種構造依賴于我們控制各種結構的能力。結構化編程向我們展現(xiàn)了一個機械化的分解與合成的世界,但這個世界與我們的真實世界
卻差異良多。于是,面向對象編程試圖直接跳躍到真實的世界,依賴于我們對真實世界中結構的控制能力,直接對真實的結構建模。早期面向對象技術的陳述中充斥
著這種烏托邦式的理想圖景。但是這種隱喻是含混的,兩個世界的巨大差異造成了必然的轉換成本,我們只能壓縮這種成本而不可能完全拋棄它,我們必須要經歷一
系列的中間過程,經歷一個對結構問題進行深刻思考的過程。近幾年軟件技術在控制抽象結構方面有了很大進展,模板,AOP, xml,
SOA等等技術并不是傳統(tǒng)意義上的面向對象,而更像是對結構化編程時代的回歸。而我們對于面向對象技術的應用也不再僅僅關注于對真實世界的建模,而是將這
種技術作為一種普適的建模方法應用于軟件的方方面面。我們在編程的時候不再斤斤計較于一個Class的定義是否反映了事物的本質特征,而僅僅在意它是否有
助于我們對于程序結構的控制。這就象是神經網絡和演化計算等所謂人工智能技術,早期的興起源于一個讓人心血澎湃的理想:向生物世界億萬年的智慧學習,但近
幾年的發(fā)展則越來越明顯的表現(xiàn)為一種對數(shù)學的回歸。
EJB和JSP
Tag都是很好的技術,它們的最終形態(tài)都使我們擁有了更強的結構控制能力。但問題是,它們的構造成本過高,而限制了其意義的進一步引申。輕量級容器的興起
才真正開發(fā)了AOP技術的潛力,使得Meta Object
Protocol的思想得到真正的發(fā)揮。witrix平臺中的tpl模板技術將自定義tag的構建成本降到了最低:沒有配置文件,使用tpl自身來構造
tag。這些努力使得tpl技術不再是象是一個幫助庫,而成為一種獨立的語言。應用tpl模板,我們可以隨意的將小段html文本封裝為有意義的tag
(這在jsp tag中是被明確反對的實踐), 從而獲得一種嶄新的抽象能力。實際上,我認為JSF基于jsp
tag技術,在基本結構的構造方面成本過高,無論它的IDE怎樣發(fā)展,最終只能成為一種界面庫而不會是真正引領未來方向的技術。只有突破成本閾值,才能發(fā)
展出新的天地。