Emad Al-Bloushi wrote:
> Peace be upon you all,
> 
> I'm new to Vala programming language and I have well experience in Java & PHP 
> programming languages using OOP , honestly I'm little bit concerned about 
> list of issues I hope you can help me to reach the right direction as listed 
> below :
> 
>     1) How can I list installed packages to compile my code "pango , cairo , 
> gtk+-2.0 ..etc" and where are they installed (I'm using ubuntu 9.10) ?

Here you can find the installed Vala bindings:

 ls /usr/share/vala/vapi/  (or /usr/local/share/vala/vapi/ if you have 
installed from source)

In order to use a library you must have the library and its development files 
installed.
On Ubuntu, for example:

 'libgtk-2.0-0' and 'libgtk-2.0-dev'
 'libclutter-2.0-0' and 'libclutter-2.0-dev'
 ...

>     2) I have never developed applications with programming languages that 
> use pointers !! so in Vala where to start to understand pointers and to keep 
> my applications safe from memory leaks ?

Use pointer syntax (*, ->, delete) if you want to do manual memory management.
Instead of

 Foo foo = new Foo ();
 foo.method ();
 // object freed automatically

you can alternatively do:

 Foo* foo = new Foo (); // allocate object
 foo->method ();        // access member
 delete foo;            // free object

Use it only if you really want to have full control.

>     3) Using pointers in Vala is it a must ?

No, it's best to avoid them. ('void*' can be an exception. For example, a thread
function is expected to have a 'void*' return value, which basically means 
anything
can be returned. However, I'd just return 'null'.)

>     4) Where should I start to know more about using binding libraries ?

Using bindings is easy: just pass '--pkg xyz-1.0' to the compiler.

If you want to create your own bindings there are two options:

 * if it's a GObject based library then you can semi-automatically generate the
   bindings: http://live.gnome.org/Vala/Bindings
 * otherwise you must write the '.vapi' file by hand.
   
http://mike.trausch.us/blog/2009/02/18/vala-bindings-for-non-gobject-type-c-libraries/

>     5) What version of unicode does Vala support ?  

Strings are UTF-8 encoded.

>     6) owned, unowned, and weak modifiers I do not know how can I use them & 
> why ?

The "Memory Management" section of the "Vala for C# Programmers" tutorial 
explains
some of it:
http://live.gnome.org/Vala/QuickIntroForCSharpProgrammers#head-0d70172d9170f2aad9365e747aceaae818c99697

By the way, I'm working on a similar Vala quick start tutorial for Java 
programmers
and will put it online within the next days.

> finally , I have developed a simple snippet to demonstrate how to use Google 
> AJAX API in Vala but I did not use any thread in my code so I'm forced to use 
> "--thread" to run my code perfectly I do not know why ?

I guess libsoup depends on threading support.

> Best regards,
> 
> Emad Al-Bloushi                                         

Best regards,

Frederik
_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to