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語言要寬鬆很多)。

基本介紹

  • 外文名:Vala
  • 類別:程式語言
  • 基於系統:GNOME的GObject
  • 特點:迷你型的解析器
  • 功能:對象回收
  • 優點:提供更多確定的實時行為
安裝,編譯,小程式,小問題解決,線上幫助,

安裝

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 房間直接提問。

相關詞條

熱門詞條

聯絡我們