Playground
Kukicha
Output
Click Run to compile and execute your code.

Welcome to the Kukicha Blog


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.
  • onerr handling: 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