vala

vala

Vala是一種新的程式語言,其目標是為GNOME開發者提供現代化的程式語言功能,同時沒有額外的運行時要求,並且相對於C語言編寫的應用程式和庫,無需使用不同的ABI。Vala是基於GNOME的GObject系統,提供了那種你期望的類功能。與Scala一樣,在語言級別上,它具有與Java Beans的get*()和set*()等同的屬性,但是,對於屬性更改通知和監聽器(listener),它也能夠提供了語言級別上的支持。它不具備很強的XML處理能力,只是一個迷你型的解析器,不過看起來它的確具有很好的Unicode功能(字元串為UTF-8,string.getch()可返回16位的unichar字元。)在功能級別上,Vala與Java最大的不同之處應該是對象回收(de-allocation)的引用計數系統(reference-counting),相對於Java的GC,這一系統能夠提供更多確定的實時行為,不過也為某些編程錯誤打開了一扇窗戶。在這個時代,Vala的另一個古怪之處在於,對於陣列訪問不進行邊界檢查,所以它比Java對規則的要求更為嚴格(不過可以推測,比C語言要寬鬆很多)。

基本信息

安裝

Ubuntu 12.04 LTS 下:

sudo add-apt-repository ppa:vala-team/ppa

sudo apt-get update

sudo apt-fast install valac valide

編譯

Vala使用類似C#的語法,編譯過程是先轉換成C源碼,然後使用標準的C編譯器,生成二進制執行檔案,這樣編譯出的檔案,執行速度飛快。同時,這樣的編譯過程,對系統的編譯環境要求很低,只要你的系統自帶了C編譯環境(這對於幾乎任何系統都不成問題)。

小程式

public class Main{ public static int main (string[] args) { #if VALA_0_12 print("Hello World~~0.12\n"); #else print("Hello World~~0.10\n"); #endif return 0; }}

vala@ubuntu:~/code$ cat ttt.vala

using Gtk;

int main (string[] args) {

Gtk.init (ref args);

var window = new Window(Gtk.WindowType.TOPLEVEL);

window.title = "First GTK+ Program";

window.set_default_size (300, 50);

window.position = WindowPosition.CENTER;

window.destroy.connect (Gtk.main_quit);

var button = new Button.with_label ("Click me!");

button.clicked.connect (() => {

button.label = "Thank you";

window.add (button);

window.show_all ();

Gtk.main ();

return 0;

}

編譯命令: valac --pkg gtk+-2.0 ttt.vala

運行的結果 運行的結果

小問題解決

1、選擇版本sudo update-alternatives --config valac

2、解決0.12版本GEE不能編譯的問題

sudo cp /usr/share/vala-0.10/vapi/gee-1.0.vapi /usr/share/vala-0.12/vapi/gee-1.0.vapi

3、解決編譯WebKits找不到H檔案的問題

基本上都是少了DEV庫,安裝:

sudo apt-get install libwebkitgtk-dev

線上幫助

標準的文檔不多,但基本在 valadoc dot org 均可很方便的搜尋到。遇到編程問題,可以加入官方的郵件列表提問,或者加入 freenode dot net/#vala 房間直接提問。

相關詞條

相關搜尋

熱門詞條

聯絡我們