Chapter One — The Question
It started with a classmate who quit.
NEKOVA's creator, Emmanuel King Christopher, was teaching himself to code in Nigeria when he watched a classmate give up on programming entirely — not because the ideas were too hard, but because the error messages were. A missing colon. An off-by-one indent. Python's own honest, technically-correct exceptions, dropped on a beginner with zero context.
The problem wasn't Python. Python is a genuinely well-designed language. The problem was that nobody had built a language whose first priority was the moment things go wrong — the moment a learner is most likely to close the laptop for good.
error message, before and after
$ python broken.py
IndentationError: unexpected indent (broken.py, line 4)
$ nekova run broken.nk
error[E010]: Inconsistent Indentation
This line is indented 6 spaces, but that doesn't match
any enclosing block. Valid indent levels here: 0, 4
Tip: mixing tabs and spaces is a common cause.
That single idea — an error message's job is to teach, not just to be technically correct — became NEKOVA's founding principle. Everything else followed from it.
Chapter Two — The Idea
What if the language could think too?
By the time NEKOVA's design solidified, large language models had become something any program could reasonably lean on. So the second question followed naturally: if a language is being built from scratch anyway, why should "call an AI model" require an SDK, an API key dance, and a dozen lines of boilerplate?
NEKOVA's answer was to make it a keyword. Not a library. Not an import. A first-class part of the grammar, sitting right next to if and return.
task summarize(document):
let result = think "Summarize this in one sentence: {document}"
return result
No client to instantiate. No response object to unwrap. think asks, and hands back an answer — text, a list, a boolean, structured JSON, whatever the task needs — with the same directness as any other expression in the language.