Kukicha: a language built on Go that brings expressive syntax, pipes, and friendly error handling to Go's rock-solid foundation.
Why Kukicha?
Kukicha was designed for developers who love things like Go's concurrency and simple deployment model, but appreciate the readability of languages like Python, Nim, and Elixir.
Here are a few things that Kukicha adds on top of Go:
- Pipes (
|>): Express data pipelines naturally from left to right. onerrhandling: Clean, readable error handling without repetitive boilerplate.- Enums: These let you define a fixed set of named choices. They can be simple values, such as Pending or Approved, or data-carrying variants where each choice can hold different information. The compiler checks that the code handles every possible choice. ( More to come in a future blog post.)
- Lambdas: Small, unnamed functions that can be written inline and passed to other functions. For example, w => string.ToUpper(w) takes a word and returns its uppercase form, making operations like Map and Filter concise. Kukicha provides a concise arrow syntax for lambdas that complies to ordinary Go.
- Stdlib: Over 40 standard library packages with intuitive APIs.
A Quick Sip
import "stdlib/slice"
import "stdlib/string"
enum BrewStatus
Ready
Empty
func loadWords() (list of string, error)
return list of string{"tea", "leaves", "brew", "green"}, empty
func main()
words := loadWords() onerr panic
uppercased := words
|> slice.Filter(w => len(w) > 3)
|> slice.Map(w => string.ToUpper(w))
status := Ready
if len(uppercased) equals 0
status = Empty
print(status)
print(uppercased
How This Blog Works
This blog itself is powered by Kukicha! Posts are Markdown files dropped into the repo