K is built from the parts of Python, C++, and Java that are actually pleasant to use — with the friction each one is known for engineered out. One interpreter, one IDE, three platforms.
What each part actually fixes
K doesn't borrow syntax for its own sake — each piece is there because it solves a specific, named problem.
thing.method(args) call style, structured so a bytecode VM can be added without changing the language.KError with a line number instead of crashing.try / except is one clause.Read this honestly: K is a real, working tree-walking interpreter today — not yet faster than compiled C++ or the JIT-warmed JVM. What it delivers now is less ceremony than Java, safer defaults than C++, and one consistent method-call syntax. The bytecode VM on the roadmap is the path to "faster than all three."
Reads like Python, behaves like a compiled language should
Classes, closures, f-strings, and a for-loop — no imports, no boilerplate, no main().
class Dog: func init(self, name): self.name = name func speak(self): print(f"{self.name} says Woof") let d = new Dog("Rex") d.speak() let nums = [1, 2, 3, 4, 5] let total = 0 for n in nums: total += n print(f"sum: {total}") # -> sum: 15
Get K running on your machine
v1.0.3 — real, CI-built binaries for all three platforms, straight from the GitHub release.
k and K-IDE, adds them to PATH, and associates .k files — built with Inno Setup on tagged releases.k and K-IDE binaries bundling their own interpreter — no local Python required. After downloading, run chmod +x k-macos once to mark it executable.chmod +x k-linux once to mark it executable.All builds above are from release v1.0.3, compiled directly from source by GitHub Actions on each platform's own OS. Prefer installing from source instead? git clone https://github.com/NodeX-AR/K.git && cd K && ./install.sh works on macOS/Linux with Python 3.9+.
What's implemented today
20 passing tests exercise all of it — run python -m unittest discover -s tests -v to see for yourself.
let / constBindings, with optional : type annotations kept as documentation.
func name(a, b=1):Functions, closures, and nested functions.
class Name(Base):Inheritance, self, init, and new.
if / elif / elseStandard branching, plus while and for x in iterable:.
break / continue / returnFamiliar control-flow escapes.
try: / except e:One clause — no typed exception hierarchy to declare.
f"{expr}"F-strings, plus ints, floats, true/false/null.
[1,2,3] / {"a":1}Lists and dicts with indexing, slicing, and built-in methods.
print, len, range …Core built-ins: str, int, float, bool, type, input, abs, min, max, sum, sorted, round.
Honest next steps toward "faster than all three"
Bytecode VM
Compile the AST to a compact instruction set instead of walking the tree — the usual 5–10x win, no language changes.
Real static type checking
Turn the currently-decorative type annotations into an actual checker.
Native / JIT compilation for typed code
The PyPy/Cython playbook: fully-typed functions compile to machine code, untyped code stays dynamic.
Package manager + bigger standard library
Usually where a language's real-world capability actually comes from.