走進廚房,才知道食材的好壞...

前幾天應邀到社群舉辦的講座,介紹雲端運算與行動裝置的整合,席間提到了Silverlight技術,不免又有一些開發人員問到這樣的問題:『聽說...微軟對Silvrlight的支持和更新將會如何如何...,這部分開發人員要如何因應』?

面對這類問題,我最近一年少說不只回答了10次,首先,『聽說』這個前提就很是問題,雖然報紙偶而會有猜對的時候,但捕風捉影總是佔了大多數。

另外就是開發人員要如何因應這種事情。

我始終覺得,沒什麼好因應的,開發技術本來就是這樣,特別是展示層開發技術,我在這篇文章中曾經說過,展示層技術的持續精進與改變是必然的趨勢。你回頭看,Wii和Kinect都是最近這幾年才發生的事情,但現在已經開始慢慢出現在我們LOB應用的UI裡面了。而觸控技術早就有了,最近五年才出現在手機上,如果回頭看過去20年,從黑底白字的文字模式,到Mac/Windows的圖形介面,到現在的RIA(Rich Internet Appication)開發技術,少說有沒有換過10種開發方式?

請開發人員接受一個事情,就是presentation(展示層)的UI開發技術,是每隔兩三年就會大改一次的,ASP.NET從2002年誕生到現在,共四個版本,也不過八九年,中間還有AJAX技術進來攪局和jQuery的崛起,還有現在的MVC設計模式,這些技術都是持續在精進與改變的,不多人在2005年之前,會預知後面AJAX應用成長的那麼快(中間也跟網際網路頻寬與行動裝置拖不了干係),而現在也不多人能100%論定是否HTML5將變成未來可能的一種趨勢。

如果你比較Flex/Silverlight/HTML5,然後開始聽到iOS對Flex有些疑惑,Silverlight沒法跑在iOS和android上,HTML5又不夠成熟,那怎麼辦? 要投資哪一個? 哪一種技術可以讓你長治久安?

長治久安? 答案當然是沒有! 沒有一種開發技術是可以讓你在這個變動迅速的時代,軟體生命週期爆低的世代,可以長治久安的。沒有!

但你確實可以選擇一個對自己來說投資成本比較低的方案,例如,著眼在跨平台,不同的device對你來說差不多,只是呈現出一個介面,你不會用到Device上的LBS或Camera,大部分的運算在伺服器端,那ASP.NET/JSP/PHP依舊是比較好的選擇。如果,你要建置的是企業內的LOB,你可以掌握幾乎所有用戶端的狀況,而過去你是.net的開發人員,那Silverlight絕對是不二選擇。其餘均可類推...

不同的技術就是用在不同的scenario,彼此之前從沒有衝突,(我們沒有說Silverlight是用來取代ASP.NET的,兩者甚至依舊常常合作),微軟的開發技術大多進入障礙低,這其實是一種設計過的優勢,我們希望開發人員不要花很多時間『一直在』學新技術,而是能夠很快地就去『用』新技術,去動手開發出點什麼可以改善這個世界的資訊產品。(寫這篇文章的人,顯然對.NET不是很熟)

在許多人還在爭論Silverlight的前途是否未明之前,我們公司的產品已經把Silverlight技術用的淋漓盡致(有點誇張我承認,但我一時之間找不到類似的詞,請包涵),那你說我們會不會不管HTML5? 當然不會,她依舊是我們下個世代產品的展示層技術考量之一。

因為我們熟悉Silverlight開發技術,在Windows Phone 7上我們的開發成本相當低,接下來的Windows 8,由於採用了XAML,對於熟悉Silverlight的我們來說,將Application(or Apps) Porting到Win8上當然也不是問題。

很多開發團隊或人員,針對Silverlight開發技術的評估,其實坦白說並不認真,因為從2007年Silverlight出現到現在,始終停留在『評估』的階段,而這三年,已經有數以萬計的產品(包含微軟自己的Windows Azure管理平台)是100%以Silverlight技術打造的。

我要說的是,如果你始終只停留在評估,那不如就乾脆放棄了吧,因為在你評估的同時,很可能競爭對手已經開始實作、已經開始推出產品。我總是覺得,與其花時間看遍報章雜誌去研究一個技術的未來,不如親自動手直接用這個技術開發點什麼。這是技術人員的本質,『評估』絕對不只是收集收集資料,綜合一下大家的意見就好。對技術人員還說,評估是親身的體驗,是自身的感受。

畢竟,走進廚房,你才能真正知道這些食材與調味料的好壞...

留言

Unknown寫道…
讚!!!這文章讓我增廣見聞^_^
阿健寫道…
沒錯,沒有一層不變的炒菜手法,只看你能不能接受不一樣的調理...舉個例:在我待的行業裏,我看到了kinect+wpf 帶來了不同的應用,我深信能改變什麼,我也樂意去嘗試...這種心情很棒!
匿名表示…
nice,,點醒我一直以來選擇技術的迷思,這幾天也有告訴自己:在這動盪的時代,沒有永遠的技術。
不過適當的評估我認為還是需要的,畢竟投資再每一種技術上面都是時間,除非時間很多,不然當應用重疊且是剛開始入門的時候,真的要去適當的「評估」。
我想那些在評估的人,心態大概跟我差不多,想找未來性最廣泛的使用。
匿名表示…
老師....
你的標題下的很好.
這也應該回應了你上次mail中所說的.
我個人覺得若走微軟路線的人,
SL真的是不錯,也值得花點時間學習的江湖"一招半式".
Web的時代太多要學了, 鎖定一樣,用力去學才是有效率效果的.

再一次謝謝董老師努力的在這一塊耕耘與分享.
RogerMan
Pajace寫道…
偶然間發現董老師的部落格~真的事太讚了!!!!

這個網誌中的熱門文章

使用 Airtable 在小型需求上取代傳統資料庫

精彩(且驚人)的Semantic Kernel入門範例

使用Semantic Kernel 建立自然語言請假系統

在 LINE Bot 開發中使用Semantic Kernel建立自然語言請假系統

專業的價值...