Diving into Vala ...
Vala development
David M.
We thought we just throw some thoughts together as we explore using the programming language Vala for potential future development.
Vala is - we understand - a language written initially by GNOME to develop GTK+ applications and interfaces. The Elementary OS developers have embraced this language. Budgie Desktop itself is primarily written in Vala.
Why? It is fairly efficient - compiles to small executables and shared object libraries - and hence reduces memory usage. It is fairly memory safe - in that - whilst C can and will enable you to shoot yourself into your proverbial foot/head - at least Vala will hide the major C intracasies leading to more robust code. Well that’s the claim anyway.
As a team, our profiencies is primarily Python and Go. So exploring Vala is “interesting” - but very slow going since we keep thinking “well we did it this way in python … so why doesnt Vala work in this way”.
Why are we looking at Vala? Well, we do want to understand the underlying components of Budgie Desktop - and hopefully fully understand what could & should be backported to 18.04LTS. Longer term - maybe/hopefully helping upstream in its maintainance.
So we began by looking for tutorials already written. The valadoc website we have found is the best for beginners. The GTK+ kickstart video is really good - essential viewing. The two longer videos on that site are well worth reviewing and bookmarking.
The compile budgie desktop based applets you need to install the package `budgie-core-dev`.
Best steer clear from the upstream “budgie-desktop-examples” repo. We couldn’t get it to compile - probably because it hasn’t been updated to work with budgie-desktop v10.4.x Popovers.
Excellent third-parties, Daniel Pinto and Cybre’s repositories are excellent reference points.