Wednesday, March 31, 2010

如果不用 Flex 開發前端程式,那該選用哪個好呢

我真的對 史地夫賈不死 又愛又恨,我原本用的好好的 Flex,因為他不喜歡,我只好又要重新評估開發程式所使用的技術了。

我程式寫的不少,不過大多數是給自己用的居多,所以哪個技術方便就用哪個,有用終端機的,有用 Flex, Python, JAVA 的,完全一個混搭風, 當然也不是沒有考慮過可攜性與程式發展的彈性,在 Server 端還好,你可以掌握的多,所以較沒有限制,哪個方便就用哪個,至於使用者界面,就比較麻煩了,基本上我是以使用網頁技術為主,以使用者不須要額外安裝為前提。

三年前,Flex 是我淘汰 GWT,JFS,Javascript, ajax and jsp 所選定的發展主力,的確 Actionscript 寫起來很像 java,所以在習慣了 Flex 的程式結構後,寫起 Flex 相當的駕輕就熟,尤其是它的 GUI, 如 Datagrid 與 JSON 完美的結合,讓我完全沈醉在 Flex 的世界。

隨著念書進入尾聲,過去寫程式自爽的日子也快結束了,慢慢的也要考量使用者環境來選擇開發軟體。最近跟學長聊到前端程式開發的平台選擇問題,Flex, GWT, Javascript 的優缺點又浮上台面,不過主要是前端使用界面的開發,我想就先從我前端所需要的功能,來評估各個技術的優缺點。

Easy DatGrid -> work with JSON
Drag and Drop
Multiple Pane
Data Persistance --> JSON

其實這樣看來,其實以上的幾個平台都有支援以上的功能,但是差別就是須不需要安裝ㄧ大堆的程式庫,還有好用的 Visual IDE,Flex 最大的優點,就是它有很成熟的 Visual IDE,不過 Flash 不被 iPad 與 iPhone 支援ㄧ整個就很頭痛,說了半天還是沒有好的解決方案,這時又來了新問題。

Offline 時執行程式的能力,一直是 Web-based 軟體發展的一個大隱憂,之前評估過用 Google gear 的可能性,但是寫 Google gear 的程式實在不是很方便,資料的存取你都要考慮是 Online or Offline,光處理這一段細節與除蟲,可能就比寫程式本身複雜,之前不知道在哪裡看到 Google 也要放棄 google gear 了,另外, google wave 是另外ㄧ個失敗的例子,就是產品本身太複雜,連功能都要想半天怎樣運用,基本上大概都不會成功,基本上,軟體成功的重要因素就是,把一件最需要的工作,把它作到無懈可擊,我想 Google and Gmail 就是這樣的例子,功能很單純,但是發展到最完美。

在這樣的思維之下,與 iPad 上市在即,我又不禁對封閉的程式架構開始起了美麗的幻想,就是如果不是因為遷就程式的可攜性,單就一個封閉軟體與硬體的應用,在封閉的 iPad 軟體又讓我開始蠢蠢欲動,另外也可以在 Mac 上運用,就不禁讓我想不顧一切的開始導向 Cocoa,不過這時放棄廣大的 Android 的開發平台,又不禁讓我躊躇再三,深覺的放棄 Android 的 java-based 環境,又是ㄧ個莫大的損失。


寫到這裡,好像還是沒有結論,我想先開始紙上作業,作我軟體的規劃好了,完全是跟平台無關,等真正要來開發軟體時再來傷腦筋好了。或許真正寫程式不會花很多時間,倒是軟體的設計本身比較花時間說。
<