Tuesday, 19 October 2010


Programmers know that choosing a programming language involve trade-offs. You may wish to use language A because it provides feature X but can't live without feature Y which is only found in language B. For example you may wish to use C because it produces native code that runs fast but cannot live without garbage collection which is found in Java or C#.

Based on that I normally categorize programming languages into three broad groups

1- Interpreted languages like Python and Ruby
2- Run-time dependent compiled languages like Java and C#
3-Native compiled languages like C.

Languages like C are bare-bone languages with very little convenience features like strings or garbage collection but they produce binaries that run very fast.

Interpreted languages sacrifice speed for convenience, they are usually very easy to use but run very slowly compared to compiled languages.

Languages like C# and Java tries to give you best of both worlds in that they provide convenient language features and compile to target a virtual machine at the expense of a little speed.

Vala is a new language developed by the GNOME community. It aims to give the best of all worlds. It comes with convenience of languages like Java and C# and compiles to native binary just like C.

Vala is still in development but is pretty mature to be used for many tasks and is available for Linux and Windows.

The language is introduced on the Vala site as follows;

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 ABI compared to applications and libraries written in C

Find it at http://live.gnome.org/Vala