星期二, 12月 31, 2013

我的阿蛛

我的阿蛛,它一直住在我的房間裡,三不五時會出來嚇嚇我,也常常亂吐絲,讓我們走路的時候會沾到它的口水,但是我很愛它,每次都遠遠的看著它,偶而跟它拍拍照,跟它說說話…

clip_image001

但是,在 2013 年的最後一天,我洗完澡準備穿衣服,忽然發現有東西在我身上爬,我直覺的把那那東西甩開,用迅雷不及的右手邊的肥皂盒丟出去....阿....我的阿蛛中槍了 ><||..它全身萎縮,還有一隻腳在異處...

clip_image002

安息吧!我的阿蛛,我會想念你的..

TypeScript 相遇 (一)

一年前,微軟丟出了一個東西新東西 TypeScript, 當時看到 Anders Heijlsberg 的影片簡介,就對它相當有興趣,不過因為考量到新語言的一開始,通常都還一段不小的路要走,還有那時候也沒有多餘的時間,所以就一直放在的口袋名單之中。在兩三個星期前,微軟丟出了 TypeScript 0.9.5 beta 版本,也宣稱 1.0 也在開發者版本了,所以沒有啥好考慮的,直接開始使用了 ^^||

那 TypeScript 是什麼?引用官方網站的介紹
TypeScript is a language for application-scale JavaScript development.
TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.
上面這段,簡單的說,TypeScript 可以幫助程式設計師寫出系統層級的 JavaScript,TypeScript 是一個有型別的語言,編譯後可以轉出一般的 JavaScript,也可以跑在任何的環境以及瀏覽器。光這幾句話,就讓 Bibby 很心動了,有很多的亮點,大家有跟我一樣內心內心雀躍嗎? XD

當然學一個新東西,一定要上網 Google 一下有沒有相似的產品,畢竟太陽底下沒有新鮮事,要投入前一定要評估一下的,首先我們看看底下另一個東東..

Dart 這是 2011 年年底,由 goolge 丟出來的東西,看起來跟微軟的 TypeScript 很像,可以用 OO 的方式寫 JavaScript,也是有型別的概念,然後經過 Dart Editor 的編譯轉出 js 檔,Bibby 我很大概大概的看一下玩一下,語法真的很像 C#,想玩的可以先去 http://try.dartlang.org/ 線上編輯器玩玩

接下來,很簡單很粗略的比較一下兩者,比較後,TypeScript 就是我決定的嬪妃語言,Bibby 我把為啥選用 TypeScript 而沒有選 Dart 的理由列出來
  • 原生的 JavaScript 丟到 TypeScript 是支援的
    1. 代表如果之前有寫好的 Code,就不需要修改也可以被編譯
    2. 網路上滿山滿谷的 JavaScript Library 還是可以拿來用
  • 原生的 JavaScript 來設計 TypeScript 語法
    1. 會 JavaScript,學 TypeScript 沒有啥學習曲線(不過 OO 的觀念就?)
    2. 語法照著 ECMAScript 6 脈絡的方式設計,所以一次學兩個新東西 XD
    3. 寫起來還是感覺像 JavaScript

當然這些只是 Bibby 從語法還有官方文件看完的一些心得比較,實際上要去寫過後,才能有更深入更多的心得感想來分享,但是有人一定會問說,幹麻不直接寫 JavaScript,用這些有的沒有的最後還不是要轉成 JavaScript,這時候當然就是要當個理由伯,為啥多了薄薄一層隔山打牛的 fu 說出來 XD
  • 強型別
    1. 我可以在「編譯」時就可以知道我程式寫錯了
    2. Refactor 更簡單,因為原來在寫 JavaScript 編輯器都是用猜的方式來處理的,有了強型別每個變數跟 Method 連結更強烈
  • OO 寫程式
    1. 不是說原生的 JavaScript 的不能用 OO 來寫程式,而是 Bibby 我覺的用原生的 JavaScript 來寫 OO 好辛苦阿!因該是 Bibby 自己的問題 X
  • 模組化
    1. 原生的也可以分門別類的模組化,之前 Bibby 寫的 JavaScript 也都拆開來,但是由 Visual Studio 來處理這一塊簡單很
    1. 產出來的 JavaScript 超美麗,是之前 Bibby 想要寫出來的,只是能力不夠,寫不出來 XD
    2. 效能也更好,因為型別對了,JavaScript Engine 不需要幫你默默做些苦工(ex:轉型)

來結論一下,TypeScript 目前看起來還真不錯,但是現在還是 Beta 版,不算是成熟的東西,要用在正式的產品上,是有風險的,好消息是 Release 版應該快出來了,應該可以期待一下,投入一個語言的學習,是需要時間的投資,接下來 Bibby 我會陸續分享關於 TypeScript 的語法及心得,讓對 TypeScript 有興趣的人,可以有一些心得可以參考,一起努力吧!

參考:
http://www.typescriptlang.org/
http://blogs.msdn.com/b/ericsk/archive/2012/10/02/quick-look-on-typescript.aspx
https://www.dartlang.org/
https://code.google.com/p/dart/
http://zh.wikipedia.org/wiki/Dart
http://en.wikipedia.org/wiki/ECMAScript