title: Vala (linguaggio di programmazione)
text: # Vala (linguaggio di programmazione)
  
  Vala è un linguaggio di programmazione di alto livello, orientato ad oggetti. Il linguaggio è utilizzabile nelle distribuzioni GNU/Linux, ma esiste già un port per Windows. Esiste un dialetto del linguaggio in stile Python chiamato Genie.
  
  ## Caratteristiche
  
  Vala ha una sintassi simile al C#, e include utili funzionalità di linguaggio come le funzioni anonime, i segnali, le proprietà, la gestione della memoria assistita, la gestione delle eccezioni, inferenza dei tipi, e le dichiarazioni foreach. Offre inoltre un compilatore self-hosting, con funzionalità di garbage collection.
  
  I vantaggi del linguaggio sono la modernità e la velocità, i sorgenti infatti passano per un generatore di codice C utilizzando il sistema GObject, questo codice può essere rivisto e corretto manualmente, successivamente il codice viene poi compilato tramite GCC in modo tale che gli eseguibili siano supportati in modo nativo.
  
  ## Compilazione
  
  I sorgenti vala hanno estensione .vala, e il compilatore è chiamato valac.
  
  Per generare solo i sorgenti C e i rispettivi file header:
  
  ## Sintassi
  
  La sintassi assomiglia a quella di Java e C#.
  
  ### Commenti
  
  Sono accettati i seguenti commenti:
  
  La sintassi dei commenti di documentazione è
  
  All'interno dei commenti di documentazione è possibile usare la sintassi XHTML, la sintassi Wiki, quella Gnome e quella Java.
  
  ## Tipi di dato
  
  Vala supporta un set di tipi di dato simile agli altri linguaggi.
  
  Utilizzo:
  
  ## Esempi
  
  ### Hello world
  
  Con classe GObject:
  
  Senza classe GObject:
  
  ### Gtk
  
  Altri esempi GTK a https://live.gnome.org/Vala/GTKSample.
  
  ## IDE
  
  Ci sono diversi IDE con integrato il supporto per la programmazione in Vala:
  
  * Geany
  * Val(a)IDE
  * MonoDevelop
  * Vala Toys (plugin per gedit)
  * Valencia (plugin per gedit)
  * Anjuta
  * NetBeans
  * TextMate
  * RedCar
  * Valama
  * GNOME Builder
  