#Vala

Vala使用体验

Published at January 8, 2018 ·  2 min read

前段时间用vala开发了一个很小的程序,体验了一把vala的使用,网上关于vala的文章比较少,所以写一篇博客,如果你有相同的使用经验可以交流下.  根据百度百科的解释,vala是一种新的、为GNOME开发者提供的具有现代化编程语言功能的一种编程语言。Vala是一种和C#极度类似的语言。  众所周知,C是一门古老而落后的语言,虽然由于历史原因,大量的操作系统底层仍然在使用C(毕竟最早写底层的那批人早就退休甚至不在人世了,谁又愿意没事找事去重构呢.不过,还别说,Google就在干这种事,开发全新的操作系统),但并不适用于大型项目和协作开发.尽管Linux的作者Linus极度憎恨C++这样的面向对象的语言,并拒绝C++在Linux内核的使用.但是,Linux的其它开发者也心知肚明,C并不是一切,并且在Linux的各个方面大量使用C++和面向对象的开发模式.知名的KDE桌面就是基于QT来构建的,而QT是对C++的一个扩展,Linux上的大部分可用的应用都是基于QT来构建的,而另一个桌面环境Gnome则使用了GTK绑定,同时也大量使用了面向对象的特性和组件,比如Gobject,Vala.Vala的一个重要使用场景就是Gnome环境的GUI开发.  Vala语言的主要特点:支持lambda表达式;支持对象反射与内省;使用引用计数进行内存管理,计数嵌入在对象内;使用Glib和Gobject的主循环、事件回调系统。 安装  在Ubuntu/Debian下安装很简单,使用命令sudo apt-get install valac,测试valac编译器的版本号,可以输入valac –version命令。 我现在使用的是0.36版本,最新版本应该是0.40 Beta. HelloWorld程序 class Demo.HelloWorld : GLib.Object { public static int main(string[] args) { stdout.printf("Hello, World\n"); return 0; } } 其实在Vala里,类并不是必须的.类名和文件名并不需要一致,并且一个类里允许多个类. 编译运行 编译这个程序使用命令valac hello.vala,编译成功之后生成hello这个可执行程序,运行这个程序,输入结果为: Hello, World Vala一个比较有趣的地方就是可以直接从Vala源码编译成C源码,比如上面的代码可以使用如下的命令编译成C源码 valac -C ./hello.vala 生成的C源码如下: /* hello.c generated by valac 0.36.5, the Vala compiler * generated from hello.vala, do not modify */ #include <glib.h> #include <glib-object.h> #include <stdlib....