Vala (http://live.gnome.org/Vala) - "Vala is a new programming language that aims to bring modern programming language features to GNOME developers without imposing any additional runtime requirements and without using a different ABI compared to applications and libraries written in C."
In short - C# syntax, C speed, and no additional runtime components for the user to install. Vala works by translating .vala into .c (with gobject integration) and compiling that.
Current release is 0.7.3, 1.0.0 is expected by September (though from the looks of it a 1-2 month delay might happen. -Vadim)
The syntax of Vala is similar to C#, modified to better fit the GObject type system. Vala supports modern language features as the following:
- Lambda expressions
- Type inference for local variables
- Non-null types
- ssisted memory management
- Exception handling
Type modules (Plugins)
Programs are picking it up: http://live.gnome.org/Vala#head-a2a9eb379001c7c92a6fcf5b84b0f08f8b71f997 (Seahorse, written in Vala, is in Ubutnu 9.04 already!)
Documentation is (a bit) lacking. vala-doc package + http://valadoc.org + C api should do okay, though. Plus there are tons of code examples.
Evaluation checklist Edit
- simple gtk+ program that loads GtkBuilder
- make it build with waf
- execute system commands and capture output
- add a plugin system
Should GiftWrap 0.2.0 be rewritten in Vala or C?
I'm not planning on doing rewrites often, so its "now or in the far, far future" type of decision.