除了2006年剛進公司有一個半月的時間弄個雛型的web framework外,就屬這次近三週的時間再弄個新版的framework的時間是第二久(三週的時間也叫久,唉!)。照原定計劃使用了Struts2,這時讓我想到Ruby on Rails,發現它的普及度沒我想像的高,可是影響力卻比普及度還深遠。RoR倡導的Convention Over Configuration(約定優於配置)的觀念,已被多種新興架構所應用,如Struts2、Maven、Grails等。
以前Smalltalk觀念太先進,硬體速度沒法跟上,最後給Java獨領風騷,是一種的生不逢辰。而現在IT企業林立,一個先進的觀念被提出,但優先以這觀念實作出來的框架如RoR,並沒預期成為大多Developer的新寵,而大型IT企業或Open Source模仿更快,RoR獨享光環不久就馬上有了競爭對手。
其次,時序到廿世紀末,OOP架構已成熟穩定且擁有眾多Libraries和Developers,所以要Transfer到新觀念的架構,如從Struts 1到Struts 2成本其實不低。除非舊有的系統已沒有前瞻性可言,多家銀行業即便轉換成本再多,也要把COBOL的系統轉換成Java的系統。十年前說會AS/400的可以吃定銀行一輩子的言論如今看來已不合時宜。
這次也低估Struts2的上手難度,其實一直忽略了前端是我的罩門。但也不否認Struts2是個好Framework,但是Struts 1歷時悠久,該修的Bug幾乎都絕跡了,所以穩定度與普及度都高於Struts2。除非Struts 1也面臨像COBOL一樣再不會有前瞻性,在評估Struts 1升級到Struts 2是否有其必要性,見仁見智。而且一個新技術出來除了要備受考驗外,Developer再習於使用Struts 1後,是否能整個team跳脫既有觀念去理解新觀念,這需要多少時間成本也是未知。就像我開始學中文打字是用大易輸入法,再轉成倉頡後,花的時間比初學倉頡的人還要久。
留言列表