在此次项目开发中,由于是基于Deja-dup进行开发,而Deja-dup使用Vala语言。因而不得不学习了一下vala。在这里总结一下,方便其他有需要的人。
关于Glib&GObject:
GLib是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。它能够在类UNIX的操作系统平台(如LINUX, HP-UNIX等),WINDOWS,OS2和BeOS等操作系统台上运行。Glib提供一系列常用的、标准的C语言结构以及功能函数。例如链表、字符串、树等等。
简单的说,GObject对象系统是一个建立在GLIB基础上的,用C语言完成的,具有跨平台特色的、灵活的、可扩展的、非常容易映射到其它语言的面向对象的框架。利用Gobject,你可以使用面向对象的思想进行程序开发,而不必专门去学习一门面向对象的语言。然而
GObject的代码不太直观,类似链表而不是树形结构,而且代码较冗长,通常一个很小的功能却要上百行的代码。
Vala:
Vala