Skip to the content.

Veny Language Specification (v0.5.1)

Overview

Veny is a statically typed, object-oriented programming language designed for clarity, brevity, and efficient compilation to Java. It draws inspiration from languages like Kotlin, Python, and Go, while staying grounded in strong static typing.


Syntax and Structure

1. Packages and Files

package myapp.utils

2. Class Declaration

class Greeter {
    val name: Text = "Alice"

    greet(): void {
        Console.print("Hello, " + name)
    }
}

3. Method Declarations

add(x: Int, y: Int): Int {
    return x + y
}

4. Entry Point

class App {
    entry(args: [Text]): void {
        Console.print("Welcome to Veny")
    }
}

Types

val name = "Veny"  // type inferred as Text

Statements and Expressions

val radius: Float = 5.0
var active: Bool = true
if active {
    Console.print("Running")
} else {
    Console.print("Stopped")
}
while active {
    Console.print("Looping")
    break
}
for i in 1..10 {
    Console.print(i)
}

Arrays

val numbers: [Int] = [1, 2, 3, 4]
val names = ["Alice", "Bob"]  // Inferred as [Text]

Standard Library (WIP)

Initial functions include:

Console.print(message: Text): void

Future expansions will include Math, Array and other utilities.


Concurrency (Future Work)

Fiber.run {
    // lightweight task
}

Tooling


Project Structure


Version


Veny is developed by Stoyan Petkov and contributors.

© 2025 The Veny Language Project. Licensed under the Apache License 2.0.