前言
做為一個小眾的語言,Vala 在網路上的資料相對稀少。Apress 所出版的 Introducing Vala Programming 可說是世界上第一本有關 Vala 的實體書籍。本文會帶著讀者來看一下這本書的內容。
本書綱要
本書包含以下內容:
- 介紹 Vala 的設計理念
- 建置 Vala 開發環境
- 說明 Vala 的基本語法
- 以 Vala 撰寫物件導向程式
- 以 Vala 撰寫網路程式
- 使用 GTK+ 寫圖形介面程式
- 使用 DBus 撰寫多行程程式
- 使用 GNU/Linux 相關功能
- 和 C 語言互動
以一本約 250 頁左右的小書來說,有這樣的內容算是相當豐富。此外,Apress 很大方地在 GitHub 上分享這本書的範例程式碼,讓讀者易於追蹤範例程式碼。
內容介紹
程式設計書籍一開始總要先介紹這個語言的優點,好讓人有繼續學下去的動力。以 Vala 來說,Vala 除了在語法上刻意師法 C# 外,Vala 程式碼會先轉譯成等效的 C 程式碼,然後再編譯成執行檔。所以 Vala 兼具高階特性和運行效能。
接著,開始建置 Vala 開發環境。除了 Vala 編譯器外,還要裝 C 編譯器和整套 GTK+ 函式庫。因為 Vala 程式基本上都會相依於 GTK+ 相關函式庫,至少有 GLib 和 GObject。所幸,在 Windows、macOS、GNU/Linux 等系統上都可以安裝這些開發工具。
本書花了兩個章節,快速地介紹 Vala 的核心語法。由於 Vala 在語法上刻意師法 C#,先前學過 Java 或 C# 的程式人,應該很快就可以上手 Vala。
接著,本書以四個範例來介紹如何以 Vala 寫網路程式。從低階的 socket 程式到高階的 HTTP client 都有。每個範例的長度都蠻短的,算是展示 API 如何使用。
GTK+ 程式設計應該算是 Vala 的精華,本章反而採用一個較長的範例來說明。以範例程式來說,該範例有點太長了,不容易彰顯 GTK+ 程式的基本架構。所幸 Apress 有提供完整範例檔,我們可以慢慢追蹤。
DBus 是 GNU/Linux 系統上常見的系統間溝通 (IPC) 機制,在 GNOME 和 KDE 等桌面環境皆有提供。本章各展示一個 DBus client 和一個 DBus server,兩者間可相互溝通。
接著,本書介紹 Vala 在 GNU/Linux 上特有的功能。由於 Vala 專案本意就是用來開發 GTK+ 程式,有 GNU/Linux 特有的功能並不奇怪。但本章限於篇幅,只有簡單地介紹其中幾項功能。
由於 Vala 是小眾語言,純 Vala 的函式庫很少,用 C 生態圈龐大的函式庫來補充其不足就顯得相當重要。因此,在本書的最後一章介紹如何讓 Vala 和 C 互動,像是用 Vala 寫 C 函式庫的 binding 等。對 C 有基本概念再來看本章比較不會感到過於吃力。
評語
實體書籍的出現,對於推廣新興語言來說相當重要。雖然 Vala 是小眾語言,Apress 仍然很有勇氣地出了這本書。然而,以 250 頁的篇幅來說,又要講語法,又要講應用,其實篇幅有點太少了。在數個章節都可以看得出來內容過短。或許這本書算是 Apress 在省預算的考量下試水溫的小品吧。