Vala是一種新的編程語言,其目標是為GNOME開發(fā)者提供現(xiàn)代化的編程語言功能,同時沒有額外的運行時要求,并且相對于C語言編寫的應用程序和庫,無需使用不同的ABI。Vala是基于GNOME的GObject系統(tǒng),提供了那種你期望的類功能。與Scala一樣,在語言級別上,它具有與Java Beans的get*()和set*()等同的屬性,但是,對于屬性更改通知和監(jiān)聽器(listener),它也能夠提供了語言級別上的支持。它不具備很強的XML處理能力,只是一個迷你型的解析器,不過看起來它的確具有很好的Unicode功能(字符串為UTF-8,string.getch()可返回16位的unichar字符。)在功能級別上,Vala與Java最大的不同之處應該是對象回收(de-allocation)的引用計數(shù)系統(tǒng)(reference-counting),相對于Java的GC,這一系統(tǒng)能夠提供更多確定的實時行為,不過也為某些編程錯誤打開了一扇窗戶。在這個時代,Vala的另一個古怪之處在于,對于陣列訪問不進行邊界檢查,所以它比Java對規(guī)則的要求更為嚴格(不過可以推測,比C語言要寬松很多)。
| 外文名稱 | Vala | 類別 | 編程語言 |
|---|---|---|---|
| 基于系統(tǒng) | GNOME的GObject | 特點 | 迷你型的解析器 |
| 功能 | 對象回收 | 優(yōu)點 | 提供更多確定的實時行為 |
Cononical同時維護兩個獨立的Unity版本,包括Unity和Unity 2D,兩者的用戶界面在視覺上幾乎沒有區(qū)別,但技術和實現(xiàn)方式是不同的。
Unity作為Compiz的插件,是使用C++和Vala編程語言實現(xiàn)的,并使用了不常用的Nux的OpenGL工具包。作為Compiz的一個插件,Unity的GPU加速性能可以廣泛支持不同的硬件體系。
Unity 2D是一組單獨的應用程序,采用Qt框架構建圖形用戶界面語言QML來實現(xiàn)。 Unity 2D默認情況下,使用Metacity的窗口管理器,但也可以使用加速的窗口管理器,如 Compiz 或 KWin。 在Ubuntu 11.10上,Unity 2D使用了基于Xrender合成器的Metacity實現(xiàn)透明效果。從Ubuntu的11.10起,Unity 2D取代了經(jīng)典的GNOME面板,提供給不能運行的Compiz的硬件系統(tǒng)。
2012年10月發(fā)布的Ubuntu 12.10不再包含Unity 2D,因為3D版已經(jīng)能夠更好地支持低配置的硬件系統(tǒng)。