Vala Programming Language
Vala Programming Language

    
      
  // ExampleApp.vala

public class ExampleApp : Gtk.Application {
  public ExampleApp () {
    Object (application_id: "com.example.App");
  }

  public override void activate () {
    var win = new Gtk.ApplicationWindow (this);

    var btn = new Gtk.Button.with_label ("Hello World");
    btn.clicked.connect (win.close);

    win.child = btn;
    win.present ();
  }

  public static int main (string[] args) {
    var app = new ExampleApp ();
    return app.run (args);
  }
}

// Compile command (requires gtk4 package to be installed):
// valac --pkg gtk4 ExampleApp.vala



  

  Get Started

  
  View Source Code
  



  
    Why Vala?

  
    
      
        



        Productivity
      
    
    Comfortably write your code in an object-oriented way with high level abstractions, while having access to deep integrations with GNOME technologies such as: GObject, GTK and more!
  
  
    
      
        



        Performance
      
    
    Vala compiles code down to blazingly fast, fully native binaries. You're also able to reuse existing C Code in your Vala programs as well as generate C Code from Vala.
  
  
    
      
        



        Open-Source
      
    
    Vala is free and open-source software. It has a great community that contributes to the compiler and develops lots of tooling.
    Tooling Documentation
  

Learn more about Vala

  

  
    What can you build?

  
    
      
        



        GUI Applications
      
    
    Perfect integration of GTK, Libadwaita and Granite makes development super simple. Easily publish your apps on Flathub without bloated packages.
    
     
        
          GNOME Getting Started Tutorial
        
        
          elementary OS App Tutorial
        
      
    
  
  
    
      
        



        Command Line Programs
        
      
    
    Use a large standard library and many third-party libraries available for use in Vala.
  
  
    
      
        



        Libraries
      
    
    Provide bindings for many other languages and API documentation without manual work. Also, dynamic and static linking are both supported.
  


  

  
    



What's new?

  
    

    
      
      
        ValaBot: an AI coding assistant fine-tuned for Vala
        
  
    
      Sam Cowen
  

        2024-05-09
      
    
  
    

    
      
      
        Vala: the smoothest C off-ramp
        
  
    
      Reuben Thomas
  

        2024-04-22
      
    
  
    

    
      
      
        print("Hello Planet GNOME");
        
  
    
      Lorenz Wildberg
  

        2023-10-11
      
    
  
    
      

View Blog

  

  
    Current Versions

  
  
    Vala 0.56.17 (Stable Long-term Support)
  
  
    Vala main (Development)
  

How to install

  

  
    

Showcase

  
  
    
      
      

      
          Tuba
          Browse the Fediverse
        
    
  
  
  
    
      
      

      
          Workbench
          Learn and prototype with Vala and other GNOME technologies
        
    
  
  
  
    
      
      

      
          Dino
          A modern open-source chat client for the desktop. Focuses on providing a clean and reliable Jabber/XMPP experience while having your privacy in mind.
        
    
  
  
  
    
      
      

      
          Monitor
          Manage processes and monitor system resources
        
    
  
  
  
    
      
      

      
          TextSnatcher
          Copy Text from Images with ease, Perform OCR operations in seconds.
        
    
  
  
  
    
      
      

      
          Timeshift
          System restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots.
        
    
  
  

View More Vala Projects

  

  
    Community

  
    
      
        



        Forums
      
    
    Ask questions related to Vala in the GNOME Discourse forums under the 'vala' tag.
    Discourse Forums
  
  
    
      
        



        Internals Chat
      
    
    Talk to the developers or ask questions about how to contribute to Vala, use the Vala Matrix channel.
    Matrix Room
  
  
    
      
        



        Community Server
      
    
    Connect with the community on the Discord server.
    Discord Server
  


Social Media

  Follow the Vala project across these platforms
  
    


Mastodon
    


Twitter
    


Telegram
    


Reddit
  


  

  

  Get Started

  
  View Source Code
  




    
  