Go 程式設計系列 (1):簡介

即將跳轉至新頁面,或自行前往這裡。 Go 語言,也稱為 Golang,是一個靜態型別的 (statically-typed) 通用型 (general-purpose) 編譯 (compiled) 程式語言,由 Google 公同主導開發。Go 最早於 2009 年問世,對於程式語言來說,算是相當年輕,但 Go 已經吸引許多來自全世界的開發者的目光;Ruby 創造者松本行弘曾說過,一個程式語言生態圈至少要十年才能有成,但 Go 在短短不到十年間於程式語言排名中已名列前矛,像是獲得 TIOBE 2016 年最佳語言等。雖然國內對於 Go 的專書尚少,但國外已經有相當多的學習資料。筆者將於這個系列的文章中介紹 Go 語言。 Go 語言的核心開發者 Rob Pike 曾撰文介紹 Go 設...
「點我閱讀更多」

Go (golang) 是否該支援泛型?

「Go (golang) 應該要有泛型 (generics)」,這大概是 Go 社群最常拿出來炮的一個議題。筆者有訂閱 Go 社群發行的電子報,也有在推特 (Twitter) 上追蹤 Go 的社群動態,這個議題每隔一陣子就會看到某個部落客發文 (編按:就像我們這篇),或是某個開發者又造出某個非官方的輪子,Go 社群對這個議題的態度不言自明。最近 Go 發布了 2.0 版本的 roadmap,又讓大家燃起一線生機,是否能利用大版本更新的時候將泛型做為 Go 回饋社群的一份大禮呢? 撰寫泛型程式時,程式設計者不需要預先指明程式的型別,而可以待後續呼叫該程式碼再宣告型別。動態型別 (dynamically-typed) 的語言,例如 Python、Ruby、PHP、Perl 等,不需要泛型...
「點我閱讀更多」

Cloud 9 IDE 簡介

前一陣子看到有網友在問 Cloud 9 是什麼、如何使用等議題,剛好筆者使用過一陣子這套軟體,而且是付費會員,筆者就自身的經驗來說明 Cloud 9 的使用相關議題,給需要的讀者做一個參考。 [Update on 2017/12/19] Cloud 9 後來被 Amazon 併購了,舊版的 Cloud 9 帳號已經停止申請,筆者目前的使用經驗主要是基於舊版的 Cloud 9,待筆者將環境轉換到新版後再更新本文。 大體來說,Cloud 9 是一個雲端整合式開發環境 (IDE),透過瀏覽器即可操作,不需額外安裝軟體。通常只要版本夠新的主流瀏覽器都可以支援,筆者本身是透過 Google Chrome 操作 Cloud 9,其他的瀏覽器,像是 Firefox、Safari 或 Opera 應...
「點我閱讀更多」

程式設計師的工具箱

程式設計師會用到那些工具呢?筆者就自己的經驗,分享一些程式設計師可能會用到的工具,供有需要的學習者一些可參考的方向。 系統程式語言 (system language):這些工具給我們足夠低階的操作,像是記憶體管理等。傳統上,這個領域是由 C 主宰,有許多人會使用 C++。一些比較新興的替代方案包括 D 或 Rust 等。 應用程式語言 (application language):這些工具在效能在易用性上達到一個平衡點。大部分的人會從 Java 或 C# 中擇一,有一些人仍然會使用 C++。Go 則是另一個近年來熱門的新興方案。 腳本語言 (scripting language):這些工具易學易用,雖然速度沒有前兩者來得快,但一般使用情境下也足夠了。一些典型的實例包括 ...
「點我閱讀更多」

適合初學者的小型專題

前一陣子,在某個程式設計討論區上,看到有網友在討論不知道在學完程式語言後,可以寫什樣的專案 (project) 來增進自己的功力。的確,在學習程式設計一段時間後,會碰到這樣的困擾。由於這種針對進階初學者的書較難掌握讀者的程度,實際上這種書也比較少。對於進階初學者來說,一下子跳進去看 GitHub 或其他站台的中大型專案又難度過高,要在茫茫大海中找到適合自己程度的專案也不容易。筆者提出一些個人的見解,供有需要的網友參考。 其實,選擇專案沒有那麼困難,從使用者的角度來思考即可。首先,可以思考一般使用者 (end user) 會使用的軟體 (software) 類型,再從中選擇即可。一般使用者會使用到的軟體類型如下: 命令列工具 (command line utility) 桌...
「點我閱讀更多」