Hi DEV community! I'm Ankit Bishnoi, 19 years old from India, and I just
released my first major open source project — Akro, a programming language
I built from scratch.
Why I built Akro
I was frustrated with existing languages:
- Python is simple but slow
- Go is fast but verbose
- JavaScript is everywhere but messy
So I spent months building Akro to combine the best of all three.
What Akro looks like
akro
fn main {
name := "World"
say "Hello, {name}!"
nums := [1, 2, 3, 4, 5]
total := reduce(nums, fn(a, b) { return a + b }, 0)
say "Sum = {total}"
for i in 0..5 {
say "i = {i}"
}
}
Key Features
Type inference — like Rust/Go
x := 10
name := "Akro"
pi := 3.14
String interpolation — supports full expressions
say "Hello, {name}!"
say "1 + 1 = {1 + 1}"
say "Sum = {sum(nums)}"
Pattern matching
match score {
case n if n >= 90 => say "A grade"
case n if n >= 80 => say "B grade"
default => say "F grade"
}
Transpiles to JavaScript — write Akro, run in browser
akro transpile app.ak
# → app.js (ready for browser)
Error handling
try {
result := divide(10, 0)
} catch(e) {
say "Error: {e}"
}
Structs with methods
struct Point {
x: int
y: int
}
impl Point {
fn distance(self) -> float {
return sqrt(self.x ** 2 + self.y ** 2)
}
}
p := Point(3, 4)
say p.distance() // 5.0
How it's built
The interpreter is written in Go:
Hand-written lexer
Recursive descent parser
Tree-walking interpreter
JS transpiler (AST → JavaScript)
40+ built-in functions
Install
npm install -g akro-lang
akro run hello.ak # Run a file
akro repl # Interactive shell
akro transpile app.ak # Convert to JavaScript
akro version # Show version
Links
GitHub: https://github.com/ankitkhileryy/akro
npm: https://www.npmjs.com/package/akro-lang
This is my first major open source project. I'd love honest feedback — what's missing, what could be better, and what would make you actually use a new language.
Thanks for reading!
— Ankit Bishnoi, 19, India
Top comments (0)