Perl 6 小感

Perl 6 是 Perl 家族的新成員,在 2015 年十二月發布了第一個正式版 (v6.c),代表其語言特性大抵上穩定了下來。在今年年初開始,陸續有數本 Perl 6 相關的書籍問世,代表 Perl 6 社群開始試著向外拓展。筆者最近利用一些時間學習 Perl 6 的核心特性,在此向各位讀者分享一些心得,做為使用 Perl 6 的參考。 The Good Perl 6 最值得稱許的特性,就是內建一套完整的物件系統。原先 Perl 5 的物件系統相對簡單,有許多開發者試圖改善 Perl 5 的物件系統,反而造成 Perl 5 物件系統的混亂局面,直到引入 Moose 後,Perl 5 才有一個社群公認的物件系統。Perl 6 的物件系統支援不少特性,像是封裝、繼承、Role (類...
「點我閱讀更多」

[公告] 網站更名

即日起,本站站名從 Happy Computing 改名為 Michael Talks,除了原先介紹電腦方面的文章外,也會增加一些對電腦科技或其他方面事物的個人意見。 筆者在撰寫一段時間的部落格後,發現電腦技術的變動實在太快,尤其是一些函式庫的 API,一陣子就會不太一樣。另外,英文的資料其實已經相當豐富,如果對於每一樣新技術都要寫成部落格文章,以筆者個人之力其實時間也不允許。所以,筆者將部落格文章的方向改變,以介紹加上評論的方向來撰寫文章。 筆者在學習一段時間的電腦以後,發現電腦技術推陳出新,以個人的力量,其實是追不完的;就像是網路上很有名的一篇部落格文章「You Can’t Learn Everything.」。我們不僅僅要花費時間學習這些技術,還要撰寫程式、維護現有程式、管理...
「點我閱讀更多」

簡明重現範例的重要性

SSCCE (Short, Self Contained, Compilable, Example) 是指能夠展示某個概念的簡單範例,筆者暫且稱之為簡明重現範例。在程式設計討論區,程式碼也是用來溝通的一環;然而,筆者在一些程式設計討論區,時常看到不良的反例,往往都是因為撰文者缺乏 SSCCE 的概念。筆者有感而發,因而撰寫這篇文章,希望對於程式設計學習者有所幫助。 有些程式設計初學者可能真的不知道如何撰文,只寫了一些關於自己如何操作電腦等模糊的敘述,有時候還會帶有一些情緒的字眼,像是「很急」、「救救我」等,文章中完全沒有任何可用的程式碼。說實在的,由於幾乎沒有可用的線索,即使想幫忙,也沒有未卜先知的能力。最後這種文章通常得不到什麼有意義的結果。 有些撰文者很天真地貼了某個部落格文章...
「點我閱讀更多」

[公告] 文章遷移

讀者或許已經發現本站有幾篇文章會跳轉到新站台。這是因為筆者最近試用了一陣子 Hugo 後,決定將一些長篇的教學文章搬移到新站台。筆者在這裡說明我們的想法。 原先筆者一直都是用 Jekyll 撰寫部落格。但是,Jekyll 比較適合純部落格,對於其他類型的站台,就相對不適合,像是筆者必需額外增加導引的按鈕。筆者最近試用 Hugo 後,覺得 Hugo 比 Jekyll 適合做為一個通用的 CMS 替代品,因此,決定慢慢將一些文章轉過去。這個部落格仍然會繼續營運,但僅用於發布單篇文章。但筆者目前新網站還在試行中,待一陣子才會確定是否要繼續採用 Hugo,這段搬遷時間請讀者見諒。
「點我閱讀更多」

Go 程式設計系列 (2):使用情境

即將跳轉至新頁面,或自行前往這裡。 在上一篇文章中,我們簡單地介紹 Go 的特性,相信讀者已經對 Go 有一些初步的了解。接下來,筆者會在本篇文章中討論 Go 的長短處以及 Go 的使用情境等,讓讀者可以進一步考量是否要在下一個專案中使用 Go,畢竟,當專案成長到成千上萬行的程式碼後,重寫的代價是相當可觀的。 首先,筆者要提醒各位讀者,雖然 Go 語言相當簡潔易學,寫起來近於腳本語言,但 Go 語言並不是完美無缺的;Go 語言刻意地在語法機制上保持簡單化、最小化,反而缺乏許多現代語言常見的特性,筆者列出一些實例: 缺乏泛型 (generics),這是最常討論的議題,詳見此文 缺乏函式重載 (function overloading) 缺乏運算子重載 (operato...
「點我閱讀更多」