Use python nova.py run file.nova to practice variables, functions, and loops.
Language Guide
Learn NovaDev
NovaDev can be used like a normal programming language before you use it as a project compiler. Start in the shell, learn the syntax, then use the same language features to build and generate larger applications.
Core Syntax
Write code that feels direct and readable.
NovaDev supports common programming ideas: data, expressions, conditions, loops, functions, classes, modules, imports, string interpolation, and safe bridges to Python helper modules.
Variables and data
Use let for variables. NovaDev supports strings, numbers, booleans, nil values, lists,
objects, tuples, and expressions with operators.
- strings
- numbers
- booleans
- nil
- lists
- objects
- tuples
let name = "Aldane"
let age = 20
let active = true
let skills = ["NovaDev", "Python", "Vue"]
let profile = { name: name, role: "Developer" }
print("Hello {name}")
print(skills[0])
Conditions and loops
NovaDev supports if, elif, else, while,
for, break, continue, try, and catch.
let total = 0
for price in [12, 18, 7] {
total = total + price
}
if total > 30 {
print("Large cart")
} elif total == 30 {
print("Exact cart")
} else {
print("Small cart")
}
Functions and reusable logic
Functions let you build small tools, calculate values, transform data, and keep large project declarations from becoming repetitive.
function subtotal(items) {
let result = 0
for item in items {
result = result + item.price
}
return result
}
let cart = [{ price: 10 }, { price: 15 }]
print(subtotal(cart))
Classes and objects
NovaDev supports classes, constructors, methods, and inheritance for projects that need structured domain logic before generation.
class Cart {
function init(items) {
self.items = items
}
function count() {
return self.items.length
}
}
let cart = Cart(["phone", "case"])
print(cart.count())
Modules and Python bridge
NovaDev projects can import other .nova files, use safe Nova.* helpers, and wrap
Python modules for generated backends.
use Nova.math
function describe(number) {
let root = Nova.math.sqrt(number)
return "sqrt({number}) = {root}"
}
print(describe(16))
python shell.py
NovaDev 1.1.0 Interactive Shell
Type .exit to quit
nova> let name = "Aldane"
nova> print("Hello {name}")
Hello Aldane
nova> .load examples/scripts/math_tool.nova
nova> .tokens examples/business_admin.nova
nova> .build-fullstack examples/apps/webshield
Shell
Run code and project commands in one place.
The shell is not only for one-line expressions. It can run normal programming code, load files, inspect tokens, inspect AST output, lint, format, generate docs, and build projects.
- .load
- .tokens
- .ast
- .lint
- .format
- .docs
- .build-ui
- .build-backend
- .build-fullstack
Learning Checklist
What to learn before building full apps.
Split code across files and import folders when a project gets larger.
Use tokens and AST commands to understand how source becomes runtime behavior.
Declare apps, tables, pages, routes, auth, themes, and workflows.
Build Vue/Tailwind frontend and Flask backend files from the declared structure.
Use Python modules, architecture files, custom frontend blocks, and custom backend logic.