v0.1.1-alphaem desenvolvimento ativoGPLv3
KofUma linguagem. Um compilador. Vários mundos.
Menos código. Mais intenção. Uma linguagem moderna, estaticamente tipada, que compila direto para JVM, binário nativo e web (KofJS, em alpha).
class User( String name, String email)main() { var user = User("Mel", "mel@example.com") println(user.name)}$ kof run user.kf$ kof build user.kf --target nativeKof é uma linguagem geral, fortemente tipada e estaticamente tipada, criada para reduzir drasticamente a complexidade necessária para construir software moderno.
Compilador próprio: lexer, parser, AST, sistema de tipos, análise semântica, resolução de símbolos, IR própria, múltiplos backends, runtime e biblioteca padrão em evolução.
Fonte Kof
↓
Compilador Kof
↓
Kof IR
↓
┌───┼───────────┬───────────┐
↓ ↓ ↓ ↓
JVM Native Script Web
A linguagem não muda quando o target muda.Kof não é um transpiler.
Não existe uma etapa em que Kof vira Java e depois pede ajuda ao javac. O compilador possui frontend, sistema de tipos, IR e backends próprios — e gera bytecode e código nativo diretamente.
Kof → Java → javac → JVM
Kof ↓ Compilador Kof ↓ Kof IR ↓ Backend ↓ Target
O problema não é programação. É a quantidade de coisas que precisamos fazer para programar.
HTTP ↓ framework ↓ controllers ↓ services ↓ repositories ↓ ORM ↓ DTOs ↓ serializers ↓ injeção de dependência ↓ configuração ↓ bibliotecas de mensageria ↓ APIs assíncronas ↓ boilerplate
intenção ↓ Kof ↓ compilador + runtime + stdlib ↓ software
Complexidade deve ser resolvida pela linguagem quando puder ser resolvida pela linguagem.
A filosofia Kof
Menos código
Tipagem forte
Humano primeiro
Um frontend
Compilação direta
Complexidade pertence à plataforma
Sem mágica desnecessária
Boilerplate não é uma feature.
Kof é projetada primeiro para seres humanos. A sintaxe deve representar intenção: se o compilador entende sem vinte linhas de cerimônia, vinte linhas de cerimônia não deveriam existir.
Cerimônia tradicional
public final class User { private final String name; private final String email; public User(String name, String email) { this.name = name; this.email = email; } public String name() { return name; } public String email() { return email; }}Intenção
class User( String name, String email)Menos código não significa menos capacidade.
Feita para humanos. Naturalmente amigável às máquinas.
Kof não é uma “AI language”. A filosofia continua humana primeiro. Mas sintaxe pequena, semântica explícita, baixo boilerplate, APIs padronizadas e documentação estruturada têm uma consequência importante: a linguagem também fica muito mais fácil de compreender por ferramentas automatizadas e modelos de linguagem.
training/ ├── language/ ├── reference/ ├── patterns/ ├── anti-patterns/ ├── migration/ └── examples/
Corpus oficial para ferramentas
Menos tokens para expressar a mesma intenção.
Uma linguagem. Vários mundos.
O mesmo frontend alimenta todos os backends. Targets em desenvolvimento estão explicitamente marcados como tal.
JVM
DisponívelKof ↓ Kof IR ↓ bytecode JVM ↓ JVM
Integração com o ecossistema Java e execução na JVM. O backend gera bytecode diretamente — Java é plataforma, não linguagem intermediária.
Native
DisponívelKof ↓ Kof IR ↓ Backend nativo ↓ Executável
Binários nativos sem exigir que o programador gerencie memória manualmente. O GC nativo está em desenvolvimento.
Script
PlanejadoKof ↓ Runtime Kof (planejado)
Execução direta para scripts e automações usando exatamente a mesma linguagem. O runtime dedicado ainda não foi implementado — hoje o mesmo resultado vem de kof run, que compila e executa.
Web — KofJS
Em desenvolvimentoKof ↓ KofJS (alpha) ↓ JavaScript
Em alpha: o mesmo frontend e a mesma Kof IR geram ES Modules (ECMAScript 2022+) executados na engine JS embarcada (GraalJS). A plataforma web no browser é a próxima fase.
Você escreve código. O runtime cuida da memória.
O código Kof não muda porque o target mudou. Nada de malloc, free, ponteiros ou lifetimes manuais. A JVM usa o GC da JVM; Native terá gerenciamento próprio. A abstração de memória pertence à plataforma, não ao usuário.
class User( String name)main() { var user = User("Mel") println(user.name)}E se construir software não exigisse um ecossistema inteiro de cerimônia?
HTTP, JSON, banco, concorrência, async, mensageria, rede, testes, serialização, coleções, filesystem, tempo e segurança devem caminhar para dentro da biblioteca padrão e do runtime da Kof. Com etiquetas honestas do que já existe.
Disponível indica capacidade já utilizável em ao menos um target (hoje, principalmente JVM). Gaps por target são diagnosticados em compile-time com códigos como CONC001 — nunca silenciosamente.
Ver a biblioteca padrão →o motivo de tudo isso
Quero que programar seja divertido de novo.
Em algum lugar entre o problema e a solução, a diversão se perdeu, trocada por configuração, camadas e cerimônia. A Kof existe para devolver isso: o prazer de escrever uma ideia e vê-la rodar de verdade.
Porque cerimônia cansa.
Porque intenção flui.
Porque confiança liberta.
Porque mágica boa não esconde poder.
Construa uma aplicação web sem construir antes um ecossistema de frameworks.
kof.web já existe na JVM: rotas, middleware, JSON tipado e servidor HTTP embutido no runtime — sem Spring, sem servlet container, sem annotations.
record User(String name, Int age)main() { var app = web.app() app.get("/hello") { return "Hello from Kof" } app.get("/users/:id") { return "user " + param("id") } app.post("/user") { var user = json.decode<User>(body()) return json.encode(user) } app.listen(8080)}Aplicação Kof
│
├── HTTP ✅ disponível
├── JSON ✅ disponível
├── Database ✅ disponível
├── Autenticação 🚧 em construção
├── Mensageria ✅ disponível
├── Async 🚧 em construção
└── Concorrência 🚧 em construção$ kof serve app.kf$ kof serve app.kf --port 8080O objetivo de longo prazo — frontend, backend, banco, autenticação, mensageria e async com pouquíssimos arquivos de negócio — ainda não está entregue. O que existe hoje é o compilador, os backends e o começo real da camada web.
A visão da plataforma web →Não queremos substituir o Spring por outro Spring.
Kof não quer criar um "Kof Spring". Nem um "Kof Hibernate". Nem uma camada de abstração em cima de outra camada de abstração. A pergunta é: por que essa complexidade precisa existir em primeiro lugar?
Spring Hibernate ORM DI AOP Controllers Repositories DTOs Configuração ...
Kof Compilador Runtime Biblioteca padrão
O objetivo não é remover capacidade. É remover cerimônia.
Um frontend. Uma IR. Backends dedicados.
O frontend é único: lexer, parser, tipos, semântica e IR. A partir da IR, cada backend realiza a mesma semântica no seu mundo.
fonte
Código Kof (.kf)
frontend único
Compilador Kof → AST → tipos → IR
representação
Kof IR
Backend JVM
Disponível↓ .class
↓ JVM
Backend nativo
Disponível↓ Binário
↓ OS/CPU
Script
Planejado↓ Runtime
↓ Interativo
KofJS
Em desenvolvimento↓ ES Modules
↓ JS engine / Browser
Uma linguagem deve vir com as suas ferramentas.
Compilador, CLI, LSP, testes, debugger, benchmarks e editor acompanham a linguagem. Formatador e gerenciador de pacotes são futuro declarado — não realidade presente.
$ kof build$ kof run$ kof serve$ kof check$ kof test$ kof debug$ kof bench$ kof info$ kof lsp$ kof install$ kof versionCompilador
DisponívelCLI
DisponívelLSP
Em desenvolvimentoTestes (kof test)
DisponívelDebugger (kof debug)
Em desenvolvimentoBenchmarks (kof bench)
DisponívelFormatador
PlanejadoGerenciador de pacotes
Planejado
Instale o Kof. Só isso.
Uma distribuição autocontida: compilador, CLI, runtime, biblioteca padrão, ferramentas, suporte a editores e OpenJDK embutido. Sem instalar Java separadamente.
Duas trilhas na doc. E um curso completo.
Curso gratuito completo →
Do zero ao avançado: algoritmos, estruturas de dados, banco, segurança, web e mais — tudo em Kof, de graça.
github.com/lunalully/curso-completo-de-koflearn/ → humanos aprendendo Kof
training/ → ferramentas e LLMs aprendendo Kof
Sem datas falsas. Apenas estado.
O roadmap mostra o que existe, o que está sendo construído e para onde vamos — alimentado pelo estado real do repositório. Versionamento MAJOR.MINOR.PATCH; a primeira release estável, a 0.1.0, já saiu — o desenvolvimento segue em 0.1.x.
Concluído
DisponívelEm desenvolvimento
Em desenvolvimentoPlanejado
Planejadoorigem
Algumas pessoas criam uma biblioteca. Outras criam um framework. A gente olhou para o ecossistema inteiro e pensou:“Tá tudo complicado demais. Vou criar uma linguagem.”
Compilador open source. Seu software é seu.
O código-fonte da Kof é GPLv3. Programas escritos em Kof não são automaticamente GPLv3: você mantém o direito de escolher a licença do seu software, respeitando as licenças das dependências que efetivamente incorporar.
Números reais, ou nenhum número.
- Estrelas
- —
- Forks
- —
- Issues abertas
- —
- Último push
- —
Dados lidos ao vivo da API pública do GitHub (KofLang/Kof4j).
Estamos construindo uma linguagem de verdade.
Mostramos o que existe, o que está sendo construído e para onde estamos indo. Se você quer compilar, rodar e acompanhar de perto:
