我是Vala的新手。我不熟悉GObject。据我了解,GObject脱离了GNOME的GLib项目。如我错了请纠正我。Vala可以在没有GObject的情况下使用吗?
我喜欢瓦拉的语法和实施非常多,但它不是我的意图写的GNOME桌面应用程序。
我也知道(我想我知道)Vala除了GObject本身没有标准库。
所以我的问题是:Vala可以在没有GObject的情况下使用,如果可以的话,它是否可用(是否有最佳和维护的基本库,用于类型转换,数学,字符串操作,缓冲区等常见事情...可用)?
我是Vala的新手。我不熟悉GObject。据我了解,GObject脱离了GNOME的GLib项目。如我错了请纠正我。Vala可以在没有GObject的情况下使用吗?
我喜欢瓦拉的语法和实施非常多,但它不是我的意图写的GNOME桌面应用程序。
我也知道(我想我知道)Vala除了GObject本身没有标准库。
所以我的问题是:Vala可以在没有GObject的情况下使用,如果可以的话,它是否可用(是否有最佳和维护的基本库,用于类型转换,数学,字符串操作,缓冲区等常见事情...可用)?
这是另一个配置文件,您可以使用Aroop。 (注意它仍处于重大的发展阶段)。我希望如果你需要高性能,这是好事。请检查features here。
TLDR:我建议使用瓦拉用的GLib/GObject的,因为它被设计在它们上面。
虽然可以存在用于华劣克替代型材它们或者是未完成或弃用。
瓦拉整点是减少样板的写GLib的和GTK +应用中C.所需的量
它也增加了对C一些很好的其它改进,如串和阵列是简单的数据类型,而不是容易出错的指针。
它主要包装中存在的所有的GObject的概念,如:
所有这些概念可以在不使用的GObject/GLib的/吉奥实现,但是这将意味着从根本上改写的GObject/GLib库/吉奥,这没有多大意义。
如果你不想写GUI应用程序的GLib可以用来编写控制台应用程序以及使用GIO或GTK +是瓦拉可选,应用无头服务器上正常工作。
我认为,即使是在Qt的一些努力,最终切换到GLib的主循环,这将使Qt和GLib中的互操作性更容易。
使用GLib的一个框架的一个很好的例子是其中的GStreamer跨不同桌面环境使用。
总结:
GTK +最初来自GIMP,后来被分成了今天GNOME基础的不同“G”库。
Vala还具有非常强大的绑定机制,可以轻松为任何类型的C库编写所谓的“VAPI”文件。
使用正确的VAPI绑定,您不必担心手动内存管理,指针,字符串和数组的零终止以及其他一些繁琐的操作,这些操作使编写正确的C代码变得非常困难。
GObject框架未绑定到gnome桌面环境。您几乎可以在任何形式的Linux上甚至在Windows上使用GObject库。 – Mindbane 2012-03-13 20:07:20