Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 43 lines (35 sloc) 1.776 kb
6898681 @juergbi update for 0.0.1 release add introduction replace by LGPL add
juergbi authored
1 Vala is a new programming language that aims to bring modern programming
2 language features to GNOME developers without imposing any additional
3 runtime requirements and without using a different ABI compared to
4 applications and libraries written in C.
5
6 valac, the Vala compiler, is a self-hosting compiler that translates
7 Vala source code into C source and header files. It uses the GObject
8 type system to create classes and interfaces declared in the Vala source
7e044a5 @juergbi Improve wording
juergbi authored
9 code.
6898681 @juergbi update for 0.0.1 release add introduction replace by LGPL add
juergbi authored
10
11 The syntax of Vala is similar to C#, modified to better fit the GObject
12 type system. Vala supports modern language features as the following:
13
14 * Interfaces
15 * Properties
16 * Signals
17 * Foreach
18 * Lambda expressions
19 * Type inference for local variables
5b64238 @juergbi update for 0.1.0 release
juergbi authored
20 * Generics
21 * Non-null types
6898681 @juergbi update for 0.0.1 release add introduction replace by LGPL add
juergbi authored
22 * Assisted memory management
08c26be @juergbi implement simple exception handling for expression and declaration
juergbi authored
23 * Exception handling
6898681 @juergbi update for 0.0.1 release add introduction replace by LGPL add
juergbi authored
24
25 Vala is designed to allow access to existing C libraries, especially
7e044a5 @juergbi Improve wording
juergbi authored
26 GObject-based libraries, without the need for runtime bindings. All that
27 is needed to use a library with Vala is an API file, containing the class
28 and method declarations in Vala syntax. Vala currently comes with
5b64238 @juergbi update for 0.1.0 release
juergbi authored
29 bindings for GLib and GTK+. It's planned to provide generated bindings for
30 the full GNOME Platform at a later stage.
6898681 @juergbi update for 0.0.1 release add introduction replace by LGPL add
juergbi authored
31
32 Using classes and methods written in Vala from an application written in
33 C is not difficult. The Vala library only has to install the generated
34 header files and C applications may then access the GObject-based API of
35 the Vala library as usual. It should also be easily possible to write a
36 bindings generator for access to Vala libraries from applications
37 written in e.g. C# as the Vala parser is written as a library, so that
38 all compile-time information is available when generating a binding.
39
40 More information about Vala is available at
41
5a32f9e @juergbi add internal copy of libgee and use Gee.ArrayList, Gee.HashMap, and
juergbi authored
42 http://live.gnome.org/Vala/
Something went wrong with that request. Please try again.