| |||||
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