Page 88 - Linux Inside τ. 8

Basic HTML Version

Linux Inside
88
H
Vala είναι μία νέα γλώσσα προγραμματισμού που μοιά-
ζει πολύ με τις ήδη γνωστές στους περισσότερους, C,
C++ και C#. Οι εφαρμογές που αναπτύσσονται σε
Vala, τρέχουν πάνω στα runtime libraries του GNOME, όπως
το Glib και το Gobject.
Προετοιμασία του υπολογιστή μας
Ας πάμε, όμως, να δούμε τα βασικά. Για να γράψετε και να
μεταγλωττίσετε κώδικα Vala, θα πρέπει η εγκατάσταση της
διανομής Linux που τρέχει ο υπολογιστής σας να διαθέτει το
ανάλογο πακέτο για Vala, που το πιο πιθανό είναι να μην
υπάρχει:
# sudo apt-get install valac vala-utils vala-doc
Στην περίπτωση του Ubuntu, θα πρέπει να εγκαταστήσετε
και δύο επιπλέον πακέτα, για μεγαλύτερη άνεση αυτών που
επιθυμούν να πειραματιστούν. Γι’ αυτά, εκτελέστε την εντολή:
# sudo apt-get install gtk+-2 gtk+-3
Εγκατάσταση στο Fedora:
# sudo yum install vala vala-devel vala-tools vala-doc
Στο Pandora Cinux θα είναι προεγκατεστημένο, δηλαδή θα
μπορείτε να αρχίσετε να γράφετε κώδικα Vala και να τον με-
ταγλωττίζετε, αμέσως. Σε περίπτωση, όμως, που ο υπολογι-
στής σας τρέχει μία διανομή όπως το Slackware, θα πρέπει
να το κατεβάσετε και να το κτίσετε «from source». Ο πιο
απλός τρόπος για να το κάνετε αυτό, είναι να τρέξετε την
εντολή:
# git clone git://git.gnome.org/vala
Εισαγωγή στη Vala
Όπως είπαμε παραπάνω, η Vala είναι μία γλώσσα προ-
γραμματισμού που μοιάζει πολύ με τις ήδη υπάρχουσες C,
C++ και C#. Ένα αρχείο κώδικα Vala έχει την κατάληξη
.vala, για παράδειγμα, test.vala. Μέσα σε αυτό το αρχείο θα
δούμε σχόλια και κώδικα. Τα σχόλια είναι και στη περίπτωση
της Vala της μορφής των C, C++ και C#. Με λίγα λόγια
έχουμε:
// Σχόλιο μίας γραμμής στη Vala.
/* Σύμβολο αρχής σχολίων
Σχόλιο πολλαπλών γραμμών Vala.
Σύμβολο τέλους σχολίων */
Εάν έρχεστε για πρώτη φορά σε επαφή με προγραμματι-
σμό, καλό θα ήταν να αρχίσετε με C. Έτσι θα καταλάβετε βα-
σικά πράγματα για το software, αλλά και για το hardware. Σε
περίπτωση που δεν θέλετε να μπείτε σε αυτή τη διαδικασία,
δεν υπάρχει κανένα πρόβλημα. Η γλώσσα Vala είναι υψηλού
επιπέδου και εύκολη στην εκμάθησή της. Από εδώ και πέρα,
θα περάσουμε στο πιο όμορφο και αργότερα ίσως λίγο
εκνευριστικό κομμάτι, στο να γράφουμε κώδικα.
Το πρώτο πρόγραμμα που θα γράψουμε, δεν είναι άλλο
από μία απλή εφαρμογή «Hello World!». Αυτή η εφαρμογή θα
έχει δύο σκέλη. Το πρώτο θα είναι μία εφαρμογή που εκτελεί-
ται από το τερματικό και το δεύτερο μία γραφική εφαρμογή.
Και τα δύο θα εμφανίζουν το μήνυμα «Hello World!».
Αν θέλουμε να γράψουμε την εφαρμογή που θα τρέχουμε
μέσω του τερματικού, δεν θα εισαγάγουμε καμία επιπλέον βι-
βλιοθήκη. Απλώς θα δηλώσουμε την κλάση μέσα στην οποία
θα βρίσκεται η μέθοδος “main” (εκείνη που καλείται πρώτη
όταν εκτελείτε το πρόγραμμα). Άρα δημιουργούμε ένα αρ-
χείο “hello_world.vala” και γράφουμε μέσα:
class Tutorial.HelloWorld : GLib.Object
{
Παρακάτω δηλώνουμε τη μέθοδο (μπορείτε να την πείτε
και συνάρτηση) “main”. Το όρισμα “public” μάς δηλώνει ότι η
μέθοδος που ακολουθεί είναι εμφανής και σε μεθόδους άλ-
λων κλάσεων. Το όρισμα “static” υποδηλώνει ότι η μέθοδος
είναι στατική, δηλαδή δεν μπορεί να αρχικοποιηθεί. Επίσης, η
μέθοδος “main” δέχεται ως όρισμα το “args”, που είναι string,
ενώ επιστρέφει στο λειτουργικό μεταβλητή μορφής int.
public static int main (string[] args)
{
Αυτό που θέλουμε να κάνουμε μετά, είναι να εμφανίσουμε
το μήνυμα «Hello World!» και να κλείσουμε το πρόγραμμα,
επιστρέφοντας μηδέν (0).
stdout.printf("Hello World!\n");
return 0;
}
}
Αυτό ήταν! Το μόνο που έχουμε να κάνουμε τώρα, είναι να
το μεταγλωττίσουμε. Αυτό μπορούμε να το κάνουμε αν τρέ-
ξουμε στο τερματικό την εντολή:
# valac hello_world.vala
Αυτό παράγει εκτελέσιμο με το όνομα του αρχείου που με-
ταγλωττίστηκε. Εάν θέλουμε το εκτελέσιμό μας να έχει δια-
φορετικό όνομα, θα πρέπει να τρέξουμε την ίδια εντολή, αλλά
προσθέτοντας το όρισμα “-o [name]” πριν από το αρχείο κώ-
δικα, όπου [name] το όνομα που επιθυμείτε να έχει (χωρίς τις
αγκύλες). Το επόμενο βήμα μας θα είναι να γράψουμε παρό-
μοια, αλλά γραφική εφαρμογή, όπως είπαμε ότι θα κάνουμε.
Πώς θα γίνει αυτό; Δείτε... Ανοίγουμε νέο αρχείο με όνομα
“hello_ world_gtk.vala”, για παράδειγμα. Αυτή τη φορά δεν
βάζουμε τις μεθόδους μας εντός κάποιας κλάσης και προ-
σθέτουμε μία γραμμή κώδικα με την οποία «ενώνουμε» το
πρόγραμμά μας με τις βιβλιοθήκες του Gtk.
using Gtk;
int main (string[] args)
{
Για να αρχικοποιήσουμε μία γραφική οντότητα (εξ ου και
οντοκεντρικός προγραμματισμός) γράφουμε την παρακάτω
Του Κωνσταντίνου Αποστόλου <conmarap@gmail.com>
Linux Labs – Vala
Γιατί να συμβιβαστείτε με τις παλιές C και C++ ή με
την Python για να δημιουργήσετε τις δικές σας
γραφικές εφαρμογές; Κτίστε τες με τη νέα,
διασκεδαστική γλώσσα προγραμματισμού του
GNOME, Vala.
Εργαλεία:
Vala toolkit
Δυσκολία:
URL:
goo.gl/RQwA1
Τεκμηρίωση
Ο Κωνσταντίνος είναι φοιτητής Μηχανικών Η/Υ και περνά την ώρα του δημιουργώντας το Cinux και διάφορα προγράμματα.
Εισαγωγή στη Vala