Gtk+ Kick Start Tutorial for Vala

There are many problems with the way we present development documentation to users in the GNOME platform. The content is all pretty much there already, however it's quite fragmented and it lacks proper format and organization.

To address this a while ago I tried to put together some screencasts to promote the platform better and provide official documentation that is not focused on explaining every single piece of API or that is not focused to C developers.

After almost a year of trying to find the right combination of stable screencasting/video editting applications and spare time, I've finally put together the first of what I expect to be a series of screencasts targetted to promote the GNOME development platform in a useful way.

Gnome TV - GTK+ Kick-Start Tutorial for Vala

Any feedback would be welcome, but note that putting this together has been quite a difficult task. Hopefully there will be more of them now that I've managed to put together a nice timeline. Suggestions and help would be appreciated.

PS: I would like to give kudos to the PiTiVi guys, the app is no perfect, but it allowed me to perform the task which is something that no other video editor within the official Ubuntu repositories could say.

17 thoughts on “Gtk+ Kick Start Tutorial for Vala

  1. This was an excellent video – quick, informative and enjoyable.
    However, my main desire is to find a resource that can quickly get me started learning to design interfaces in GTK. Is there an upcoming Glade tutorial? [I also ask because I am curious what this “GtkBuilder” I hear about is, and what the blessed way to develop GTK applications is].


  2. Excellent stuff. The only thing that bothered me slightly was the music. Can you do a screen cast with the music off, or at least a little bit toned down :-). Thanks


  3. Thank you everyone for the comments.
    You can mix C and Vala files indeed as fz mentioned. Vala is just a C#-ish to C/GObject compiler, the rest of the job (behind the scenes) is still done by GCC over normal C code. You don’t need any extra libraries, most of the common stuff is already wrapped through .vapi files.
    Yeah, I agree is too loud at times, I should filter the music track a little bit to reduce global gain.


  4. hmm I still have the feeling that vala is just the poor mans c++.
    I see the benefit, but I dont think it justifies introducing all the mess with introducing yet another language which is based on gobject instead of re-using the work done with the STL/ Boost etc.


  5. Hey, nice video!! I’m wating to see the next episode ehehe
    Vala isn’t exactly a compiler: valac translate the project to C (gobject) and then compile it with gcc.
    It means that, when debug with gdb, you will be debugging C code and not vala code, right?


  6. @carlos costa: A compiler translates from a source language to a target language (often object code, but not necessarily), so ‘valac’ is a compiler by definition. But yes, Vala compiles to C. However, its design allows for multiple backends. Currently C is the only backend. Other compilers do this as well (think of Eiffel or Haskell compilers).
    As for debugging: if you compile with the ‘-g’ command line option ‘valac’ will embed Vala source file and line information via #line directives into the generated code. So debuggers like GDB and GDB frontends like Nemiver will present you the Vala code and Vala source line numbers while stepping through the code or for setting breakpoints.
    There was also some initial work done to add Vala support to GDB:


  7. @gant: sorry, I think my question was wrong! Its obvious valac is a compile by the definition of a compile… but lucky for me the error did not hinder the understanding and I got the correct answer 🙂
    I’ll try the -g option to see the result and read the link you pointed me.
    Thanks! see you around.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s