標籤:phi server swt 技術 組件 text asc 表現力 軟體
首先,我認為WEB軟體的開發是比案頭軟體更為複雜的. 起碼,開發方式遠遠不理想.
案頭軟體的模組化, 組件化已經相當成熟,比如當年的VB delphi 後來的visual c# ,java+ swt ,c++ QT. 而WEB開發,到目前為止都沒有特別理想的組件化開發機制.
為了實現改善WEB軟體開發,業界做了許多嘗試.
2002年1月16日asp.net 1.0發布, 當時真是讓人耳目一新, aspx簡直就是用VB的方式來開發web 啊!
Java後來也跟進,推出了JFaces方案, 與aspx相類似 .
2006.05.16 ,google gwt 首次發布! 與aspx不同, gwt的思路是像案頭軟體一樣的方式來開發,完成之後,通過將java代碼編譯成javascript來實現在瀏覽器中運行. 類似的方案還有pyjamas (現在的pyjs)
同一年裡, January 2006, jquery首次發布! 現在回過頭來年這個事情, 可以認為是業界逐漸發現問題在於javascript ! javascript 的低能, 束縛了人們的手腳 .
The first version of the V8 engine was released at the same time as the first version of Chrome: September 2, 2008.
2008年9月2號, 隨著google chrome瀏覽器的發布, 新的javascript引擎v8 面世.
v8的面世讓javascript的運行速度大幅提升, 為後來的前端技術革新創造了條件.
順帶說一下, google dart lang , First appeared: October 10, 2011 . 2011年雙十節google推出了dart 語言,當時的想法是使用來替換javascript .
Facebook reactJS Initial release: March 2013 . (2013年3月,Facebook reactJS 首次發布) reactJS 可以認為是組件化開發的一次重要嘗試.
然而,時至今日, 我認為還不存在一種開發機制,可以達到delphi之於案頭軟體開發的那種理想程度.
根據本人多年開發web後台系統的經驗,我感覺web比較比較困難的根本原因在於幾點:
1.B/S軟體是一種使用分布式軟體,即軟體的介面 代碼 資料不在同一電腦;B/S軟體基於HTTP協議,而HTTP協議有一個重大特點是 不保持串連 且無狀態.
2.javascript語言的特點以及運行速度,難以支援複雜的軟體開發, 並且別無它選,只能使用javascript . 雖然因為v8引擎,有了大幅改進.
3.html語言本身表現力不路,且不支援擴充. 比如我需要一個datagrid功能,但是並沒有一種直接的方式可以定義一個新的標籤<datagrid></datagrid>
重點說一說第一點. 當一個使用者使用瀏覽器開啟一個網頁時,發生了什麼? 簡單地講是這樣的: 使用者電腦的瀏覽器程式, 通過http協議將html描述的介面從遠程伺服器傳輸到本地, 瀏覽器將其渲染成圖形介面展示給使用者並提供互動功能.,
一旦使用者在網頁做了一些操作,則必然有一些資料需要傳輸回伺服器儲存(不然,伺服器端是無法感知到使用者的操作, 互動就沒有完成)
網頁上的互動就是這樣一個個"來回" 進行的.
我經常會想,如果使用遠端桌面的方式來開發一個系統, 每個使用者在遠端桌面裡開啟一個軟體視窗,那麼軟體開發起來會容易很多!
為什麼? 因為可以不受html語言束縛,各種桌面視窗組件直接使用. 因為遠端桌面的RDP協議是操持串連因而是有狀態的,如果網速度足夠快,則使用者在遠程與在本地沒有明顯區別.
既然遠端桌面這種方式並沒有成為軟體互動的主流? 原因不難理解: 1網速不允許;2服務端資源無法支撐這種開銷;3.安裝麻煩,遠不如瀏覽器直接開啟方便. 除了這幾個主要原因,4安全性可能也有一些問題.
那麼,出路在哪裡呢? 或者說,未來將往什麼方向發展?
這個嘛 ,我不是大師,我不知道. 我想,肯定是現在有的技術比如asp.net jfaces gwt 繼續發展, 各種前端架構層出不窮, 前端與後端一體化架構會出現(server side:nodejs ), 還得重點關注ES6等javascipt的發展.
未完...
web軟體開發難在哪裡(相比案頭軟體)