[Raku] 程式設計教學:簡介

【分享本文】
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

    Perl 家族語言

    Perl 家族有兩個語言,一個是廣為人知的 Perl (Perl 5),一個則是相對較不知名的 Raku。原本 Raku 叫做 Perl 6,最近剛換名字,目前 (西元 2019 年 10 月) 還在轉換期 (參考這裡)。

    掃除 Perl 的歷史包袱

    Raku 的出現,是為了修改 Perl 的一些歷史議題。由於 Perl 已經在許多系統中廣泛使用,直接修改 Perl 而造成語法不相容的話,對 Perl 社群的傷害相當大。因此,Raku 從頭開始設計,和 Perl 在語法上有相當的差異,可視為一個全新的語言。

    同時間,Perl 仍然持續維護著。一些在 Raku 所發展出來的的特性或概念又回頭影響 Perl,像 Moose 物件系統等。

    Raku 的發展

    在 2015 年十二月後,Raku 發布第一個正式版本 (v6.c),語法特性大抵上可說是穩定下來了。不過,觀察 Raku 的套件可以發現,Raku 目前的社群套件仍然相當薄弱,離實用還有一大段路要走。目前暫時的解決方式是使用 Perl 相容模式,直接引用 Perl 套件;另外,也可以從 Raku 引用 C、C++、Python 等語言的套件。

    Raku 的學習資源

    先前 Raku 本身尚不穩定,很難將 Raku 用在實際的情境中。隨著 Raku 的語法穩定下來,Raku 社群開始嘗試推廣 Raku。例如,最近出現了一些 Raku (當時仍為 Perl 6) 的新書,像是 (順序無特別意義):

    • Perl 6 at a Glance, DeepText, 2017 (獨立出版)
    • Think Perl 6, O’Reilly, 2017
    • Learning Perl 6, O’Reilly, 2018
    • Perl 6 Fundamentals, Apress, 2017
    • Perl 6 Deep Dive, Packt, 2017

    如果觀察一下這些書籍的內容,可發現這些書籍多集中在討論 Raku 語法本身,對於實際的應用層面則較少提及。某種程度上,這也反映了 Raku 社群的現況。

    雖然 Raku 官網也有一些 Raku 的資料,這些資料的風格較接近參考指引 (reference),充滿許多細節,相對不易閱讀。此外,比起先前所列的英文資料,中文資料就更少了。有鑑於此,筆者開始撰寫 Raku 的教學文件,希望能達到拋磚引玉的效果。

    本系列文章的方向

    由於 Raku 的語法特性相當豐富,如果要一股腦地全部記起來,反而容易迷失在細節中。Raku 也有 Perl 家族的特性,有時候在語法特性太過頭了,提供過多冗餘的語法;其實,即使僅學習其中一部分的 Raku 語法,就可以開始撰寫程式了。

    在這份教學文件中,我們不會羅列所有 Raku 的特性,而會擷取較適合初學者的部分,以漸近性的方式介紹 Raku;待熟悉 Raku 以後,再慢慢學習其他部分即可。

    【分享本文】
    Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email
    【追蹤新文章】
    Facebook Twitter Plurk