|
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 API compared to applications and libraries written in C.
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
Type modules (Plugins)
Vala is designed to allow access to GObject-based libraries, without any 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 experimental 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.
Here are some key features of "Vala":
Language Feature and Introductory Samples:
· Basic Sample
· Advanced Sample
· String Sample
· Character Sample
· Signals and Callbacks
· Properties Sample
· Conditional Compilation Sample
Basics: Collections, Files, I/O, Networking, IPC:
· Gee Samples (Collections: lists, sets, maps, iterables)
· GIO Samples (Input/Output, file operations)
· GIO Networking Sample (Network socket communication)
· Soup Sample (HTTP client / server)
· D-Bus Client Samples (Inter-process communication)
· D-Bus Server Sample
GUI Programming:
· GTK+ Samples (GUI toolkit)
· GTK+ Custom Widget Samples
· GTK+ Custom CellRenderer Samples
· GDL Sample (Docking widgets)
· Hildon Sample (Mobile devices UI)
· WebKit Sample (Embeddable web browser engine)
Multimedia and Graphics:
· GStreamer Samples (Multimedia: Audio, Video)
· Cairo Sample (2D vector graphics)
· Clutter Sample (Animation framework)
· Pango Sample (Font rendering)
· Poppler Sample (PDF rendering)
· SDL Sample (Full screen graphics and game programming)
· OpenGL Samples (2D and 3D graphics)
GNOME Platform:
· GConf Sample (Application settings)
· Gnome-Desktop and GMenu Sample (Inspecting the application menu)
· Panel Applet Sample
GLib Samples:
· List Sample
· MarkupParser Sample (Parsing simple XML files)
· Plugin Sample (Loading modules at runtime)
· Threading Samples (Concurrency and Synchronization)
· Time Sample
· Unit Tests Sample
· Value Sample
Database Access:
· CouchDB Sample (Document-oriented database)
· SQLite Sample
· PostgreSQL Sample
Other:
· Curses Sample (Terminal control library)
· GSL Samples (Numerical calculations)
· Input Samples
· Implementing Vala interfaces in C
· Loudmouth Sample (Jabber instant messaging)
· Lua Sample (Scripting)
· Tiff Sample (Image loading/saving)
· XML Sample
· Json Sample
· ZLib Sample
Requirements:
· GLib 2.10 or later
What's New in This Release: [ read full changelog ]
· Bug fixes and binding updates.
Via: Vala 0.20.0
0 Comment:
Post a Comment