-
Notifications
You must be signed in to change notification settings - Fork 79
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Use Markdown for README and move to README.md
- Loading branch information
Showing
3 changed files
with
42 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,42 +1 @@ | ||
Vala is a 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. | ||
|
||
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 | ||
* Non-null types | ||
* Assisted memory management | ||
* Exception handling | ||
|
||
Vala is designed to allow access to existing C libraries, especially | ||
GObject-based libraries, without the need for runtime bindings. All that | ||
is needed to use a library with Vala is an API file, containing the class | ||
and method declarations in Vala syntax. Vala currently comes with | ||
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 | ||
|
||
https://wiki.gnome.org/Projects/Vala/ | ||
See README.md |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
## What is Vala? | ||
Vala is a 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. | ||
|
||
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 | ||
* Non-null types | ||
* Assisted memory management | ||
* Exception handling | ||
|
||
Vala is designed to allow access to existing C libraries, especially | ||
GObject-based libraries, without the need for runtime bindings. All that | ||
is needed to use a library with Vala is an API file, containing the class | ||
and method declarations in Vala syntax. Vala currently comes with | ||
bindings for GLib and GTK+. | ||
|
||
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 [https://wiki.gnome.org/Projects/Vala/](https://wiki.gnome.org/Projects/Vala/) |