First released in 2006 and still under active development, Vala is an object-oriented programming language with a self-hosting compiler that generates C code and uses the GObject system.
Vala was originally created as a higher-level alternative to C for developing GNOME applications, although it is also used for general-purpose applications.
Designed to be compiled into C code, 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.
Vala uses high-level abstractions without imposing additional runtime requirements and without using a different ABI, as would applications and libraries written in C. Vala uses the GObject type system and has additional code generation routines that make targeting the GNOME stack simple.
Vala is designed to allow access to existing C libraries, particularly GObject-based libraries, without the need for runtime bindings. All that is needed in order to use a library with Vala is an API file, containing the class and method declarations in Vala syntax. Vala comes with bindings for GLib, GTK+, and others from the GNOME Platform.
According to a GNOME developer, "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."
Vala's syntax is inspired by C#, and indirectly by Java, but unlike C# and Java, Vala does not attempt to provide memory safety. Vala is compiled to C, and the C code is compiled with GCC using typical compiler flags. Basic operations like integer arithmetic are directly mapped to C constructs, so the recommendations in Defensive Coding in C apply to Vala. Other influences were C, C++, D, and Boo.
Vala was conceived by Jürg Billeter and implemented by Billeter and Raffaele Sandrini, who were looking for a higher-level alternative for developing GNOME applications rather than C. They liked the syntax and semantics of C# but didn't want to use Mono, so they finished a compiler in May of 2006. Originally, it was bootstrapped using C, but with the release of version 0.1.0 in July of 2007, the Vala compiler became self-hosted.
Vala is a cross-platform language but is currently supported by source code only. It is licensed under the GNU Lesser General Public License (LGPL), a free software license published by the Free Software Foundation.
 
 
Recommended Resources
CodeDocs: Vala (programming language)
CodeDocs provides tutorials, documentation, and references for a large number of programming languages, scripts, and technologies, including Vala. The history, description, language design, tools, examples, suggestions for other languages or tools covered on CodeDocs related to Vala, a list of references, tools, and links to other external resources, as well as documentation for using Vala, a free and open-source software, available under the LGPL license.
https://codedocs.org/what-is/vala-programming-language
GitHub hosts and tracks the changes of projects using Git, an open-source control system. It serves as a platform for developers to create, store, and manage their code, providing distributed version control of Git, access control, bug tracking, software feature requests, task management, continuous integration, and wikis for each project. The GitHub repository for the Vala Community includes the repositories for the Vala programming language. Contributing members of the community are listed.
https://github.com/vala-lang
This is the official GitLab repository of Vala, a programming language intended to bring modern programming language features to GNOME developers without imposing additional runtime requirements, and without using a different ABI compared to applications and libraries written in C. A read-only mirror of the original GitLab repository, the site includes a reference manual for Vala, a guide to its features, syntax, internals, and generated output of Vala. Reported issues are included.
https://gitlab.gnome.org/GNOME/vala
GNOME: Vala - Compiler Using the GObject Type System
The official GNOME Wiki page for the Vala, a programming language designed to allow access to existing C libraries, especially GObject-based libraries, without the need for runtime bindings. The site presents information about Vala, including tutorials, manuals, release notes, documentation, and a link to the official development site for Vala. The GNOME Discourse is a venue for developer conversations about the language, and the Vala Matric Channel allows for discussion with the developers.
https://wiki.gnome.org/Projects/Vala/
Learn X in Y Minutes: Where X=Vala
Learn X in Y Minutes features concise and interactive tutorials on various programming languages. Its section on Vala can serve as a resource for programmers wanting to learn the Vala programming language quickly. As a community-driven project, others can contribute to the guide. The site is available in light or dark themes, and the code used in the guide can be downloaded to the computer. Links to other online resources and documentation are included.
https://learnxinyminutes.com/docs/vala/
This is an informational website dedicated to computer programming languages. Each included language has a dedicated page and, to a varying degree, shows details and information about its creators, developers, and designers, the year of creation, links to the official language website, source code repositories, social media pages, and Stack Overflow tags. Languages with known influence relations show an influence graph, and there is also a network graph showing all influence relations.
https://programminglanguages.info
Autovala is a program and library designed to help in the creation of projects with Vala and CMake or Meson. It is a command-line program, although there are also official plugins for GEdit and Scratch text editors. Autovala automates the writing of the configuration files for CMake and Meson. A history of versions is posted, and links to the GIT repository and download links are included. Other programs, articles, and a blog from Rastersoft may also be viewed.
https://www.rastersoft.com/programas/autovala.html
The official developer site for the Vala programming language provides documentation, tutorials, and examples of what can be built using Vala, such as GUI applications that integrate with GTK, Libadwaita, and Granite, as well as bindings for several other languages. Links to Vala's social media accounts, community forums, and chat rooms are included. Free and open-source software, Vala is an object-oriented programming language that uses the GObject type system and generates C code.
https://vala.dev/
The official website for the Vala programming language, a free and open-source software used to develop various applications, such as GUI applications, command-line programs, and libraries, with bindings for several other languages. Vala compiles code down to fast, fully native binaries. Included here is the full, indexed Vala documentation, and the Vala source code may be downloaded from the site. Other resources include Vala release notes and installation instructions.
https://vala-language.org/
This is the official documentation page for Vala, a high-level programming language that produces binaries for the native platform. The binaries maintain the C Application Binary Interface and can be built as either an application or a library. The reference manual gives details on Vala's syntax and type system, including polymorphism using interfaces and type parameters, and is divided into several sections, including an overview, concepts, types, expressions, statements, and namespaces.
https://www.vala-project.org/doc/vala/
The Valadoc website provides documentation for the Vala programming language. Vala is a programming language that is syntactically similar to C# and is designed to be compiled into C code. The site provides a comprehensive guide to the language, including tutorials, references, and guides for using Vala with other programming languages, such as C# and Java. It also provides documentation for various libraries and packages that can be used with Vala, such as GIO, GLib, and GTK+.
https://valadoc.org/