Open
Description
目前為止已經學習過數個程式語言,在學習不同程式語言時,可以學到不同的技術、沒學過的概念、產生新的想法。
花了許多時間的有:
- C:我一開始學習的語言,建立一開始對程式設計的概念
- C++:體會到 Template 的強大,以及在後來的 C++11、C++14 中見到 Ownership 的概念,還有相關的編譯器優化(例如 RVO)
- Python:體會極度 OO 的程式語言,以及動態語言的便利性和效能上的損失
- Rust:體會到 Ownership 廣泛運用到語言設計中,藉此達到不用 GC 的 Memory Safety,以及像似於 Haskell Typeclass 的 Rust Trait 的方便性
稍微嘗試過,但花的時間不多,沒有鑽很久的:
- Common Lisp:曾經因為修課關係有花點時間接觸,第一次接觸到 S-expression
- Prolog:曾經因為修課關係有花點時間接觸,對於撰寫和思維上有很不一樣的體會
- JavaScript:因為開發網頁而有接觸(jQuery、AngularJS 等),但是撰寫的時間不長
- PHP:因為網站開發及維護的工作而有接觸,但是撰寫的時間不長
預計 2017 年要學習的:
- Erlang:由於其使用的領域,好奇對於 Concurrency 相關的設計是否有其獨到之處可以學習
- Haskell:為函數式程式語言中廣為使用案例,應該可以從中學習到許多不同的概念及想法
- Coq:出自於法國的 INRIA,在 Formal Verification 中經常使用的語言,對於該領與我目前接觸不多,想多碰碰
- OCaml:出自於法國的 INRIA,為 ML 家族的程式語言,為函數式程式語言中特別講求效能者,想研究其設計(目前也沒有接觸過 ML 家族)
- Idris:打著 Dependent Type 及和 Agda 相似的 Type System,好奇語言內有哪些不一樣的特色