Vala是一门面向对象的编程语言,由自举(英语:Self-hosting_(compilers))编译器产生C语言代码和使用GObject系统,允许在Gnome运行时库的基础上使用一些现代的编程技巧。通过使用GLib和GObject,Vala提供了动态类型系统和补助内存管理的功能。
1、语法兼容C#和Java,表达能力强,生产力高
有C#/Java 的强大表达能力,又有原生编译的性能和速度,更有接地气的独特特性;
面向 Java 开发者的Vala 特性介绍 面向 C# 开发者的 Vala 特性介绍
2、内存所有权和使用引用计数管理,内存使用安全无烦恼
3、支持接口:支持抽象接口,也支持接口实现
接口实现类似于PHP traits 和 JavaScript 的mixin的功能;
4、点分名字空间支持大型应用开发
在 DBKangaroo 应用中,已经用 Vala 开发了300个源码模块,还有 Vala 编译器就是一个最典型的大型应用;
5、语言级别的正则表达式支持
正则表达式给予了开发者强大的力量,在代码中无处不在,越用越熟练。
顺便推荐好工具: https://regex101.com/
6、有C的速度和良好的互操作性支持
可以生成C头文件和C代码并获得全平台支持,也可以Vala与C混合编译。
7、强大且成熟的类库支持(官方支持约250个库)
基于GLib的强大类库体系,有工业级成熟度的各种库和GUI框架。
默认基于 GObject 的对象系统,也支持构建自己的单根对象体系。
8、有丰富且完善的文档支持(valadoc.org)也有大量开源项目可供参考学习
9、有多种语言服务器【LSP】实现,支持各种编辑器和IDE
https://gitlab.gnome.org/esodan/gvls
https://github.com/benwaffle/vala-language-server
10、Gnome 和 Elementary OS官方语言,并获得IBM公司研究机构采用
有大型机构和大公司采用 Vala 能给予普通开发者更大的信心加持,相信有更多开发者成为 Vala 语言用户;
集成开发环境(IDE):
Visual Studio Code(Extension: Vala Code / Vala Language Client + Vala Grammar)
GNOME_Builder
一个简单的“Hello world”程序:
void main () { print ("Hello World\n");}