summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2007-05-02 09:42:00 +0000
committerJürg Billeter <juergbi@src.gnome.org>2007-05-02 09:42:00 +0000
commitf8387ad143f1884f8f5f89bd5389605624f4c34f (patch)
treee75e563fc9535200ec146af72962e80778359ae4 /README
parent9db973114ee1449c1764404163ecc8294f8e73d2 (diff)
downloadvala-f8387ad143f1884f8f5f89bd5389605624f4c34f.tar.gz
Move contents of vala-pkg to trunk
2007-05-02 Jürg Billeter <j@bitron.ch> * Move contents of vala-pkg to trunk svn path=/trunk/; revision=300
Diffstat (limited to 'README')
-rw-r--r--README43
1 files changed, 43 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 000000000..366e2dbd9
--- /dev/null
+++ b/README
@@ -0,0 +1,43 @@
+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.
+
+valac, the Vala compiler, is a self-hosting compiler that translates
+Vala source code into C source and header files. It uses the GObject
+type system to create classes and interfaces declared in the Vala source
+code. It's also planned to generate GIDL files when gobject-
+introspection is ready.
+
+The syntax of Vala is similar to C#, modified to better fit the GObject
+type system. Vala supports modern language features as the following:
+
+ * Interfaces
+ * Properties
+ * Signals
+ * Foreach
+ * Lambda expressions
+ * Type inference for local variables
+ * Generics [PLANNED]
+ * Non-null types [PARTIAL]
+ * Assisted memory management
+ * Exception handling [PLANNED]
+
+Vala is designed to allow access to existing C libraries, especially
+GObject-based libraries, without the need for runtime bindings. Each to
+be used library requires a Vala API file at compile-time, containing the
+class and method declarations in Vala syntax. Vala currently comes with
+incomplete bindings for GLib and GTK+. It's planned to provide generated
+bindings for the full GNOME Platform at a later stage.
+
+Using classes and methods written in Vala from an application written in
+C is not difficult. The Vala library only has to install the generated
+header files and C applications may then access the GObject-based API of
+the Vala library as usual. It should also be easily possible to write a
+bindings generator for access to Vala libraries from applications
+written in e.g. C# as the Vala parser is written as a library, so that
+all compile-time information is available when generating a binding.
+
+More information about Vala is available at
+
+ http://www.paldo.org/vala/