As a programmer who is new to Vala, what is your number one piece of advice to someone who is new to the language?
It largely depends on what background you are coming from. If you're coming from C/C++/Java, the best bit of advice is to learn functional programming. Vala supports true closures, and so you should learn (deeply) how to use lambda expressions. The best resource for this is Structure and Interpretation of Computer Programs by Abelson and Sussman. It was the introductory textbook for CS at MIT for many years. It is available free on-line at http://mitpress.mit.edu/sicp/full-text/book/book.html, but the paper version is more readable. Video lectures are available at http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/. Problem sets are available free at http://icampustutor.csail.mit.edu/6.001-public/.
Aside from that, I'd generally just try to learn the C# programming style well. It is similar to Vala, but there are many books on that topic.
Catches:
Also, one of the posters recommended tinycc. This is a reasonable choice for development, but you should use an optimized compiler like gcc (or if supported, Intel's compiler) for deployment.
My #1 piece of advice is to learn about GObjects. They are the backbone of Vala's power and flexibility, and learning how to wrap various libraries with GObject gives your Vala programs access to everything c can link against (which is a lot!).
Here are a few links that might be of interest:
* http://library.gnome.org/devel/gobject/stable/
* http://fosswire.com/post/2009/7/gobject-vala/
* http://developer.gnome.org/doc/tutorials/#gobject
* http://en.wikipedia.org/wiki/GObject
In any event, knowledge of C will be of great use. Our team is actually considering a progressive revamp and porting to Vala. We have members with strong backgrounds in C#/C++ and this change in direction (over time) will be beneficial to the performance and flexibility of our products.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With