Vala (language)


Vala is a compiled programming language , whose purpose is to provide the benefits of modern programming languages ​​(such as OOP ) to developers of the GNOME platform who use GLib and its GObject system 2 , 3 .

Its syntax is based on that of C # but it does not require a runtime environment . Vala is transformed into C code , itself compiled into native machine code. The advantages of such a compilation chain are to produce software that requires less RAM and run faster.

Moreover, this passage through step C makes it possible to use the libraries C by means of interfaces defined in the Vapi files. Vapi files are supplied with Vala for much of the GNOME platform , as well as for other libraries.

For example, Shotwell , Geary , GNOME Contacts 4 or the Arte + 7 plug-in for Totem 5 are written in Vala.

Code Listing

The ” Hello World ” program:

Void main () {
 print ( "Hello World \ n" );
}

The program ” Hello World ” object-oriented programming:

Public class Main {
 public static int main ( string [] args ) {
 stdout . Printf ( "Hello, World \ n" );
 Return 0 ;
 }
}

Text editors and EDIs

There are several text editors or EDIs that support the Vala 6 language . These include:

  • Anjuta 7
  • Atom (text editor) , with packet language-vala-modern8 for syntax highlighting and optionally valhalla9 for additional tools
  • GNOME Builder 10
  • Eclipse (project) , with the plugin Valable11
  • Emacs 12
  • Geany 13
  • Gedit , with packet Vala Toys for Gedit14 or Valencia15 , 16
  • MonoDevelop , with the package monodevelop-vala. However, this package is no longer maintained 6 .
  • NetBeans , with package netbeans-valaproject17
  • Redcar
  • Scratch, the text editor provides with Elementary OS
  • Sublime Text , with package Vala18
  • TextMate , with Package Vala-TMBundle19
  • Val (a) IDE, itself written in Vala 20 , 21
  • Valama, himself writing in Vala 22
  • Vim , with a plugin 23 and possibly the package syntasticfor additional tools 24
  • Visual Studio Code , with Package vala25

Notes and references

  1. ↑ ” vala – Compiler for the GObject type of system [ archive ] , on git.gnome.org (accessed 23 October 2016 )
  2. ↑ « Projects / Vala / About – GNOME Wiki!  ”  [ Archive ] , on wiki.gnome.org (accessed October 23, 2016 )
  3. ↑ ” The GNOME Journal: Writing Multimedia Applications with Vala [ archive ] , (Accessed 23 October 2016 )
  4. ↑ ( en ) Contacts  [ archive ]
  5. ↑ ( en ) Totem Arte + 7 Plugin  [ archive ] , December 30, 2009
  6. a and b « Projects / Vala / Tools – GNOME Wiki!  ”  [ Archive ] , on wiki.gnome.org (accessed October 23, 2016 )
  7. ↑ ” Apps / Anjuta – GNOME Wiki!  ”  [ Archive ] , on wiki.gnome.org (accessed October 23, 2016 )
  8. ↑ ( en ) « language-vala-modern »  [ archive ] , on atom.io (accessed on 23 October 2013 )
  9. ↑ ( en ) « valhalla »  [ archive ] , on atom.io (accessed on 23 October 2013 )
  10. ↑ ” Apps / Builder / Features – GNOME Wiki!  ”  [ Archive ] , on wiki.gnome.org (accessed October 23, 2016 )
  11. ↑ ” valid in Launchpad [ archive ] , on launchpad.net (accessed October 23, 2016 )
  12. ↑ « Projects / Vala / Emacs – GNOME Wiki!  ”  [ Archive ] , on wiki.gnome.org (accessed October 23, 2016 )
  13. ↑ ” Geany: All Filetypes [ archive ] , on www.geany.org (accessed October 23, 2016 )
  14. ↑ ” Google Code Archive – Long-term storage for Google Code Project Hosting.  ”  [ Archive ] , at code.google.com (accessedOctober 23, 2016 )
  15. ↑ « Projects / Valencia – GNOME Wiki!  ”  [ Archive ] , on wiki.gnome.org (accessed October 23, 2016 )
  16. ↑ ” GNOME / valencia [ archive ] , on GitHub (accessed October 23, 2016 )
  17. ↑ ” carbonfx / netbeans-valaproject [ archive ] , on GitHub (accessed October 23, 2016 )
  18. ↑ ” Vala – Packages – Package Control [ archive ] , on packagecontrol.io (accessed October 23, 2016 )
  19. ↑ ” technosophos / Vala-TMBundle [ archive ] , on GitHub (accessed on October 23, 2016 )
  20. ↑ ” Code: valid: Tarnyko [ archive ] , on code.launchpad.net (accessed on October 23, 2016 )
  21. ↑ « Projects / Vala / Documentation – GNOME Wiki!  ”  [ Archive ] , on wiki.gnome.org (accessed October 23, 2016 )
  22. ↑ ” Valama / valama [ archive ] , on GitHub (accessed on October 23, 2016 )
  23. ↑ « Projects / Vala / Vim – GNOME Wiki!  ”  [ Archive ] , on wiki.gnome.org (accessed October 23, 2016 )
  24. ↑ ” scrooloose / syntastic [ archive ] , on GitHub (accessed October 23, 2016 )
  25. ↑ ” Vala Code – Visual Studio Marketplace [ archive ] , on marketplace.visualstudio.com (accessed October 23, 2016 )