Vala (programming language)
Programming language / From Wikipedia, the free encyclopedia
Dear Wikiwand AI, let's keep it short by simply answering these key questions:
Can you list the top facts and stats about Vala (programming language)?
Summarize this article for a 10 year old
Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system.
Paradigm | Multi-paradigm: imperative, structured, object-oriented |
---|---|
Developer | Jürg Billeter, Raffaele Sandrini, Rico Tzschichholz |
First appeared | 2006; 18 years ago (2006) |
Stable release | |
Typing discipline | Static, strong, inferred, structural |
OS | Cross-platform all supported by GLib, but distributed as source code only. |
License | LGPLv2.1+ |
Filename extensions | .vala, .vapi |
Website | vala |
Influenced by | |
C, C++, C#, D, Java, Boo |
Vala is syntactically similar to C# and includes notable features such as anonymous functions, signals, properties, generics, assisted memory management, exception handling, type inference, and foreach statements.[1] Its developers, Jürg Billeter and Raffaele Sandrini, wanted to bring these features to the plain C runtime with little overhead and no special runtime support by targeting the GObject object system. Rather than compiling directly to machine code or assembly language, it compiles to a lower-level intermediate language. It source-to-source compiles to C, which is then compiled with a C compiler for a given platform, such as GCC or Clang.[2]
Using functionality from native code libraries requires writing vapi files, defining the library interfaces. Writing these interface definitions is well-documented for C libraries. Bindings are already available for a large number of libraries, including libraries that are not based on GObject such as the multimedia library SDL and OpenGL.