Now in Beta

The Modern Programming Language
for Enterprise Development

NovaLang brings Spring Boot-inspired patterns, auto-configuration, and clean architecture to a new programming language designed for rapid enterprise development.

0 Beta Testers
0 GitHub Stars
0 Built-in Features
SpringBootApp.nova
// 🚀 NovaLang Spring Boot Style
print "Starting NovaLang Application...";

// Auto-configuration like Spring Boot
function auto_configure_database() {
    let db_name = "novalang_app";
    print "🏗️ Auto-creating database: " + db_name;
    return true;
}

// @Entity
function User(id, name, email) {
    return "User:" + str(id) + ":" + name + ":" + email;
}

// @Repository - Spring Data style
function UserRepository_save(name, email) {
    print "💾 Saving user: " + name;
    return true;
}

// @Service - Business logic
function UserService_createUser(name, email) {
    return UserRepository_save(name, email);
}

// @RestController - REST API
function UserController_createUser(name, email) {
    let result = UserService_createUser(name, email);
    print "✅ HTTP 201 CREATED";
    return 201;
}

// Application startup
let db_configured = auto_configure_database();
let user_created = UserController_createUser("John", "john@dev.com");

print "🎉 NovaLang Application Ready!";

Why Choose NovaLang?

Built for developers who love Spring Boot but want something more modern and flexible

Auto-Configuration

Just like Spring Boot - automatic database creation, component scanning, and dependency injection out of the box.

Package-Based Architecture

Clean separation with Entity/Repository/Service/Controller patterns. Each component in its own file.

Database Integration

MySQL auto-configuration, table creation from entities, and Spring Data-style repositories.

Rapid Development

Get from idea to running application in minutes with sensible defaults and minimal configuration.

Modern Syntax

Clean, readable syntax inspired by the best of JavaScript, Python, and Java.

Enterprise Ready

Built-in patterns for REST APIs, business logic, data access, and scalable architecture.

See NovaLang in Action

Experience the power of Spring Boot patterns in a modern programming language

Entity Definition (Like JPA @Entity)

// 📦 Product Entity - Product.nova
// @Entity
// @Table(name = "products")

function Product(id, name, price, category) {
    print "📦 Entity: Product";
    return "Product:" + str(id) + ":" + name + ":" + str(price) + ":" + category;
}

// Validation rules
function Product_validate(name, price, category) {
    if (len(name) < 2) {
        print "❌ Product name too short";
        return false;
    }
    
    if (price <= 0) {
        print "❌ Price must be positive";
        return false;
    }
    
    print "✅ Product validation passed";
    return true;
}

Repository Layer (Spring Data Style)

// 💾 Product Repository - ProductRepository.nova
// @Repository

function ProductRepository_save(name, price, category) {
    print "💾 Saving product: " + name;
    let sql = "INSERT INTO products (name, price, category) VALUES (?, ?, ?)";
    print "📝 SQL: " + sql;
    print "✅ Product saved with auto-generated ID";
    return true;
}

function ProductRepository_findAll() {
    print "📋 Finding all products";
    let sql = "SELECT * FROM products";
    print "📝 SQL: " + sql;
    return 5; // Number of products found
}

function ProductRepository_findByCategory(category) {
    print "🔍 Finding products by category: " + category;
    let sql = "SELECT * FROM products WHERE category = ?";
    print "📝 SQL: " + sql;
    return 2; // Number of products found
}

Service Layer (Business Logic)

// ⚙️ Product Service - ProductService.nova
// @Service

function ProductService_createProduct(name, price, category) {
    print "🔄 ProductService.createProduct()";
    
    // Business validation
    if (!Product_validate(name, price, category)) {
        return false;
    }
    
    // Default category if empty
    if (len(category) == 0) {
        category = "General";
        print "📝 Setting default category: General";
    }
    
    // Check for duplicates
    print "🔍 Checking for duplicate products...";
    
    // Save through repository
    return ProductRepository_save(name, price, category);
}

function ProductService_getProductsByCategory(category) {
    print "🔍 Getting products by category: " + category;
    return ProductRepository_findByCategory(category);
}

REST Controller (API Layer)

// 🌐 Product Controller - ProductController.nova
// @RestController
// @RequestMapping("/api/products")

function ProductController_createProduct(name, price, category) {
    print "🌐 POST /api/products";
    print "📥 Request: {name: '" + name + "', price: " + str(price) + "}";
    
    let result = ProductService_createProduct(name, price, category);
    
    if (result) {
        print "✅ HTTP 201 CREATED - Product created successfully";
        return 201;
    } else {
        print "❌ HTTP 400 BAD REQUEST - Validation failed";
        return 400;
    }
}

function ProductController_getProductsByCategory(category) {
    print "🌐 GET /api/products/category/" + category;
    
    let count = ProductService_getProductsByCategory(category);
    print "✅ HTTP 200 OK - " + str(count) + " products found";
    return 200;
}

Join the NovaLang Beta Program

Be among the first to experience the future of enterprise development. Get early access, shape the language, and be part of our growing community.

Early access to all features
Direct access to the development team
Free lifetime license for beta testers
Priority support and documentation

Quick Start Guide

Get up and running with NovaLang in minutes

1

Installation

Download NovaLang interpreter and set up your development environment

git clone https://github.com/martinmaboya/novalang.git
cd novalang
python main.py your_app.nova
2

Your First App

Create a simple "Hello World" application with Spring Boot patterns

// hello.nova
print "Hello, NovaLang!";

function greet(name) {
    return "Welcome to NovaLang, " + name + "!";
}

let message = greet("Developer");
print message;
3

Enterprise App

Build a full Spring Boot-style application with entities and REST APIs

// Run the package-based application
python main.py src/main/novalang/Application.nova

// Or use VS Code tasks
Ctrl+Shift+P → "Tasks: Run Task" 
→ "Run Package-Based Application"