From the README:
What is KORE?
KORE is a self-hosting programming language that combines the best ideas from multiple paradigms:
| Paradigm | Inspiration | KORE Implementation |
|---|---|---|
| Safety | Rust | Ownership, borrowing, no null, no data races |
| Syntax | Python | Significant whitespace, minimal ceremony |
| Metaprogramming | Lisp | Code as data, hygienic macros, DSL-friendly |
| Compile-Time | Zig | comptime execution, no separate macro language |
| Effects | Koka/Eff | Side effects tracked in the type system |
| Concurrency | Erlang | Actor model with message passing |
| UI/Components | React/JSX | Native JSX syntax, components, hot reloading |
| Targets | Universal | WASM, LLVM native, SPIR-V shaders, Rust transpilation |
Example
// Define a function with effect tracking
fn factorial(n: Int) -> Int with Pure:
match n:
0 => 1
_ => n * factorial(n - 1)
// Actors for concurrency
actor Counter:
var count: Int = 0
on Increment(n: Int):
count = count + n
on GetCount -> Int:
return count
fn main():
let result = factorial(5)
println("5! = " + str(result))
Significant whitespace, minimal ceremony
Well that’s an oxymoron. If you’re having to alter the whitespace instead of the code because the whitespace is significant than all you have is ceremony.
looks very promising!
Doesn’t really seem like there’s a reason to use this instead of, for example, nim
Why should someone rule this language out over Nim?
Nim has python-esque syntax and its compiler does not need llvm or rust - it only needs a c compiler if you build it from source. It currently has a significant amount of packages that can be imported, making it easier/faster to get your end result. Nim also has plenty of packages for microcontrollers. Most of the stuff listed on Kore’s “Unimplemented Features (TODOs in source)” are working on Nim, too.
More importantly, existing for longer means there’s a larger community and several questions of “how do I do X” that have been answered, which is a bigger advantage for choosing Nim in this situation
Because unless there is a technical advantage to it, creating a new language that does the same or less than another already existing one just splits and weakens both.
The person creating this language clearly believes it has things to offer that existing languages do not.





