Angular Dart 筆記(1) 選擇

        在開始之前一定會被問的問題,為什麼是Dart?為什麼是Angular?我只能說其實看過不同的框架與評論之後,一定會發現其實每個框架各有自己的優缺點,光看別人說明,是很難體會得到的,只有自己去實作,才能了解,阿...原來別人說的問題是這個意思,原來這就是別人口中的那個坑,這些不自己去體會,聽別人說,是無法了解其中的價值與意義的,所以我選擇了Angular Dart嗎?不...我只是因為喜歡而嘗試看看罷了,說不定未來需求變了,我就換玩別的技術也不一定。

       當然選擇Angular Dart也是有自己的理由的,我需要一個比JavaScript更好的語言,寫過Java再去寫JavaScript是一件非常痛苦的事情,所以目標會放在Dart與TypeScript,當然還有很多其他語言,不過這邊只討論自己有興趣且觀察比較久的兩個語言,理論上來說TypeScript就符合我的需求了,所以其實是一直很想用TypeScript的,又是Angular 2預設官方語言,再加上Dart總總消息之前都很不利(ex:VM 不整進Chrome、Angular Dart是用TypeScript版本去轉過來的,當然現在是純Dart去寫),讓人覺得Dart會不會又是曇花一現?但沒想到在諸多打擊之下,Dart卻一直有在成長,有自己的AngularMaterial Design Component,而Google自家也有 AdWords and AdSense選擇了Dart,他們的前身都是使用GWT,而Mobile方面也有Flutter這美麗的願景,也是個能直接用在Server端的語言,未來性非常令人期待。

       TypeScript優點就是有型別的保護跟自動完成(autocomplete),大大減少了型別錯誤與打錯字的問題,更重要的是如果修改模組,就會有錯誤提示告訴你哪裡沒改到,如果是JavaScript沒有每個地方都去測誰敢真的證明沒改壞?當然使用TypeScript感覺起來像JavaScript外輕輕包了一層,讓他更好用了,整體感覺比Dart輕許多,這也是現階段TypeScript比Dart流行的原因,當然Dart當初的走向就是走高風險、高報酬的路線,那麼TypeScript的問題是甚麼呢?老實說我自己用的時候並沒有體會出來,但有拿來長期做專案的前輩說出了問題點,工具鏈的穩定性與向下相容性不佳,前輩可能比較害羞,寫完問題後就自己刪掉了,不過在網路上也有找到類似的論點,而Dart本身強大的可選型別配上statically analyze,寫錯馬上會被工具提醒,新的strong mode也提供更多型別的檢查,加上本身穩定工具鏈與向下相容性,不衝一下好像對不起自己?

       JavaScript的問題其實也看出了,統一與規範的問題,就是速度太慢了,連JavaScript界自己都受不了,一堆工具都在走讓你可以用未來的JavaScript(ES6、ES7),來開發,要發布時再幫你轉成ES5,既然如此為何不投資更方便的語言,相容性的問題就丟給該語言的維護者去煩惱,我們只要專心在開發我們想要的東西上就好,這也是Dart目前主力在喊得點,更好開發、更好維護,這些是不是事實呢?等我測試完再跟大家分享吧!

        最後其實寫筆記是很麻煩的事情,但每次學東西之前就會覺得好難一定要寫筆記,學完之後就會覺得這好簡單,有需要寫嗎?的問題之中,期待這次邊玩邊筆記,可以加深自己的理解外,也可以讓之後要學習的人參考。

        在發布這篇文章之前,公司的前輩分享了vue.js,有可能未來公司會用vue.js ,雖然不會影響到我,但也提出來給各位思考,如果本身不是技術決策者,也需要好好思考公司整體的技術走向,雖然不同的框架思維跟架構都相似(Componet、Routing),理解了一種後要上手其他框架也不是難事,但還是有不同的細節需要花時間去理解,這些都需要去衡量。

留言