Your journey into self-hosted programming begins here
You're learning a programming language that can compile itself! Ovie achieved self-hosting capability on January 30, 2026, making it a truly sovereign programming language.
Ovie is a modern, self-hosted programming language designed to make programming accessible to everyone. Unlike traditional programming languages with cryptic syntax, Ovie uses natural language patterns that are easy to read and understand.
seeAm instead of printGetting Ovie installed on your system is quick and easy. Choose the method that works best for you:
The fastest way to get started with Ovie.
Unix/Linux/macOS:
curl -sSL https://install.ovie-lang.org | sh
Windows (PowerShell):
iwr -useb https://install.ovie-lang.org/install.ps1 | iex
For complete offline installation or if you want to build from source:
git clone https://github.com/southwarridev/ovie.git
cd ovie
make build
make install
After installation, verify that Ovie is working correctly:
ovie --version
You should see output similar to:
Ovie Programming Language v1.0.0
Self-hosted compiler (written in Ovie)
Build: 2026-01-30
If you see the version information, Ovie is successfully installed and ready to use.
Let's create your first Ovie program! We'll start with the classic "Hello, World!" example.
ovie new hello-world
cd hello-world
This creates a new Ovie project with the following structure:
hello-world/
├── ovie.toml # Project configuration
├── src/
│ └── main.ov # Main source file
└── tests/
└── main.test.ov # Test file
Open src/main.ov and replace the contents with:
// Hello World in Ovie - Self-Hosted Programming Language!
// This code is compiled by a compiler written in Ovie itself
seeAm "Hello, World!"
seeAm "Welcome to Ovie programming!"
// Let's try some variables
mut name = "Developer"
mut language = "Ovie"
seeAm "Hello, " + name + "!"
seeAm "You're learning " + language + " - the self-hosted language!"
ovie run
You should see the output:
Hello, World!
Welcome to Ovie programming!
Hello, Developer!
You're learning Ovie - the self-hosted language!
You've just run your first Ovie program compiled by the self-hosted Ovie compiler!
Ovie's syntax is designed to be natural and readable. Here are the fundamental concepts:
// Immutable variables (default)
name = "Alice"
age = 25
// Mutable variables
mut counter = 0
mut score = 100
// Simple function
fn greet(name) {
seeAm "Hello, " + name + "!"
}
// Function with return value
fn add(a, b) {
return a + b
}
// Using functions
greet("World")
mut result = add(5, 3)
seeAm "5 + 3 = " + result
// Conditionals
mut age = 18
if age >= 18 {
seeAm "You are an adult"
} else {
seeAm "You are a minor"
}
// Loops
for i in 0..5 {
seeAm "Count: " + i
}
// While loops
mut count = 0
while count < 3 {
seeAm "Count: " + count
count = count + 1
}
// Structs
struct Person {
name: String,
age: Number,
email: String,
}
// Creating and using structs
mut person = Person {
name: "Alice Johnson",
age: 30,
email: "alice@example.com",
}
seeAm "Name: " + person.name
seeAm "Age: " + person.age
// Arrays
mut numbers = [1, 2, 3, 4, 5]
mut names = ["Alice", "Bob", "Charlie"]
// Accessing elements
seeAm "First number: " + array_get(numbers, 0)
seeAm "Array length: " + array_length(numbers)
// Adding elements
append(numbers, 6)
seeAm "New length: " + array_length(numbers)
Notice how Ovie uses natural language patterns:
seeAm instead of print or console.logmut for mutable variables (clear and concise)array_get and array_length for clear intentCongratulations on completing your first steps with Ovie! Here's what you can explore next:
By learning Ovie, you're part of a historic moment in programming language development. You're using a language that can compile itself - a true achievement in computer science!
If you encounter any issues or have questions:
Made with ❤️ by the Ovie community
Self-hosted since January 30, 2026 🎉